Как стать автором
Обновить

Вышел ASP.NET MVC Preview 5

Время на прочтение3 мин
Количество просмотров3.2K
Этой ночью вышел очередной Preview ASP.NET MVC под номером 5.
Кто нетерпеливый, идет качает с Codeplex сам релиз.
А кому интересно, читает изменения под хабракатом.
UPD: Вот и Скотт Гатри отписался: ASP.NET MVC Preview 5 and Form Posting Scenarios . Пост больше охватывает изменения, касающиеся отправки данных на сервер, валидации, обновления данных. Сам он жив здоров, просто уходил в отпуск на полтора месяца :)

Как сообщает Phil Haack, этот Preview не планировали выпускать, но в проект внесли некоторые существенные изменения, поэтому, ожидают отзывов от разработчиков и обкатки. Следующий релиз уже будет официальной Beta, что не может не радовать.

Пока дают на тест драйв то что есть и предуреждают о вероятных изменениях в API и их улучшение в Beta-версии. Имена классов устаканились, это уже радует.

В самих Release Notes пишут следующее:
  • Добавлена глобальная регистрация отображений. Теперь контроллер за это не отвечает, но при желании можно вернуть из метода ViewResult для отрисовки нужного отображения
  • Изменен интерфейс IViewEngine для отрисовки частичных отображения (partial views). Теперь из хэлпера можно вызвать метод <% Html.RenderPartial(...); %>. Этот метод не возвращает строку, а отрисовывает отображение посредством TextWriter.
  • В DropDown List можно указывать элемент, который будет выбран по умолчанию.
  • Методы ASP.NET AJAX вынесены в отдельное пространство имен.
  • Добавлены методы в хелпер для RadioButton и TextArea. Так же изменены некоторые другие методы, в некоторые добавлены перегрузки, из некоторых поубирали лишние, воизмежание конфликтов.
  • Методы Action могут теперь принимать массивы в качестве параметров.
  • Удалено свойство ActionMethod из объекта action filter
  • Теперь можно в методы Action передавать комплексные типы, пометив их специальным аттрибутом.
  • Контроллер теперь не связан напрямую с классом ControllerActionInvoker, вместо этого он теперь оперирует с интерфейсом IActionInvoker, что добавит расширяемости нашим приложениям.
  • Добавился метод UpdateMode в контроллер, который может быть использован, для обновления нашего объекта модели данными, полученными из запроса например.
  • Внесены изменения в HandleErrorAttribute, которые позволяют видеть нам обычную ASP.NET страницу с ошибками («желтую страницу смерти», как её назвали :) ), на этапе разработки. Это дает нам намного больше полезной информации, чем та страница с ошибкой, которая показывается конечному пользователю.


Интерсные изменения мы можем увидеть у наших Action-методов. Во-первых, мы через аттрибут [ActionName(«MyAction»)] можем указать имя нашего действия, которое может отличаться от действительного имени метода. Теперь мы можем называть наши методы более расширенно и понятно для разработчиков, но оставляя их краткими и понятными для URL. Стоит отметить, что в коде теперь уже прийдется писать имя, которое мы указали в аттрибуте, а не действительно название метода. Например:
<%= Url.Action("[имя, которое дали в аттрибуте]") %>

Добавился ещё один аттрибут AcceptVerb. Теперь мы можем иметь, например, два перегруженных метода (Action), первый из которых будет принимать параметры через GET, а второй будет перегруженным и принимать параметры через POST. Реализуется это вот так:
[AcceptVerbs(«GET»)]
public ActionResult Edit(string id)
{
 return View();
}

[AcceptVerbs(«POST»)]
public ActionResult Edit(string id, FormCollection form)
{
 //Save the item and redirect…
}

* This source code was highlighted with Source Code Highlighter.


Все написано по материалам блога Phil Haack и сайту CodePlex. Ещё ждем поста от Scott Guthrie в его блоге. Сам пока не ставил, только после выходных займусь.

PS. Статьи по ASP.NET MVC тормознулись по личным причинам и рабочим обстоятельствам (частично меняю место работы). Сайт из примера уже написан и работает, как появится свободное время, обязательно поделюсь опытом и напишу на эту тему.
Теги:
Хабы:
Всего голосов 45: ↑30 и ↓15+15
Комментарии33

Публикации