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

    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

    Similar posts

    Ads
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More

    Comments 10

      +1
      Про NPAPI, NaCl интересно. Всегда нравились какие-то нестандартные решения.
        +3
        Если кому-то интересно могу написать статью про CQRS + Event Sourcing, применение в реальных проектах.
          0
          Это даже не вопрос, очень интересно.
            0
            Возможно у вас есть какие-то конкретный пожелания? Хотелось бы небольшой фидбэк, чтобы знать для кого пишу перед тем как начинать.
              0
              Для практиков которые используют CQRS+ES в своих проектах.
            0
            Очень интересно.
              0
              Обязательно напишите, крайне интересно послушать про реальное использование.
                +1
                Ок. Возможно разобью на две статьи, так как материала достаточно много. Или сразу лучше про практические использование с учетом что некоторые основы у читателя уже есть?
                  0
                  Лучше, конечно бы, разбить на две: чем подробнее, тем лучше. Реальных примеров не так уж много.
                    0
                    Лучше серию статей написать, чтобы разные аспекты подробно рассмотреть.

              Only users with full accounts can post comments. Log in, please.