В программе конференции — более 20 технических докладов о настоящем и будущем платформы .NET. Среди докладчиков — легендарный Дино Эспозито, автор серии книг по ASP.NET, а так же инженеры компаний JetBrains, Microsoft и других.
Будут освещены различные технические темы: от внутренностей CLR до новейших инструментов для .NET-разработки. Тематика: C# 6.0, ReSharper, CLR, FitNesse, WinRT, F#, WinPhone, Security, Roslyn, JIT, async/await, Mono, DLR, PostSharp, AutoFixture.
Билеты от 4 000 рублей. Московский Middle/Senior .NET-разработчик в день зарабатывает больше.
Докладчики
Dino Esposito, JetBrains
A consultant and the author of several .NET books published by Microsoft Press. Based in Italy, Dino is a frequent speaker at industry events worldwide.
In the May 2006 edition of Microsoft's Developer Network (MSDN) Magazine, Dino made his 100th consecutive installment to the column called "Cutting Edge". He has been writing this column since January 1998 in Microsoft Internet Developer (MIND) – which in March 2000 merged with Microsoft Systems Journal (MSJ) to form MSDN Magazine. He is also a frequent contributor to Dr. Dobb's, where he writes primarily about programming with Microsoft Web technologies, especially ASP.NET and ASP.NET MVC.
Андрей Акиньшин, Энтерра
Lead .NET Developer, MCP, к.ф.-м.н., серебряный призёр ACM ICPC, постдок в Вейцмановском институте науки. В свободное время любит разбираться во внутренностях .NET и делиться интересными находками с сообществом.
Дмитрий Сошников, Microsoft
Технологический евангелист Microsoft Russia. Является доцентом МФТИ, НИУ ВШЭ и МАИ, где преподаёт курсы функционального, логического программирования и искусственного интеллекта. Автор более 60 трудов в области искусственного интеллекта и распределённого представления знаний, монографии, учебного пособия «Парадигма логического программирования» и книги «Функциональное программирование на языке F#». Член Российской ассоциации искусственного интеллекта и Ассоциации программного обеспечения F# (FSSF).
Михаил Самарин, Futurice
Выступает на конференциях, преподает, программирует, руководит командой разработчиков и имеет титулы Microsoft MVP и Nokia Developer Champion. Его многолетний практический опыт покрывает такие области, как разработка мобильных приложений, интерактивные медиа инсталляции, системы поддержки судебно-медицинских исследований и видео наблюдений.
В настоящее время Михаил работает в финской компании Futurice, которая является официальным победителем конкурсов Best Place To Work in Europe в 2012 и 2013 годах.
Дмитрий Нестерук, JetBrains
Квант, разработчик, подкастер и частый спикер на программистских мероприятиях. Интересуется современными подходами в разработке ПО и эффективным использованием программных и аппаратных ресурсов для решения сложных задач в IT.
Microsoft MVP C# c 2009 года. Работает техническим евангелистом в JetBrains, руководит петербургской Группой ALT.NET.
Роман Агеев, DevExpress
Тимлид команды DevExpress Dashboard в Developer Express.
Тимур Гуев, Лаборатория Касперского
.NET-разработчик в Лаборатории Касперского. Профессиональные интересы: исследование внутреннего устройства .NET, CLR, JIT, C#, написание статей по математике и информатике, олимпиадное программирование. В свободное от работы время преподаёт математику, готовит школьников к олимпиадам.
Игорь Манушин, VIAcode
.NET-Разработчик Enterprise-приложений. В свое время сделал плагин для Fitnesse (NetRunner), который добавил удобные функции для тестирования.
Карлен Симонян, Luxoft
Работает программистом в Luxoft. Интересуется функциональным программированием и разработкой распределённых приложений. Пишет о платформе .NET в блоге и на хабре.
Дмитрий Иванов, JetBrains
Senior Software Developer в JetBrains, разработчик ядра ReSharper. Помимо прочего, занимается кешами, многопоточностью и производительностью. Закончил кафедру системного программирования математико-механического факультета СПбГУ в 2006 году.
Владимир Алмаев, PMSOFT
Выпускник МГТУ им. Баумана. Разработчик в компании PMSOFT. Технологии: .NET, WPF, ASP.NET MVC, SharePoint; Java: JAX-RS, Jersey. Внедрил практики написания тестов, continuous integration (TeamCity, NuGet, MSBuild, xunit.net, Microsoft Fakes, dotCover, Maven).
Интересуется проектированием и тестированием приложений (от шаблонов проектирования и управления зависимостями до автоматизации сборки на build-сервере).
Игорь Сычев, ВТБ24
.NET Geek последние 7 лет. Специализируется на разработке .NET-бэкэндов.
В прошлом — интерн в Microsoft Research и девелопер в ABBYY.
Михаил Щербаков, Positive Technologies
Работает над анализатором исходного кода Application Inspector в компании Positive Technologies. Один из разработчиков модуля поиска уязвимостей в ASP.NET приложениях. В рамках этого проекта работал над реализацией своей песочницы для безопасного выполнения пользовательского кода.
Профессиональные интересы: статический и динамический анализ кода, информационная безопасность, автоматизация отладки кода, исследование внутреннего устройства .NET CLR, системы виртуализации. Ранее работал Team Lead’ом в компаниях Acronis и Luxoft.
Барух Садогурский, JFrog
Поскольку «религия не позволяет» быть евангелистом, Барух — developer advocate, и делает в жизни ровно 3 вещи: зависает с разработчиками Bintray и Artifactory, пописывает для них код, и рассказывает о впечатлениях в блогах и на конференциях. И так несколько лет подряд, ни минуты об этом не жалея.
Никита Цуканов, Promarket
Начинал в Навителе с разработки под WinCE/Mobile на C/C++. В дальнейшем занимался разработкой VPN-сервиса с кроссплатформенным клиентом на Gtk#, серверная часть которого писалась так же на C#.
В настоящее время руководит разработкой в стартапе Promarket. Mono в production использует почти пять леть.
Доклады
ASP.NET vNext: What it means to you and what it means to Microsoft
The ASP.NET vNext platform is a new foundation for web development through the Microsoft stack. The new vNext platform inherits a good deal of features from current platforms, adds some breaking changes and, more importantly, it sets new goals and a new direction. It’s surely more important for the future of Microsoft than for the future of ISVs.
However, like it or not, you won’t be able to ignore vNext for too long. If it’s important for Microsoft, and you’re a Microsoft shop, then it will be important for you too at some point. Let’s find out what it’s all about and how it may affect development strategies.
Поговорим о различных версиях .NET
Как известно, на сегодняшний день существует несколько версий .NET Framework от Microsoft. Да и использованием многочисленных вариаций Mono нынче никого не удивишь. В итоге мы имеем большое количество окружений, под которыми могут запускаться .NET-программы. И у каждого окружения — свои особенности.
Из доклада вы узнаете про некоторые отличия стандартной библиотеки классов, про различные версии сборщика мусора и JIT-компилятора и про нюансы запуска .NET-приложений под разные операционные системы и процессорные архитектуры.
ReSharper изнутри: многопоточность, структуры данных, memory traffic
ReSharper — это одно из самых больших и сложных приложений в мире .NET. Предоставляя нашим пользователям огромную функциональность, нам приходится решать такие сложные задачи, как оптимизация динамического выделения памяти («memory traffic»), синхронизация потоков с учётом отзывчивости пользовательского интерфейса, оптимизация кэшей.
В этом докладе мы бы хотели рассказать, как мы решаем эти и другие проблемы, свойственные многим другим сложным .NET-программам. Вы узнаете о:
нашем опыте работы с NoSQL базами данных
инструментах производительности (DotTrace, DotMemory, Windbg, DotPeek, .NET Memory Profiler, …)
ошибках, связанных с выделением ненужной памяти;
нетривиальных случаях выделения памяти;
ошибках синхронизации;
тонкостях работы с COM;
очень нетривиальных структурах данных и многом другом.
Функциональное реактивное программирование на F#: от анализа твиттера до программирования сенсора leap motion и мобильных роботов
Доклад посвящен реализации концепции реактивного программирования на F#, что позволяет оперировать «живыми» потоками данных с такой же простотой, как обычно оперируют данными в памяти. Начав с короткого экскурса в функциональное программирование, F# и реактивное программирование, мы затем посмотрим, как эта концепция используется на примерах для обработки твиттер-потоков, потоков трехмерных данных с сенсоров Kinect и Leap Motion, а также для управления мобильными роботами.
Что нового в ReSharper 9
В ReSharper 9 добавлена поддержка Visual Studio «14», C# 6 и регулярных выражений, улучшена поддержка JS/TS и глобальных изменений (bulk fixes), добавлен новый редактор для форматирования кода и новые возможности навигации. Кроме того, все .NET-продукты JetBrains переезжают на новую общую платформу.
Из доклада вы узнаете о том, как использовать все эти новые возможности наиболее эффективным образом.
Memory & Performance. Tips & Tricks
Из доклада вы узнаете о типичных ошибках, приводящих к Memory Leak и Memory Traffic, а так же о том, как же все-таки избежать таких ошибок.
Почему должен быть только один C#
В программировании, и, в особенности, при разработке больших систем, приходится решать повторяющиеся задачи. Для автоматизации их решения принято использовать библиотеки, а в особо сложных случаях — даже небольшие языки программирования.
При разработке ReSharper мы накопили некоторый опыт постановки и решения таких задач и пришли к выводу, что в подавляющем большинстве случаев достаточно использовать только C# и что полезно избегать изобретения собственных языков программирования.
В своем докладе я расскажу о сложностях разработки и сопровождения программ с использованием DSL, расскажу как типичные задачи можно выразить средствами метапрограммирования C#, и приведу свое видение будущего программирования.
Windows Phone и аппаратные API
Аппаратные API, доступные под Windows Phone, позволяют исключительно легко работать как с внешними устройствами, так и с оборудованием самого смартфона, а именно — с Bluetooth, камерой и сенсорами движения. Даже начинающие .NET-программисты могут практически сразу начать успешно экспериментировать в своих инженерных и хобби-проектах. В качестве таких примеров мы покажем в докладе, насколько просто подключиться к Lego Mindstorms роботу и надстроить голосовое или сенсорное управление, как обрабатывать изображения из живого видеопотока и как работать с SensorCore функциями устройств.
Модель безопасности в .NET Framework 4.0 - 4.5.1
Поговорим об основных компонентах архитектуры безопасности .NET FW 4.0 и следующих версий. Подробно рассмотрим особенности типо-безопасности в CLR, домены приложений (AppDomain), Code Access Security, построение собственных песочниц (sandbox) для выполнения недоверяемого кода.
Зачем и где на практике применяются песочницы и почему важно знать их принципы работы. Рассмотрим, как эти механизмы работают в ASP.NET. Отвечу на вопрос производительности кода, запущенного с ограниченным набором разрешений. Разберем пример эксплойта для .NET FW 3.0 - 4.5, демонстрирующий выход из песочницы.
Принципы построения многопоточных десктопных .NET-приложений на примере ReSharper
Доклад основан на эволюции понимания многопоточности в команде ReSharper-а. Цель – поделиться выстраданным опытом и уберечь слушателей от щедро разбросанных граблей на тернистом пути построения надёжной многопоточной архитектуры .NET-приложения. Будет рассказано про специфику средств параллельного программирования в .NET, как, где и зачем их можно применять в больших проектах.
Предполагается предварительное знакомство участников с примитивами синхронизации.
Игры с CLR
Закрытость .NET Runtime вносит некоторое спокойствие в умы разработчиков. Ведь чем меньше предоставляет API Runtime, тем меньше хочется с ним что-то делать. А чем меньше делаешь, тем меньше задумываешься, что можно было бы с этим делать, если бы это было.
Из доклада вы узнаете кое-что о внутреннем устройстве некоторых частей CLR. В качестве бонуса мы заставим сам CLR работать по-другому, не так, как он задумывался.
Эффективное использование DLR
Dynamic Language Runtime начал свою историю с платформы Iron-языков (IronPython, IronRuby) как попытку привнести динамизм в CLR, став неотъемлемой частью среды. Однако подробное описание внутреннего устройства, потребления ресурсов и примеров применения, отличного от C# dynamic и скриптовых языков, отсутствует.
В докладе мы рассмотрим реальные примеры применения DLR, а также ответим на вопросы:
когда происходит Boxing/Unboxing в мире dynamic;
какую перегрузку метода выберет рантайм;
каковы дополнительные затраты памяти, ресурсов CPU для динамичного кода;
как вызывать любые методы с минимальными затратами без reflection и emit?
Mocks, Stubs & Rock'n'roll: поддерживаемые тесты с AutoFixture
Как писать легкосопровождаемые unit-тесты, устойчивые к рефакторингу?
Как повысить читаемость тестов, убрав все лишние детали?
Как сократить количество захардкоженных данных?
Как соблюсти принцип DRY и сократить количество шаблонных тестов?
Как, в конце концов, получать удовольствие от написания тестов?
Из доклада вы узнаете, как решить эти проблемы при помощи open-source библиотеки AutoFixture, которая позволяет разработчикам при написании тестов сконцентрироваться на действительно важных аспектах поведения тестируемой системы, избавляя от необходимости писать скучный и повторяющийся код.
Async/await: собираем грабли
Модель async/await предоставляет удобный способ написания асинхронного кода. Однако, как и всякая абстракция, скрывает детали, а значит, таит сюрпризы для неподготовленного пользователя.
Чтобы эффективно использовать любую технологию, нужно понимать, что за ней стоит. В докладе будут разбираться основные заблуждения и ошибки в использовании async/await, а также будет дан список полезных советов.
Обзор C# 6.0
На текущий момент в сети находится достаточно много информации о том, что нас ждет в языке C# 6.0. В тоже время эта информация достаточно разрозненна. Хочется прежде всего для себя систематизировать и обозначить новые возможности языка. Некоторые из них являются синтаксическим сахаром, в то время как другие действительно являются новыми фичами.
Несомненно, основным новшеством является компилятор нового поколения Roslyn, который будет выпущен как ПО с открытым исходным кодом.
FitNesse in development
Как-то раз, изучая очередной баг, мы начали понимать, что модульные тесты, которые писали немало людей в течении несколько лет, не верифицируют приложения, а лишь проверяет их отдельные малозначимые участки. Причина проста: Unit-тесты не хотят в базу и они не проверяют, как работают одновременно несколько процессов, общающихся между собой с помощью WCF и базы данных.
Мы решили быстро и недорого внедрить интеграционные тесты, чтобы проверять, что если пользователь сделает A, то система ответит Б. И для этого мы стали использовать технологию FitNesse, которая и тестирует наши приложения уже около года. В докладе я покажу следующие приемы:
Как быстро внедрить FitNesse. Простой use case;
как лучше всего создавать код на .NET, чтобы тесты выглядели бы удобнее;
Продемонстрирую некоторые неявные подводные камни, которых сразу же следует ожидать от этой технологии.
Быстрая бизнес-аналитика с помощью DevExpress Dashboard
Когда перед разработчиком встаёт задача визуализации данных для анализа, то есть два возможных пути решения:
Долгий – написать всё самому, реализовав визуализацию на сторонних компонентах.
Дорогой – внедрить End-User решение для бизнес-аналитики и не писать код совсем.
В компании Developer Express мы попытались найти золотую середину между этими двумя крайностями. Результатом стал продукт DevExpress Dashboard, который, с одной стороны, оформлен как набор компонентов, что позволяет разработчику встроить аналитику в своё приложение, а с другой - сам процесс создания визуализации не требует кодирования и, поэтому, доступен для не-технического специалиста. DevExpress Dashboard - это кросс-платформенный продукт предназначенный для быстрого создания информационных панелей – dashboards, что позволяет решить такие задачи, как группировка и агрегация данных, визуализация с помощью графиков и таблиц, фильтрация, навигация и поддержка согласованности данных.
В начале своего доклада я расскажу с какими трудностями может столкнуться разработчик, приступая к решению задачи анализа данных. Далее я продемонстрирую решение типичной задачи анализа с помощью DevExpress Dashboard, покажу как можно буквально “играть с данными”, рассматривая их под разными углами. В заключение я коснусь вопросов производительности, масштабируемости и кастомизации.
Рефакторинг кода с использованием PostSharp
Многие считают, что Аспектно-Ориентированное программирование (АОП) годно только для логирования и трассировки. В докладе на примере PostSharp будет показано, что это не совсем так.
В докладе мы рассмотрим варианты использования АОП с классическими шаблонами Банды Четырех. Кроме того, вы узнаете о возможностях PostSharp по модификации кода: какие средства есть для того, чтобы инфраструктурный код вынести в отдельные сущности, оставив только бизнес-логику для ясного понимания.
Использование Linux в качестве платформы для серверных .NET-приложений
Запуск на Linux серверных приложений, использующих как инфраструктуру ASP.NET, так и такие популярные фреймворки как WebApi, NancyFx, ServiceStack. Основные проблемы и пути их решения. Настройка для улучшения производительности. Перспективы.
NuGet — больше чем способ скачать NUnit
Наверняка все знакомы с этим замечательным пакетным менеджером. Но используйте ли вы его по полной? Автоматизирован ли процесс доставки зависимостей и отправки артифактов? Является ли он интегральной частью вашей непрерывной сборки?
В этом докладе будет показано, как использовать NuGet не только в Visual Studio для установки пакетов, но как пользоваться им в роли менеджера зависимостей в вашем сервере интеграции, будь это TFS, TeamCity или Jenkins, и даже из командной строки MsBuild.
Мы поговорим о правильной конфигурации всех участников непрерывной сборки - инструмента сборки, бинарного репозитория, сервера сборки, и конечно, менеджера зависимостей. Ну и, конечно, куда же без демки?
Entity Framework 7 + Redis/AzureTableStore
Microsoft поворачивается лицом к NoSQL-миру в своих продуктах. Какие перспективы открываются для .NET-разработчиков, что будет в новой версии EF, какие ограничения NoSQL в EF накладывает на разработчика, сильно ли придется переучиваться?
Доклад будет полезен тем, кто думает об использовании NoSQL-решений в своих системах.