Pull to refresh

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

Reading time3 min
Views1.5K
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
Tags:
Hubs:
+17
Comments12

Articles

Change theme settings