войти зарегистрироваться

.NET whois

индекс
93,75

ASP.NET MVC 2: вышел второй кандидат на релиз

imageФил Хак (Phil Haack) в своем блоге опубликовал новость о выходе ASP.NET MVC 2 RC2. Новость отличная, потому что хотя в этом выпуске и нет особых новых функций, но присутствуют существенные изменения. Далее рассмотрим полный список этих изменений.


Обновленный функционал


Самое главное в этой версии – это обновленная система валидации ASP.NET MVC. Более подробно о нововведении можно почитать в этой статье, а здесь я только приведу небольшое описание. Ранее валидация в ASP.NET MVC работала от формы, то есть серверной валидации подлежали только те поля, которые были переданы на сервер. Это поведение не было прозрачным для разработчиков, многие считали, что если они определили правила валидации для полей модели, то вся модель всегда будет проходит валидацию. Однако, это было не так. Теперь же, механизм валидации отталкивается от модели, поэтому не имеет значения какие данные модели пришли с формы, при связывании данных валидация будет применяться ко всем элементам модели.

Это нововведение делает поведение серверной валидации более прозрачным для разработчика, однако не решает полностью все вопросы безопасности. Более подробно об этих вопросах безопасности в моей статье.

Прочие исправления


Есть довольно большое количество мелких изменений в новой версии ASP.NET MVC 2 RC:
  • в проектах обновлен файл MicrosoftAjax.js, его версия соответствует последней версии ASP.NET Ajax, включенной в ASP.NET 4, поддерживается и ASP.NET 3.5 SP1;
  • улучшена производительность во многих местах фреймворка;
  • TempDataDictionary теперь содержит метод Peek, который позволит извлечь данные без удаления из коллекции;
  • теперь, по умолчанию, Html.EditorFor и Html.DisplayFor формируют разметку только для простых данных, для комплексных предлагается создать свои собственные шаблоны;
  • команда Add View в контекстном меню теперь позволяет создать представление для удаления данных, существующее представление List теперь содержит ссылки на удаление элементов списка;
  • вспомогательные методы валидации больше не добавляют префикс form0 для атрибута id при рендеринге;
  • вспомогательные методы, которые рендерят input-поля теперь генерируют корректные значения для атрибута name, в случае когда элементом рендеренга является элемент коллекции или массива;
  • добавлен тип UrlParameter с единственным свойством Optional, которое можно присвоить параметру маршрута для того, чтобы механизм маршрутизации в MVC (MvcHandler) мог удалить этот параметр из коллекции параметров RouteData.Values после роутинга, но до вызова метода контроллера. Это позволит избегать конфликта имен параметров маршрутов с именами модели. Это нововведение уже используется в проекте ASP.NET MVC 2 Web Application;
  • в пустой MVC-проект добавили маленький файл со стилями, для использования по умолчанию во вспомогательных методах валидации;
  • шаблоны T4 теперь могут указывать расширение для генерируемых файлов.

Исправленные ошибки


В этом релизе исправлено несколько ошибок:
  • SessionStateTemDataProvider больше не сохраняет значение TempData в сессии, когда в TempData нет данных;
  • метод GetValue класса FormCollection теперь может принимать пустые строки в параметре (затрудняюсь сразу сказать, когда это нужно);
  • теперь есть возможность программно отключить клиентскую валидацию для кнопки submit, ранее требовалось, чтобы input-элемент submit содержал атрибут name;
  • клиентская валидация, в случае провала, теперь предотвращает Ajax-запросы с формы.

Заключение


Как можно видеть, список исправлений большой. Многие исправления незначительны либо имеют небольшое влияние, но есть и такие, которые играют важную роль и знать из разработчику ASP.NET MVC крайне желательно. Надеюсь, эта заметка поможет вам разобраться и получить базовое представление о новой версии ASP.NET MVC 2.

Как и несколько предыдущих тестовых релизов ASP.NET MVC 2, этот релиз не совместим с Visual Studio 2010 (Beta 2 или ниже). Установка на системы, где есть VS2010 не поддерживается. Ожидается, что VS2010 RC, которая должна скоро появиться, будет содержать финальную версию ASP.NET MVC 2. Предлагаю дождаться ее, тем кто использует Visual Studio 2010 в своей работе.

Скачать ASP.NET MVC 2 RC2 можно с этой страницы, там же есть замечания к выпуску (.doc).

Скачать исходные коды данной версии ASP.NET MVC 2 можно здесь, там же есть исходные коды MVC Futures.

Progg it
_________
Текст подготовлен в ХабраРедакторе

комментарии (12)

  • Очень хорошо, что Microsoft развивает MVC направление…
    • и делает это в полном opensource, что тоже очень важно и полезно
      к слову MVC Framework из-за этого спокойно работает в Linux/Mono
      • точно? не холивара ради а интереса для? Есть ли какие то «сильные» ограничения? Просто есть перспективный проект и желание добавить пользователю выбор хоста.
        • ограничений в плане проекта на MVC, насколько я знаю, нет
          ограничения есть у самого mono в плане поддержки функций которые есть в .NET

          кстатит, если попробуете, интересно будет узнать про ваш опыт
  • >> этот релиз не совместим с Visual Studio 2010
    жаль =(
  • Существует хорошее введение/документация в ASP.NET MVC 2 или порог вхождения высок и нужно собирать информация по нему по крупицам в блогах?
    • именно вторая версия или весь MVC Framework в целом? вообще уже есть книги по этоум делу (для 1 версии).
      а по второй части много постов в блогах разработчиков, того же Хака или Скота Гатри.

      кстати, на MSDN уже есть часть документации по MVC 2
      есть немного вебкастов тут www.techdays.ru/Search.aspx?Quick=mvc

      ну и, если что конкретное интересует, можно у меня спросить, постараюсь помочь
    • Если интересует введение в ASP.NET MVC независимо от версии, то есть Free ASP.NET MVC eBook Tutorial от Скотта Гатри. Я именно с неё начинал знакомство с MVC.

      Ещё могу посоветовать отличную книгу Pro ASP.NET MVC Framework от Стивена Сандерсона. Но её надо либо покупать, либо качать с торрентов. В свободном доступе нет. Надо сказать, что оно того стоит, так как книга просто великолепная. Читается на одном дыхании, как будто это не техническое пособие, а роман.
      • Как раз читаю Pro ASP.NET MVC Framework. Согласен — отличная книга.
      • Спасибо, полистал первую, через пару недель, думаю, пригодится.
  • Еще есть книга ASP.NET MVC in Action.
    Она вышла когда платформа MVC немного подросла, в ней описаны способы интеграции с такими Open Source проектами как Castle, Structure-Map, AutoMapper, and MvcContrib.
    Даже не знаю какая мне больше понравилась «Pro» или «In action».
    Читать определенно стоит!
    • Книжка in action — это просто зло, думаю большинство разработчиков которые не работали с asp.net mvc ее попросту не осилят. А авторам нужно поставить памятник за столь серьезный труд.
Только авторизованные пользователи могут оставлять комментарии. Авторизуйтесь, пожалуйста.