Довольно долгое время я пытался изучить 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() | _ => (); }
Это очень сложные примеры, которые так просто не напишешь за вечерок и это то, что вы хотите найти в сети Интернет, но не можете.
Почитать и зарегистрироваться
- Ссылка на регистрацию в Москве, 03 — 04 апреля
- Ссылка на регистрацию в Питере, 29 — 30 мая
- На онлайн вещание из другого города можно купить билет с любой из ссылок выше
- Дамп ваших отзывов с прошлого раза если остались (ну… мало ли) какие-то сомнения
- Стоимость участия — 1500 на один день, 2000 — на два дня или на оба дня — через онлайн трансляцию
Контакты:
- sunex.development@gmail.com
- +7 (921) 948-16-08
Автор: sidristij