четверг, 8 января 2015 г.

Roslyn: встреча .Net сообщества на CLRium #2


сегодня в 12:33


Довольно долгое время я пытался изучить Roslyn, но как и все мы, столкнулся с единой проблемой: времени на это абсолютно не было. Как обычно решается этот вопрос? Мы идем на множество ресурсов и ищем доклады и статьи на интересующую нас тему и как по шаблону повторяем движения автора, который показывает как этим пользоваться. С чем мы сталкиваемся, когда ищем описания тем, предложенных на CLRium? Мы не находим ничего . Т.е., конечно, Google выдает что-то по запросам “Roslyn”, “Roslyn samples”, но все-таки это тысячу раз разжеванные примеры, и притом древние как мамонты по меркам выхода новых версий CTP. Это важно, т.к. наличие информации предполагает развитость той или иной инфраструктуры. А самая крутая и единственная статья по Roslyn на данный момент — это эта: Roslyn для автоматического перевода кода C# в 1С-код

Отсюда и возникли идеи рассказать на CLRium про Roslyn, RyuJIT, CoreFx, шаринг объектов между процессами и прочие вопросы, на которые сложно найти ответы в сети Интернет.



Итак, основные темы, которые мы готовы покрыть на докладе по Roslyn:


  • Мы не будем делать вводную: в интернете все доклады – это вводные и вы их видели

  • Мы разберем от простого к сложному, как устроены существующие правила в поставке Roslyn (C# 6 features). Но рассмотрим не список, как это делают на конференциях, а их исходный код

  • Как только мы их рассмотрим, мы рассмотрим существующие метрики на Roslyn. Как они написаны, как строятся метрики кода.

  • Далее мы напишем не просто «подсчитаем количество букв «а» во всех словах исходных текстов, мы напишем поддержку кортежей для C#:

    public (int, int) ReturnCoords() { return (0, 0); }
    var (x, y) = ReturnCoords();


  • И сделаем Nemerle оператор match.

    match (i)
    {
    | 1 => Console.WriteLine(1)
    | 2 => Console.WriteLine(2)
    | x => Console.WriteLine(x)
    }
    match (i)
    {
    | x when (x < 0) => WriteLine("negative")
    | x when (x > 36) => WriteLine("more than 36")
    | x when (x % 2 == 0)=> WriteLine($"valid even number $x")
    | x => WriteLine($"valid odd number $x")
    }

    match (obj)
    {
    | iDisp is IDisposable => iDisp.Dispose()
    | _ => ();
    }



Это очень сложные примеры, которые так просто не напишешь за вечерок и это то, что вы хотите найти в сети Интернет, но не можете.




Контакты:


Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.


This entry passed through the Full-Text RSS service - if this is your content and you're reading it on someone else's site, please read the FAQ at http://ift.tt/jcXqJW.


Комментариев нет:

Отправить комментарий