ДОКЛАДЫ


Санкт-Петербург, 19 октября 2018 года. Москва, 26 октября 2018 года

930 Кофе-брейк
сборы перед началом семинара
1000

1000 - 1050

1100 - 1150

1200 - 1250

1300 - 1350

От революция к эволюции: CoreCLR и новые фичи платформы

Разминочный доклад о только что вышедших и еще не вышедших возможностях .NET Core. Прослушав его, вы сможете составить общее мнение о том, куда мы движемся, на что стоит обратить внимание, что попробовать, а с что - отложить на полочку.

Span<T>
Memory<T>

Новые типы данных, которые имеют не побоюсь этого слова революционный характер. Ведь помимо унификации работы с массивами, строками и неуправляемыми буферами данных они дополнительно легализуют многие unsafe операции. Из доклада мы узнаем: зачем они были введены, для каких задач, как быстро они работают и на каких платформах, а также начнем спокойнее относиться к unsafe коду, т.к. тот станет безопасным и управляемым. В общем, крайне советую: детектив со счастливым концом

Memory: MemoryHandle, MemoryManager, MemoryPool

В данном докладе мы продолжим разговор про память, уйдя в более практические примеры и приемы: мы рассмотрим новые возможности по аренде массивов, буферов данных. Познакомимся с новым для нас понятием владения участком памяти. И в целом начем готовиться к ускорению наших алгоритмов новыми методами. Ведь пока мы ждем, ведущие разработчики уже вовсю использую новый функционал: это и Castle Project и System.IO.Pipes и многие другие

Круглый стол:
Обсуждение нововведений C# 7.*, 8.0

При помощи коллективного разума мы разберемся во всех тонкостях и спорных моментах нововведений языка
1350 Обед
общение по докладам
1430


1430 - 1520


1530 - 1620


1630 - 1720


1730 - 1820

Garbage Collector
API

Сборщик мусора теперь заменяем. Для этого казалось бы все что необходимо - реализовать соответствующий интерфейс. Доклад предназначен показать и рассказать о новом API, его возможностях и новых подходах, которые нам необходимо запомнить на будущее (которое как обычно приходит внезапно).
Global Tools CLI API
Один из самых мощных, однозначно нужных и при том не понятных вопросов: Global Tools и Command Line Interface API. Если совсем коротко - средство построения кроссплатформенных команд для коммандной строки проектов .NET. Рассмотрим подробнее, изучим уже готовые примеры (его уже вовсю интегрируют в продукты) и решим: где оно необходимо, а когда стоит просто помнить о его существовании - на будущее

ClrMD: разрабатываем собственный отладчик

Существует интереснейшая библиотека для отладки поцессов и дампов памяти. Причем что самое приятное - так это то, что библиотека эта написана на привычном для всех .NET. А это значит что исследовать проблему можно разработав скрипты поиска проблемных областей приложения. Это зачастую сильно ускорит отладку. Разберемся, как это делается.

Круглый стол:
Обсуждение нововведений CoreCLR

При помощи коллективного разума мы закрепим материал путем его обсуждения, критики, вопросов и ответов.

IDisposable: сложности и
подводные камни (pt.1)
Когда привыкаешь делать что-либо очень простое, иной раз не обращаешь внимания, что за простотой таится огромное количество подводных камней. Шаблон IDisposable известен каждому разработчику, однако его использование зачастую сделано с ошибками и доставляет неудобства остальным разработчикам. В докладе речь пойдет, как о форматах реализации шаблона, форматах использования в различных сценариях, так и о вариантах замены на другие шаблоны там, где использование IDisposable приведет только к проблемам.


1830 - 1920


1930 - 2020





Lifetime как замена
IDisposable (pt.2)
Стандартный шаблон IDisposable решает множество задач освобождения ресурсов, перед которыми стоит разработчик. Однако для многих ситуаций приходится сначала поломать мозги, а потом – пальцы, чтобы решить те или иные проблемы в очерёдности вызова Dispose. Мы поговорим о простом, но крайне эффективном шаблоне, который по сути выполняет IoC процесса Dispose: Lifetime

Exceptional Exceptions, v.2

Существует ряд исключительных ситуаций, которые скажем так… Несколько более исключительны чем другие. Причем если попытаться их классифицировать, то как и было сказано в самом начале главы, есть исключения родом из самого .NET приложения, а есть исключения родом из unsafe мира. Их в свою очередь можно разделить на две подкатегории: иcключительные ситуации ядра CLR (которое по своей сути — unsafe) и любой unsafe код внешних библиотек.