Фирма

«Инрэко ЛАН»

Microsoft регулярно проводит offline семинары TechDays – тематические доклады и встречи с представителями компании, проходящие в разных городах России. Ход по большей части маркетинговый, но при этом позволяет за короткое время познакомиться с новинками и развиваемыми направлениями. К слову сказать, у Sun такая традиция появилась гораздо раньше.

19 февраля в Нижнем Новгороде прошли два семинара Microsoft: Дни разработчика и TechNet.
Представители Microsoft, негромко упомянув кризис, сказали, что выступать будет только по одному докладчику в каждой части.
Хотя на TechNet было кое-что интересное, остановлюсь на части для разработчиков.
Программистскую половину дня провел некий Евгений Марченков – весьма молодой человек, занимающий должность разработчика в Microsoft (хотя, по темпераменту и стилю повествования его можно было легко принять за сотрудника Yandex).

Программа семинара:
• Технологии Microsoft и карьера;
• Анализ ошибок в приложениях с помощью Windows Error Reporting;
• ASP.NET MVC Framework на практике.

Первый доклад с чистой совестью был заменён осмотром нижегородского кремля и заледеневшей Волги.

Windows Error Reporting

Операционные системы Windows давно предлагают отправлять отчеты в случаях сбоев и зависаний. Все отправленные данные (малый дамп памяти, информация о конфигурации, иногда и другие сведения) сохраняются в специальном хранилище. Microsoft решило открыть эти данные для разработчиков.
Услуга эта бесплатная. Что бы воспользоваться ей, нужно:
1. Иметь (или купить примерно за 400 $ сертификат независимых разработчиков программного обеспечения ISV (Independent software vendor). Все разрабатываемые программы должны быть подписанные сертификатом, который играет роль идентификатора разработчика в системе WER.
2. Зарегистрировать компанию на Windows Quality Online Services.
3. Подписать соглашение с Microsoft об использовании предоставляемых данных исключительно для устранения и анализа ошибок программного обеспечения (нужно отправить подписанный экземпляр факсом или по электронной почте с подписью).
4. Создать пользовательский аккаунт в системе.
Кроме того, Microsoft предлагает разработчикам выкладывать патчи или инструкции, которые будут предложены пользователям, в случае возникновения ошибки.
Цикл отслеживания ошибки в каждом приложении в таком случае выглядит следующим образом. Отчет об ошибке поступает в центр Microsoft. Если ошибка известна и уже имеется решение, то пользователю предлагается инструкция по устранению ошибки. Если ошибка неизвестная или еще не имеет решения, то она просто сохраняется в хранилище. Разработчики могут получать доступ к списку ошибок своего приложения и выпускать так называемые hotfix, которые будут предлагаться при повторном возникновении ошибки.


Рис. 1 Цикл обработки ошибки

Всё бы хорошо, только есть проблемы:
1) Что бы отправить сообщения об ошибке пользователь должен иметь доступ к Интернет;
2) Пользователь должен захотеть отправлять куда-то сведения со своего компьютера;
3) Система WER может неплохо работать для тиражируемых коробочных продуктов, когда однотипные ошибки повторяются многократно, да и число установленных копий достаточно велико. В случае индивидуальных решений, которыми в основном и занимается «Инрэко ЛАН» использование WER едва ли целесообразно.

MVC Framework

Самая «вкусная» часть семинара оказалась в конце, когда часть посетителей, получив бесплатные футболки и пирожки, разбрелась по домам и делам, а докладчик устал.
MVC – шаблон проектирования (архитектура), в которой модель данных приложения, пользовательский интерфейс и управляющая логика разделены на три отдельных компонента, так, что модификация одного из компонентов оказывает минимальное воздействие на другие компоненты.
Шаблон MVC позволяет разделить данные, представление и обработку действий пользователя на три отдельных компоненты:
• Модель (Model). Модель предоставляет данные (обычно для View), а также реагирует на запросы (обычно от контроллера), изменяя свое состояние.
• Представление (View). Отвечает за отображение информации (пользовательский интерфейс).
• Поведение (Controller). Интерпретирует данные, введенные пользователем, и информирует модель и представление о необходимости соответствующей реакции.
Браузер посылает запрос контроллеру. Контроллер, взаимодействует с моделью. На уровне модели осуществляется работа с базой данных. После этого данные возвращаются контроллеру, который передает их в представление. Представление по данным, полученным от контроллера, формирует то, что будет показано на экране.


Рис. 2 Взаимодействие компонент MVC


Достоинства такой архитектуры:
• Доступное для автоматизированного тестирования приложение, разделённое на независимые слои;
• Более простая поддержка нескольких платформ, т.к. логика приложения формируется отдельно от интерфейсной части, нет необходимости разрабатывать ее заново или адаптировать;
• Контроль над генерируемым кодом страницы (html, javascript);
• Возможность использовать интуитивно понятные url, не используя URL Rewriting (хотя, на мой взгляд, небезопасно передавать все параметры в url).
• Разделение работы на отдельные составляющие.
Одной из основных особенностей MVC Framework является то, что для генерируемого контента перестают быть доступны события форм, в частности postback. Вместо postback используется модель вопрос-ответ (redirect).
Также Microfot утверждает, что индексирование страниц поисковыми системами, разработанных в рамках шаблона MVC эффективнее.
На мой взгляд, MVC – шаблон, который давно существует у конкурентов. Этот шаблон в перспективе будет, вероятно, включен в студию (кстати, готовится выход Visual Studio 2010 и .NET Framework 4.0).

Дополнительные ссылки:
ASP.NET MVC Release Candidate 1 Refresh with documentation
MSDN code samples
Примеры и уроки от ASP.NET

Материалы конференции (информация о релизе MVC, winqual help – описание работы с WER) опубликованы на SharePoint-портале.

У системных администраторов фирмы имеется диск с конференции, содержащий некоторые другие дистрибутивы.

Ну и еще немного отвлеченно, просто напомнили как раз на конференции.
Монитор процессов, эффективнее стандартного: Process Monitor v2.03 (http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx).

Сергей Горбановский, начальник группы системного администрирования,
Ирина Лагерь, старший инженер-программист

Метки: TechDays | семинар

Добавить комментарий