...

понедельник, 26 января 2015 г.

Семинар по анатомии CLR и .Net Framework


сегодня в 17:32


03-04 Апреля в Москве и 29-30 мая — в Санкт-Петербурге пройдет серия семинаров CLRium. У данного семинара нет определенной целевой аудитории, мы рады всем. И начинающим свою карьеру, разработчикам, и махровым, повидавшим виды, архитекторам.

Как люди и хотят, у нас будут не просто технические доклады, без воды и маркетинга. У нас будет много тем, одна из которых — настоящая разминка для мозгов. Мы будем по дампам памяти понимать как устроена CLR и как с ней взаимодействовать не привычным для всех способом — напрямую.


У нас будет:



  • Максимально глубокие, отборные доклады по редко-раскрываемым вопросам

  • Целый вечер, посвященный исключительно ядру .Net. Как с ним работать «без перчаток», напрямую, со структурами в памяти, без рефлексии.

  • Ставшие популярными зоны свободного общения в перерыве.


Чем мы гордимся:



  • Наш материал не встретишь в сети Интернет: он полностью авторский

  • Материал освещает самые интересные области .Net, которые почему-то не покрыты материалом.

  • Мы не берем лишних денег с вас и потому у нас — самая дешевая конференция и всех существующих. 2,000 рублей за два дня — такого не предлагает никто. Это ведь как в магазин сходить. И, да, у нас нету ступеней 2,000 -> 3,000 -> 6,000 -> 10,000 в зависимости от дня. Не успели сейчас? Потом будет стоить столько же. Мы не на рынке.




Анатомия CLR



В данном вопросе я варюсь уже около года и достаточно плотно изучил как устроен CLR в качестве структур данных чтобы рассказать вам о них максимально подробно. Интерес к данному мероприятию должен возникнуть как минимум потому что эта тема практически не освещена в Интернете и знания, которые вы получите, помогут Вам взглянуть на платформу под совершенно новым углом. Также данный раздел знаний по CLR является чрезвычайно интересным. Microsoft с каждым днем давит на нас словом «безопасность». А так ли она безопасна, эта CLR? А так ли много там «магии», позволяющей нам не думать о безопасности? Это авторский проект и является результатом исследований с отладчиком: каково строение.Net объектов в памяти и что с этим можно сделать.


  • Во-первых мы посмотрим на реальное строение объектов в памяти

  • Во-вторых мы исследуем структуры данных в памяти, относящиеся к построению виртуальных методов, реализации интерфейсов и классов (этого не было на CLRium #1)

  • Далее, на основе полученных данных мы построим прокси-тип в памяти

  • И исследуем возможность сделать множественное наследование в .Net

  • Также попробуем совместить в одном объекте и Java и .Net объект, запустив одновременно оба рантайма (привет, Xamarin)

  • После чего, воспользовавшись полученным опытом расшарим объект .Net между процессами так чтобы он одновременно существовал бы в обоих мирах.

  • Полученные знания мы используем для ответа на вопрос: какие стандартные конструкции языка приводят к проседанию производительности и каким образом?

  • Подключим компилятор и сделаем собственный JIT.


Roslyn:




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

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

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

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

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


  • И сделаем 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()
    | _ => ();
    }


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


JetBrains Nitra



Почему JetBrains выкупила себе всех разработчиков проекта N2 и сделала ставку на его будущее? Потому что возможно перед нами будущая часть ядра или плагин для ReSharper: тула создания языков и трансляторов к ним. Мы рассмотрим все ее преимущества и попробуем в бою на примере создания парсеров языков DSL.


  • Мы рассмотрим по шагам существующие примеры парсинга и попробуем в действии существующие тулы, которые его поддерживают

  • Мы сделаем парсер собственной DSL и оценим трудозатраты, которые необходимы на построение собственного языка и поддержки IntelliSense

  • Мы рассмотрим создание языка SpecFlow для поддержки тестирования.


RyuJIT




  • Мы опишем что нам даст его использование

  • Попробуем запустить на нем проект и померить производительность приложения с ним и без него на наборе синтетических тестов

  • Рассмотрим сценарии, когда бы его открытость, которая близится с каждым днем, дала бы нам преимущества


CoreFx



Многие говорят что открытость.Net Framework для сообщества и предоставление сообществу возможностей для свободного внесения правок — это плохо и черевато бесконечными багами, небрежным кодом и не стабильным API. Так ли это?


  • Итоги полугода открытого.Net Framework CoreFx.

  • Возросшая производительность от 10х до 1000х кратной в некоторых местах

  • Закрытые баги

  • Соотношение кода сообщества к коду команды.Net Framework

  • Попробуем скомпилировать и разобрать по косточкам приложение, написанное под CoreFx


Что-то пропустили?



Если по-вашему мы что-то пропустили, пишите в комментах, о чем еще рассказать =)

Сслыки:


Контакты:




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


Recommended article: Chomsky: We Are All – Fill in the Blank.

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.


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

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