CLRium #2: ASP.NET 5 и DNX (.Net Execution Environment) – на новейшем ядре CoreCLR. Отдыхаем душой на Enterprise с Roslyn

в 5:05, , рубрики: .net, asp.net 5, C#, clrium, dnx, Блог компании Luxoft

CLRium #2: ASP.NET 5 и DNX (.Net Execution Environment) – на новейшем ядре CoreCLR. Отдыхаем душой на Enterprise с Roslyn - 1 Что мы можем накопать в Интернетах про самое свежее, о чем есть только слухи? Наш ответ – ничего, что могло бы пролить свет на вопрос. Например, что такое DNX? Репозиторий проекта нам говорит:

DNX (среда исполнения .Net) – содержит код, необходимый для загрузки приложения и его работы, в том числе систему сборки, SDK и CLR хоста.

Лично мне до недавних пор это не говорило ровным счетом ничего, как, наверное, и вам. А ведь это – будущее ASP.NET.

Или, например, многие не понимают, отчего все сходят с ума от возможности запуска ASP.NET 5 на Linux под новейшим ядром CoreCLR… А ведь не сегодня – завтра начнут появляться вакансии разработчиков ASP.NET под Линукс и все мы с вами вдруг поймем: мы старики, а молодые – уже изучили и знают, захватив все дорогостоящие вакансии.

И вообще… Сколько рантаймов сейчас? Куда делся мир с одним-единственным CLR, и почему он вдруг перестал всех устраивать??

Задачи спикеров семинара CLRium накопать столько свежего, чтобы вы покинули его в смятении: за что браться завтра? И, набравшись духа, начали изучать все это также как и мы: посвящая новому хобби все свободное время

Андрей DreamWalker Акиньшин

CoreCLR

  • Поговорим про новое .NET-ядро CoreCLR и будущее платформы .NET.
  • Соберём CoreCLR под Windows и Linux, а также поговорим о новом кроссплатформенном .NET-мире.
  • Рассмотрим внутренности CLR, доступные нам по исходным кодам. (Совместный доклад)
  • Встроим в ядро свой функционал и не сломаем приложение.

RyuJIT

  • Поговорим про особенности нового RyuJIT и что нам даст его использование (например SIMD и ускоренная JIT-компиляция).
  • Подробно сравним старый и новый JIT, обсудим их отличия и используемые оптимизации.
  • Разберёмся в JIT-багах под различные процессорные архитектуры.
  • Будем много смотреть на генерируемый ASM-код.
  • Попробуем запустить проект на RyuJIT и померить производительность приложения с ним и без него на наборе синтетических тестов.

ASP.NET, DNX

  • Взглянем на наисвежайший ASP.NET 5 и систему исполнения DNX.
  • Запустим ASP.NET-сайт под Linux.

Станислав sidristij Сидристый

Магия работы с типами

Разминочный доклад, который как и CLRium #1 полон спорных идей, но от того — очень интересных.

  • Как за 10 мс подменить методы возвращаемого с закрытого API, объекта, закрыв баг, который там существовал
  • Как скастить List&ltB&gt к List&ltA&gt, где B унаследован от A и почему это может пригодиться
  • Особенности приведения типов в разных сценариях и тестирование их производительности. Так ли плохо постоянно приводить типы? Почему в нагрузоёмких приложениях лучше отказаться от интерфейсов?
  • Как наладить самое быстрое взаимодействие между приложениями — SharedMemory — без сериализации ссылочных типов? В результате полученный код упрется ко в одно ограничение — время переключения между потоками приложений.

CoreFx

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

  • Итоги полугода открытого .NET Framework CoreFx.
  • Возросшая производительность от 10х до 1000х кратной в некоторых местах.
  • Закрытые баги.
  • Соотношение кода сообщества к коду команды .NET Framework.
  • Попробуем скомпилировать и разобрать по косточкам приложение, написанное под CoreFx.

Безопасность

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

Roslyn — расширения для компиляторов и MS Visual Studio — для проектных нужд

В моей практике очень часто возникают требования делать какую-то рутину, и постоянно помнить о чем-то. Как первый пример, который всплывает в голове — необходимо в начале каждого публичного метода публичного класса вставлять проверки на корректность аргументов. Это правильно, но иногда — забываешь, а CodeReview — затягивается. Было бы удобно иметь анализатор на этот случай. Или, например, вместо кода if(x != null) x.DoSomething(), чтобы можно было писать x.Eval(x => x.DoSomething()) — наш аналог ?. из C# 6. Для всех задач такого рода подойдут анализаторы кода, которые не так сложно писать, как кажется.

Например, для автоматизаторов тестирования на базе SpecFlow было бы удобно иметь анализатор, который искал бы все feature файлы, и проверял, есть ли в них те шаги, которые объявлены в коде. А если таких шагов бы не было, ругался бы и просил удалить лишний метод.

  • Мы научимся делать расширения для MS Visual Studio 2015, встраивая различные рефакторинги кода и анализаторы для рабочих задач: реальные примеры из собственного опыта
  • Мы разберем от простого к сложному, как устроены существующие правила в поставке Roslyn (C# 6 features). Но рассмотрим не список, как это делают на конференциях, а их исходный код.
  • Как только мы их рассмотрим, мы рассмотрим существующие метрики на Roslyn. Как они написаны, как строятся метрики кода.
  • Далее мы напишем не просто подсчитаем количество букв «а» во всех словах исходных текстов, мы напишем поддержку кортежей для C#, тем самым показав, как легко компании Microsoft будет расширять язык в дальнейшем: нас ждет счастливое будущее!!

Я надеюсь, программа получилась максимально вкусной.

Регистрация

Доступна для любого города — онлайн и оффлайн — для Москвы(03-04 апреля), Екатеринбурга (17 мая) и Санкт-Петербурга (29-30 мая). Вы можете идти к нам всем коллективом: мы принимаем оплаты от юр. лиц. Все что надо — пройти по ссылке и зарегистрироваться.

Регистрация:

  • Официальный сайт семинара: clrium.ru

Контакты:

Автор: sidristij

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js