- PVSM.RU - https://www.pvsm.ru -
4-я .NETconf прошла 28 апреля 2012 и первый раз была в онлайн формате. Это позволило принять участие разработчикам, которые не могли прилететь на 3 предыдущие встречи. За время трансляции 7-ми выступлений в конференции приняли активное участие 508 человек.
Ниже выложены 6 докладов и один мастер-класс с видео, слайдами и ссылками на исходный код.
Посмотреть материалы всех встреч вы можете на сайте www.dotnetconf.ru [1]
Докладчик: Руслан Сафин [2]
В рамках данного доклада показывается, как при использовании ORM NHibernate диагностировать проблемы одновременного доступа к данным и как эти проблемы решать. Рассматриваются несколько путей решения одновременного обновления данных — слияние изменений при записи (если это возможно) и полный запрет записи данных (если это приведёт к потере изменений).
Проблема при одновременном удалении данных решается методом SoftDelete, показывается как такое решение лучше всего реализовать при использовании NHibernate.
Исходный код: www.dropbox.com/s/f559dz0x3vl4dui/NhibernateConf.rar [3]
www.dotnetconf.ru/Materialy/NHibernate_diagnostic [4]
Докладчик: Тимур Рахматиллаев [5]
В докладе будет рассказано и показано, как расширить возможности стандартного 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 [6]
www.dotnetconf.ru/Materialy/Vihodim_za_granicy_NPAPI_NaCl [7]
Докладчик: Ринат Абдуллин [8]
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 [9]
www.dotnetconf.ru/Materialy/Practical_CQRS [10]
Докладчик: Тимур Рахматиллаев [5]
В рамках данного мастер класса будет показано использование библиотеки 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 [11]
Исходный код на момент завершения трансляции: github.com/downloads/Eskat0n/dotnetconf-signalr-example/28.04.2012.7z [12]
www.dotnetconf.ru/Materialy/SignalR [13]
Докладчик: Артем Смирнов [14]
Я собираюсь рассмотреть способы структурирования тестов в системах различной сложности, а также эволюцию этой структуры в процессе развития системы. Я покажу, как такая структура естественным образом вытекает из базовых требований к тестам, и какие компромиссы возможны в различных ситуациях.
Исходный код: github.com/gregoryyoung/Simple.Testing [15]
www.dotnetconf.ru/Materialy/Test_Arrange_Act_Assert [16]
Докладчик: Сергей Тепляков [17]
Программа сама по себе не может быть корректной или не корректной, все зависит от того, что она должна делать на самом деле. Но поскольку информация о том, что же должна делать программа на самом деле зачастую размазывается по диаграммам, коду и юнит-тестам, то понять «а не сломал ли я чего-то сегодня» бывает довольно сложно. Проектирование по контракту — это более формальный способ заявить о том, что конкретный класс требует от своих клиентов, и что он готов дать в замен.
www.dotnetconf.ru/Materialy/Programming_By_Contract [18]
Докладчик: Евгений Кривошеев [19]
Сегодня мы решаем все более сложные задачи в рамках разработки, и зачастую технические и процессные решения принимаются неверно, что приводит к неминуемой расплате. Мы часто не можем принять решения, посмотрите вокруг — сплошные вопросы «Scrum или Kanban? Как поставить процесс, чтобы не было технического долга? Как научить архитекторов вырабатывать обоснованные и правильные решения? Какие использовать процессные и инженерные практики?»
Проблема усугубляется тем, что процессная и технические стороны не понимают друг друга, не способны поддержать друг друга и стать одним целым. Риски и ответственность распределяются между участниками неразумно и неэффективно.
В качестве выхода из сложившейся ситуации мне хотелось бы предложить простой и понятный каркас формирования процессов и проработки высокоуровневой архитектуры. С тем, чтобы технические решения были обоснованы и эффективны, а процессные техники поддерживали, а не мешали разработчикам. Предложенный подход позволит так же выработать общий и целостный понятийный аппарат, незаменимый в быстром решении сложных задач в наших с вами условиях неопределенности.
www.dotnetconf.ru/Materialy/Design_Process_Models [20]
Я получил 76 отзывов. Спасибо всем, кто нашел время, чтобы поделиться своим мнением! Большинство написали развернутые комментарии по организационным вопросам и содержанию докладов.
В анкетах разработчики сказали, что хотелось бы:
Обещаю к следующей встрече учесть пожелания по организационным вопросам.
В качестве подарков в этот раз были 2 комплекта лицензий на .NET-продукты от JetBrains. В каждый комплект входят: ReSharper, dotTrace Performance, dotTrace Memory и dotCover. Я бы подарил с удовольствием один из них сам себе :)
Как и обещалось эти призы были разыграны по анкетам обратной связи и достались:
Поздравляю с приобретением! Им по почту, указанную в анкете обратной связи, отправлены инструкции по получению призов.
Судя по отзывам, нужно продолжать формат онлайн .NETconf. Особенность наших встреч в том, что в докладчики приглашаются только практикующие программисты или тренеры. В докладах нужно делиться своим опытом работы. Это такая конференция от разработчиков к разработчикам.
Участие во всех встречах было и будет бесплатным. Поддержание происходит за счет donations (на сайте конференции в правом столбце есть кнопочка), поэтому никто сверху не скажет, какие мне доклады брать, а какие противоречат «нашим интересам».
Если вы практикуете разработку под .NET, то напишите мне тему, с которой хотите выступить и я организую еще одну встречу. Мои контакты www.dotnetconf.ru/Contacts [21]
Автор: AlexanderByndyu
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/net/8438
Ссылки в тексте:
[1] www.dotnetconf.ru: http://www.dotnetconf.ru
[2] Руслан Сафин: http://safin-ruslan.moikrug.ru
[3] www.dropbox.com/s/f559dz0x3vl4dui/NhibernateConf.rar: https://www.dropbox.com/s/f559dz0x3vl4dui/NhibernateConf.rar
[4] www.dotnetconf.ru/Materialy/NHibernate_diagnostic: http://www.dotnetconf.ru/Materialy/NHibernate_diagnostic
[5] Тимур Рахматиллаев: https://twitter.com/#!/Eskat0n
[6] www.dropbox.com/s/4brqpdok43d2i8u/TestPlugin.7z: https://www.dropbox.com/s/4brqpdok43d2i8u/TestPlugin.7z
[7] www.dotnetconf.ru/Materialy/Vihodim_za_granicy_NPAPI_NaCl: http://www.dotnetconf.ru/Materialy/Vihodim_za_granicy_NPAPI_NaCl
[8] Ринат Абдуллин: http://abdullin.com/
[9] lokad.github.com/lokad-cqrs: http://lokad.github.com/lokad-cqrs
[10] www.dotnetconf.ru/Materialy/Practical_CQRS: http://www.dotnetconf.ru/Materialy/Practical_CQRS
[11] github.com/Eskat0n/dotnetconf-signalr-example: https://github.com/Eskat0n/dotnetconf-signalr-example
[12] github.com/downloads/Eskat0n/dotnetconf-signalr-example/28.04.2012.7z: https://github.com/downloads/Eskat0n/dotnetconf-signalr-example/28.04.2012.7z
[13] www.dotnetconf.ru/Materialy/SignalR: http://www.dotnetconf.ru/Materialy/SignalR
[14] Артем Смирнов: https://twitter.com/#!/uluhonolulu
[15] github.com/gregoryyoung/Simple.Testing: https://github.com/gregoryyoung/Simple.Testing
[16] www.dotnetconf.ru/Materialy/Test_Arrange_Act_Assert: http://www.dotnetconf.ru/Materialy/Test_Arrange_Act_Assert
[17] Сергей Тепляков: http://sergeyteplyakov.blogspot.com
[18] www.dotnetconf.ru/Materialy/Programming_By_Contract: http://www.dotnetconf.ru/Materialy/Programming_By_Contract
[19] Евгений Кривошеев: http://ekrivosheev.moikrug.ru
[20] www.dotnetconf.ru/Materialy/Design_Process_Models: http://www.dotnetconf.ru/Materialy/Design_Process_Models
[21] www.dotnetconf.ru/Contacts: http://www.dotnetconf.ru/Contacts
Нажмите здесь для печати.