.NET-конференция .NEXT 2014 Moscow
В понедельник, 8 декабря, в Москве в гостинице Radisson Славянская (площадь Европы, д.2) пройдёт независимая .NET-конференция .NEXT 2014 Moscow.
Скрытое содержимое.
Организаторами конференции выступили компании CodeFreeze и JetBrains, а спикерами — ведущие российские специалисты по .NET из JetBrains, Microsoft, DevExpress и других компаний.
Конференция соберёт более 400 .NET-программистов из Москвы и других городов.
Вашему вниманию будет представлено более 20 докладов по 50 минут каждый. Это более 1 000 минут полезного контента для всех участников.
Будут освещены различные технические темы: от внутренностей CLR до новейших инструментов для .NET-разработки. Тематика: C# 6.0, ReSharper, VS 14, CLR internals, FitNesse, WinRT, F#, WinPhone, Security, Roslyn, JIT, async/await, Mono, DLR, PostSharp, AutoFixture.
Все доклады конференций будут записаны на видео. Всем участникам конференции видеозаписи всех докладов будут доступны после 22 декабря. (около двух недель уйдёт на пост-обработку, титры и т.п.)
Доклады
Как писать легкосопровождаемые unit-тесты, устойчивые к рефакторингу? Как повысить читаемость тестов, убрав все лишние детали? Как сократить количество захардкоженных данных? Как соблюсти принцип DRY и сократить количество шаблонных тестов? Как, в конце концов, получать удовольствие от написания тестов?
Из доклада вы узнаете, как решить эти проблемы при помощи open-source библиотеки AutoFixture, которая позволяет разработчикам при написании тестов сконцентрироваться на действительно важных аспектах поведения тестируемой системы, избавляя от необходимости писать скучный и повторяющийся код.
ReSharper — это одно из самых больших и сложных приложений в мире .NET. Предоставляя нашим пользователям огромную функциональность, нам приходится решать такие сложные задачи, как оптимизация динамического выделения памяти («memory traffic»), синхронизация потоков с учётом отзывчивости пользовательского интерфейса, оптимизация кэшей.
В этом докладе мы бы хотели рассказать, как мы решаем эти и другие проблемы, свойственные многим другим сложным .NET-программам. Вы узнаете о:
Доклад посвящен реализации концепции реактивного программирования на F#, что позволяет оперировать «живыми» потоками данных с такой же простотой, как обычно оперируют данными в памяти. Начав с короткого экскурса в функциональное программирование, F# и реактивное программирование, мы затем посмотрим, как эта концепция используется на примерах для обработки твиттер-потоков, потоков трехмерных данных с сенсоров Kinect и Leap Motion, а также для управления мобильными роботами.
В ReSharper 9 добавлена поддержка Visual Studio «14», C# 6 и регулярных выражений, улучшена поддержка JS/TS и глобальных изменений (bulk fixes), добавлен новый редактор для форматирования кода и новые возможности навигации. Кроме того, все .NET-продукты JetBrains переезжают на новую общую платформу.
Из доклада вы узнаете о том, как использовать все эти новые возможности наиболее эффективным образом.
Из доклада вы узнаете о типичных ошибках, приводящих к Memory Leak и Memory Traffic, а так же о том, как же все-таки избежать таких ошибок.
В программировании, и, в особенности, при разработке больших систем, приходится решать повторяющиеся задачи. Для автоматизации их решения принято использовать библиотеки, а в особо сложных случаях — даже небольшие языки программирования.
При разработке ReSharper мы накопили некоторый опыт постановки и решения таких задач и пришли к выводу, что в подавляющем большинстве случаев достаточно использовать только C# и что полезно избегать изобретения собственных языков программирования.
В своем докладе я расскажу о сложностях разработки и сопровождения программ с использованием DSL, расскажу как типичные задачи можно выразить средствами метапрограммирования C#, и приведу свое видение будущего программирования.
Аппаратные API, доступные под Windows Phone, позволяют исключительно легко работать как с внешними устройствами, так и с оборудованием самого смартфона, а именно — с Bluetooth, камерой и сенсорами движения. Даже начинающие .NET-программисты могут практически сразу начать успешно экспериментировать в своих инженерных и хобби-проектах. В качестве таких примеров мы покажем в докладе, насколько просто подключиться к Lego Mindstorms роботу и надстроить голосовое или сенсорное управление, как обрабатывать изображения из живого видеопотока и как работать с SensorCore функциями устройств.
Поговорим об основных компонентах архитектуры безопасности .NET FW 4.0 и следующих версий. Подробно рассмотрим особенности типо-безопасности в CLR, домены приложений (AppDomain), Code Access Security, построение собственных песочниц (sandbox) для выполнения недоверяемого кода.
Зачем и где на практике применяются песочницы и почему важно знать их принципы работы. Рассмотрим, как эти механизмы работают в ASP.NET. Отвечу на вопрос производительности кода, запущенного с ограниченным набором разрешений. Разберем пример эксплойта для .NET FW 3.0 - 4.5, демонстрирующий выход из песочницы.
В докладе рассматривается создание универсальных компонентов для Windows Phone 8.1 и Windows 8.1 с использованием как управляемого, так и нативного кода, архитектура WinRT-компонентов и самой платформы. А также библиотеки, такие как Win2D, которые могут существенно облегчить труд разработчиков.
Доклад основан на эволюции понимания многопоточности в команде ReSharper-а. Цель – поделиться выстраданным опытом и уберечь слушателей от щедро разбросанных граблей на тернистом пути построения надёжной многопоточной архитектуры .NET-приложения. Будет рассказано про специфику средств параллельного программирования в .NET, как, где и зачем их можно применять в больших проектах.
Предполагается предварительное знакомство участников с примитивами синхронизации.
Закрытость .NET Runtime вносит некоторое спокойствие в умы разработчиков. Ведь чем меньше предоставляет API Runtime, тем меньше хочется с ним что-то делать. А чем меньше делаешь, тем меньше задумываешься, что можно было бы с этим делать, если бы это было.
Из доклада вы узнаете кое-что о внутреннем устройстве некоторых частей CLR. В качестве бонуса мы заставим сам CLR работать по-другому, не так, как он задумывался.
Dynamic Language Runtime начал свою историю с платформы Iron-языков (IronPython, IronRuby) как попытку привнести динамизм в CLR, став неотъемлемой частью среды. Однако подробное описание внутреннего устройства, потребления ресурсов и примеров применения, отличного от C# dynamic и скриптовых языков, отсутствует.
В докладе мы рассмотрим реальные примеры применения DLR, а также ответим на вопросы:
Как известно, на сегодняшний день существует несколько версий .NET Framework от Microsoft. Да и использованием многочисленных вариаций Mono нынче никого не удивишь. В итоге мы имеем большое количество окружений, под которыми могут запускаться .NET-программы. И у каждого окружения — свои особенности.
Из доклада вы узнаете про некоторые отличия стандартной библиотеки классов, про различные версии сборщика мусора и JIT-компилятора и про нюансы запуска .NET-приложений под разные операционные системы и процессорные архитектуры.
Модель async/await предоставляет удобный способ написания асинхронного кода. Однако, как и всякая абстракция, скрывает детали, а значит, таит сюрпризы для неподготовленного пользователя.
Чтобы эффективно использовать любую технологию, нужно понимать, что за ней стоит. В докладе будут разбираться основные заблуждения и ошибки в использовании async/await, а также будет дан список полезных советов.
На текущий момент в сети находится достаточно много информации о том, что нас ждет в языке C# 6.0. В тоже время эта информация достаточно разрозненна. Хочется прежде всего для себя систематизировать и обозначить новые возможности языка. Некоторые из них являются синтаксическим сахаром, в то время как другие действительно являются новыми фичами.
Несомненно, основным новшеством является компилятор нового поколения Roslyn, который будет выпущен как ПО с открытым исходным кодом.
Как-то раз, изучая очередной баг, мы начали понимать, что модульные тесты, которые писали немало людей в течении несколько лет, не верифицируют приложения, а лишь проверяет их отдельные малозначимые участки. Причина проста: Unit-тесты не хотят в базу и они не проверяют, как работают одновременно несколько процессов, общающихся между собой с помощью WCF и базы данных.
Мы решили быстро и недорого внедрить интеграционные тесты, чтобы проверять, что если пользователь сделает A, то система ответит Б. И для этого мы стали использовать технологию FitNesse, которая и тестирует наши приложения уже около года. В докладе я покажу следующие приемы:
Когда перед разработчиком встаёт задача визуализации данных для анализа, то есть два возможных пути решения:
В начале своего доклада я расскажу с какими трудностями может столкнуться разработчик, приступая к решению задачи анализа данных. Далее я продемонстрирую решение типичной задачи анализа с помощью DevExpress Dashboard, покажу как можно буквально “играть с данными”, рассматривая их под разными углами. В заключение я коснусь вопросов производительности, масштабируемости и кастомизации.
Многие считают, что Аспектно-Ориентированное программирование (АОП) годно только для логирования и трассировки. В докладе на примере PostSharp будет показано, что это не совсем так.
В докладе мы рассмотрим варианты использования АОП с классическими шаблонами Банды Четырех. Кроме того, вы узнаете о возможностях PostSharp по модификации кода: какие средства есть для того, чтобы инфраструктурный код вынести в отдельные сущности, оставив только бизнес-логику для ясного понимания

В понедельник, 8 декабря, в Москве в гостинице Radisson Славянская (площадь Европы, д.2) пройдёт независимая .NET-конференция .NEXT 2014 Moscow.
Скрытое содержимое.
http://dotnext.ru/
Организаторами конференции выступили компании CodeFreeze и JetBrains, а спикерами — ведущие российские специалисты по .NET из JetBrains, Microsoft, DevExpress и других компаний.
Конференция соберёт более 400 .NET-программистов из Москвы и других городов.
Вашему вниманию будет представлено более 20 докладов по 50 минут каждый. Это более 1 000 минут полезного контента для всех участников.
Будут освещены различные технические темы: от внутренностей CLR до новейших инструментов для .NET-разработки. Тематика: C# 6.0, ReSharper, VS 14, CLR internals, FitNesse, WinRT, F#, WinPhone, Security, Roslyn, JIT, async/await, Mono, DLR, PostSharp, AutoFixture.
Все доклады конференций будут записаны на видео. Всем участникам конференции видеозаписи всех докладов будут доступны после 22 декабря. (около двух недель уйдёт на пост-обработку, титры и т.п.)
Доклады
Dino Esposito
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.
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.
Владимир
Алмаев
Mocks, Stubs & Rock'n'roll: поддерживаемые тесты с AutoFixtureАлмаев
Как писать легкосопровождаемые unit-тесты, устойчивые к рефакторингу? Как повысить читаемость тестов, убрав все лишние детали? Как сократить количество захардкоженных данных? Как соблюсти принцип DRY и сократить количество шаблонных тестов? Как, в конце концов, получать удовольствие от написания тестов?
Из доклада вы узнаете, как решить эти проблемы при помощи open-source библиотеки AutoFixture, которая позволяет разработчикам при написании тестов сконцентрироваться на действительно важных аспектах поведения тестируемой системы, избавляя от необходимости писать скучный и повторяющийся код.
Кирилл
Скрыган
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, демонстрирующий выход из песочницы.
Сергей
Пугачев
Создание WinRT-компонентов для универсальных приложенийПугачев
В докладе рассматривается создание универсальных компонентов для Windows Phone 8.1 и Windows 8.1 с использованием как управляемого, так и нативного кода, архитектура WinRT-компонентов и самой платформы. А также библиотеки, такие как Win2D, которые могут существенно облегчить труд разработчиков.
Дмитрий
Иванов
Принципы построения многопоточных десктопных .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?
Андрей
Акиньшин
Поговорим о различных версиях .NETАкиньшин
Как известно, на сегодняшний день существует несколько версий .NET Framework от Microsoft. Да и использованием многочисленных вариаций Mono нынче никого не удивишь. В итоге мы имеем большое количество окружений, под которыми могут запускаться .NET-программы. И у каждого окружения — свои особенности.
Из доклада вы узнаете про некоторые отличия стандартной библиотеки классов, про различные версии сборщика мусора и JIT-компилятора и про нюансы запуска .NET-приложений под разные операционные системы и процессорные архитектуры.
Андрей
Часовских
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 решение для бизнес-аналитики и не писать код совсем.
В начале своего доклада я расскажу с какими трудностями может столкнуться разработчик, приступая к решению задачи анализа данных. Далее я продемонстрирую решение типичной задачи анализа с помощью DevExpress Dashboard, покажу как можно буквально “играть с данными”, рассматривая их под разными углами. В заключение я коснусь вопросов производительности, масштабируемости и кастомизации.
Андрей
Гордиенков
Рефакторинг кода с использованием PostSharpГордиенков
Многие считают, что Аспектно-Ориентированное программирование (АОП) годно только для логирования и трассировки. В докладе на примере PostSharp будет показано, что это не совсем так.
В докладе мы рассмотрим варианты использования АОП с классическими шаблонами Банды Четырех. Кроме того, вы узнаете о возможностях PostSharp по модификации кода: какие средства есть для того, чтобы инфраструктурный код вынести в отдельные сущности, оставив только бизнес-логику для ясного понимания