Материалы онлайн конференции .NET разработчиков

в 14:53, , рубрики: .net, Conference, Events, slideshow, видео, метки: , , , ,

4-я .NETconf прошла 28 апреля 2012 и первый раз была в онлайн формате. Это позволило принять участие разработчикам, которые не могли прилететь на 3 предыдущие встречи. За время трансляции 7-ми выступлений в конференции приняли активное участие 508 человек.

Ниже выложены 6 докладов и один мастер-класс с видео, слайдами и ссылками на исходный код.

Доклады

Посмотреть материалы всех встреч вы можете на сайте www.dotnetconf.ru

1. NHibernate. Диагностирование и решение конфликтов одновременной записи данных

Докладчик: Руслан Сафин

В рамках данного доклада показывается, как при использовании ORM NHibernate диагностировать проблемы одновременного доступа к данным и как эти проблемы решать. Рассматриваются несколько путей решения одновременного обновления данных — слияние изменений при записи (если это возможно) и полный запрет записи данных (если это приведёт к потере изменений).

Проблема при одновременном удалении данных решается методом SoftDelete, показывается как такое решение лучше всего реализовать при использовании NHibernate.

Исходный код: www.dropbox.com/s/f559dz0x3vl4dui/NhibernateConf.rar

www.dotnetconf.ru/Materialy/NHibernate_diagnostic


2. Выходим за границы дозволенного. NPAPI, NaCl и другие страшные слова

Докладчик: Тимур Рахматиллаев

В докладе будет рассказано и показано, как расширить возможности стандартного ASP.NET MVC3 web-приложения, используя браузерный native-плагин, написанный на языке C++. Будет показано применение фреймворка FireBreath, позволяющего легко создавать гибкие, кроссплатформенные и кроссбраузерные плагины. Будут затронуты вопросы взаимодействия managed-кода на C# с native-кодом на C++, а также показаны возможности по вызову кода на C++/C# из клиентского JavaScript-кода web-страницы. Применение вышеназванных технологий будет показано на примерах, одним из которых является разработанный для нужд системы электронного документооборота плагин, позволяющий осуществлять взаимодействие со сканером документов, подключенным к компьютеру клиента, из кода на JavaScript.

Также будет даваться краткое описание других технологий, связанных с выполнением браузером не специфичных для него функций: NaCl, Pepper, и приведено сравнение этих технологий.

Код тестового плагина: www.dropbox.com/s/4brqpdok43d2i8u/TestPlugin.7z

www.dotnetconf.ru/Materialy/Vihodim_za_granicy_NPAPI_NaCl


3. Practical CQRS

Докладчик: Ринат Абдуллин

Let's talk about CQRS as a set of architecture patterns that can be applied at tactical level in the application to deal with certain problems. We'll talk about these problems, solutions and their limitations from the practical approach. CQRS limitations will also be addressed along with the topic on importance of DDD and potential synergies with ES.

CQRS example — .NET/C# — lokad.github.com/lokad-cqrs

www.dotnetconf.ru/Materialy/Practical_CQRS


4. Мастер-класс: Устраиваем сервер-клиентное взаимодействие, используя библиотеку SignalR

Докладчик: Тимур Рахматиллаев

В рамках данного мастер класса будет показано использование библиотеки SignalR для написания простейшего online чата, выполненного в виде web-приложения ASP.NET MVC3. SignalR предоставляет удобные средства для осуществления вызовов клиентского JavaScript кода со стороны сервера, берет на себя часть работы по передаче параметров, авторизации соединений и т.п. Грамотное использование библиотеки заметно снижает нагрузку на backend-код web-приложения, улучшает user experience при работе с ним.

Минимальными программными требования, удовлетворение которых необходимо для участия в мастер-классе являются наличие установленной Visual Studio 2010, фреймворка ASP.NET MVC3, а также расширения для VS2010 – Nuget.

Исходный код: github.com/Eskat0n/dotnetconf-signalr-example

Исходный код на момент завершения трансляции: github.com/downloads/Eskat0n/dotnetconf-signalr-example/28.04.2012.7z

www.dotnetconf.ru/Materialy/SignalR


5. Структурирование тестов по принципу Arrange-Act-Assert

Докладчик: Артем Смирнов

Я собираюсь рассмотреть способы структурирования тестов в системах различной сложности, а также эволюцию этой структуры в процессе развития системы. Я покажу, как такая структура естественным образом вытекает из базовых требований к тестам, и какие компромиссы возможны в различных ситуациях.

Исходный код: github.com/gregoryyoung/Simple.Testing

www.dotnetconf.ru/Materialy/Test_Arrange_Act_Assert


6. Проектирование по контракту

Докладчик: Сергей Тепляков

Программа сама по себе не может быть корректной или не корректной, все зависит от того, что она должна делать на самом деле. Но поскольку информация о том, что же должна делать программа на самом деле зачастую размазывается по диаграммам, коду и юнит-тестам, то понять «а не сломал ли я чего-то сегодня» бывает довольно сложно. Проектирование по контракту — это более формальный способ заявить о том, что конкретный класс требует от своих клиентов, и что он готов дать в замен.

www.dotnetconf.ru/Materialy/Programming_By_Contract


7. Design & Process Models

Докладчик: Евгений Кривошеев

Сегодня мы решаем все более сложные задачи в рамках разработки, и зачастую технические и процессные решения принимаются неверно, что приводит к неминуемой расплате. Мы часто не можем принять решения, посмотрите вокруг — сплошные вопросы «Scrum или Kanban? Как поставить процесс, чтобы не было технического долга? Как научить архитекторов вырабатывать обоснованные и правильные решения? Какие использовать процессные и инженерные практики?»

Проблема усугубляется тем, что процессная и технические стороны не понимают друг друга, не способны поддержать друг друга и стать одним целым. Риски и ответственность распределяются между участниками неразумно и неэффективно.

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

www.dotnetconf.ru/Materialy/Design_Process_Models


Отзывы

Я получил 76 отзывов. Спасибо всем, кто нашел время, чтобы поделиться своим мнением! Большинство написали развернутые комментарии по организационным вопросам и содержанию докладов.

В анкетах разработчики сказали, что хотелось бы:

  • Услышать опыт работы с высокими нагрузками
  • Развивать тему CQRS
  • Про Design & Process Models хотелось бы услышать больше и с примерами из реальных проектов
  • Мастер классы по организации процесса разработки с использованием TFS или других CI servers, автоматизации Web Deploy задач, DB проектов
  • Побольше докладов по более узконаправленным тематикам (например «грабли NHibernate» или «Javascript tips and tricks»)
  • Геймдизайн и Kinect
  • DevExpress, было бы очень здорово, если бы ребята оттуда смогли принять участие и рассказали например про XPO или XAF
  • Проектирование, а именно о новых подходах
  • Побольше докладов о практическом применении интеграционного и приемочного тестирования, в частности, в веб-приложениях
  • Проектирование домена приложения
  • Практические примеры проектирования по контракту
  • Больше живого кодинга
  • Шаблоны проектирования
  • Больше внимания уделять вопросам интеграции C# проектов с ведущими open source разработками. Например, интересует работы из C# с Apache Hadoop

Обещаю к следующей встрече учесть пожелания по организационным вопросам.

Подарки

В качестве подарков в этот раз были 2 комплекта лицензий на .NET-продукты от JetBrains. В каждый комплект входят: ReSharper, dotTrace Performance, dotTrace Memory и dotCover. Я бы подарил с удовольствием один из них сам себе :)

Как и обещалось эти призы были разыграны по анкетам обратной связи и достались:

  • Рамиль Кадралиев
  • Alexander Milikovski

Поздравляю с приобретением! Им по почту, указанную в анкете обратной связи, отправлены инструкции по получению призов.

Продолжение

Судя по отзывам, нужно продолжать формат онлайн .NETconf. Особенность наших встреч в том, что в докладчики приглашаются только практикующие программисты или тренеры. В докладах нужно делиться своим опытом работы. Это такая конференция от разработчиков к разработчикам.

Участие во всех встречах было и будет бесплатным. Поддержание происходит за счет donations (на сайте конференции в правом столбце есть кнопочка), поэтому никто сверху не скажет, какие мне доклады брать, а какие противоречат «нашим интересам».

Если вы практикуете разработку под .NET, то напишите мне тему, с которой хотите выступить и я организую еще одну встречу. Мои контакты www.dotnetconf.ru/Contacts

Автор: AlexanderByndyu


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


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