Что нового в ASP.NET MVC 3/4?
Помимо использования .NET 4 в третий и четвертый релизы ASP.NET MVC внесено множество улучшений и добавлено несколько новых возможностей. К этим новым возможностям относятся:
- Движок представления Razor
- Управление пакетами с помощью NuGet
- Улучшенная расширяемость
- Глобальные фильтры методов действий
- Возможности динамических языков программирования
- Частичное кэширование выходной страницы
- Улучшенная технология Ajax
- Усовершенствованная инфраструктура валидации
- Шаблоны для мобильных устройств
- Веб-интерфейс
В этом разделе мы вкратце ознакомим вас с каждой из этих новых возможностей, которые впоследствии будут более тщательно изучены в рамках этой книги. Мы рассмотрим шаблоны для мобильных устройств, веб-интерфейс и другие, присущие только MVC 4 черты в главах 23 и 24.
Движок представления Razor
Одним из основных компонентов новой технологии ASP.NET Web Pages является движок представления Razor. С помощью этого движка обеспечивается кратчайший способ соединения кода и разметки в пределах одного и того же файла. В ASP.NET MVC приложениях также может использоваться движок представления Razor как альтернатива движку представления Web Forms, который был доступен и в ASP.NET MVC 1, и в ASP.NET MVC 2.
К примеру, следующий отрывок кода применяется для показа простой страницы, содержащей список наименований товаров, при помощи используемого ранее движка представления Web Forms:
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<Product[]>" %>
<ul>
<% foreach (var product in Model){ %>
<li><%: product.Name %></li>
<% } %>
</ul>
Этот отрывок кода является довольно подробным. Объявление Page
в верхней части и куски кода, заключенные в <%
и %>
, которые используются для переключения между кодом и разметкой, добавляют много дополнительных символов в разметку страницы. Тогда как движок Razor предоставляет более краткий способ достижения того же результата:
@model Product[]
<ul>
@foreach (var product in Model)
{
<li>@product.Name</li>
}
</ul>
Как вы можете видеть, движку представления Razor не нужны символы <%
и %>
для перехода между кодом и разметкой, что позволяет логике представления больше фокусироваться на разметке страницы. В части 1 данной книги мы будем широко использовать движок Razor, а в главе 17 более подробно его изучим.
Управление пакетами с помощью NuGet
ASP.NET MVC поставляется с менеджером пакетов NuGet. Этот менеджер упрощает управление взаимосвязанными сущностями (зависимостями), предоставляя инструмент, который может быть использован для установки компонентов, библиотек и других утилит прямо в ваш проект без необходимости посещения веб-сайта для загрузки искомой библиотеки. После установки эти компоненты могут также легко обновляться в программе Visual Studio.
Менеджер пакетов NuGet работает как в консольном, так и в графическом интерфейсе, который может использоваться при онлайн-загрузке компонентов и библиотек из целого ряда пакетов. Более подробно NuGet рассматривается в главе 14.
Улучшенная расширяемость
ASP.NET MVC предоставляет дополнительные возможности расширяемости, которые вы можете использовать для того, чтобы заменять различные части фреймворка своими собственными компонентами. В MVC существует такое понятие как "Dependency resolver" (в дальнейшем DR) – преобразователь зависимостей, который используется для обработки объектов и обратной передачи их во фреймворк. Данный подход может использоваться для интеграции с различными DI контейнерами (созданными по принципу инверсии зависимостей) с целью минимизации временных затрат на ручную обработку объектов.
Мы будем рассматривать расширяемость посредством использования DR и DI контейнеров в главе 18.
Глобальные фильтры действий
Возможность использования глобальных фильтров действий в MVC построена на механизме фильтрации MVC 1 и MVC 2 для того, чтобы обеспечить сквозное выполнение всех действий контроллера в приложении. Несмотря на то, что данная возможность может показаться незначительной, использование глобальных фильтров действий может радикально уменьшить количество объявлений фильтра в рамках приложения. Глобальные фильтры действий рассматриваются в главе 16.
Возможности динамических языков программирования
Наряду с использованием .NET 4 в платформе ASP.NET MVC применяются некоторые новые возможности среды DLR, к которым относится возможность передавать данные в представление при помощи динамических моделей. Подробнее мы рассмотрим эту тему в главе 3.
Частичное кэширование выходной страницы
В ASP.NET MVC всегда поддерживалась возможность кэширования всей страницы в течение определенного промежутка времени. Теперь в нем также поддерживается кэширование конкретной области страницы. Как можно выполнить кэширование выходной страницы, мы рассмотрим в главе 17.
Улучшенная технология Ajax
MVC продолжает поддерживать богатую функциональность Ajax посредством взаимодействия с jQuery и другими javascript библиотеками. В него также включена встроенная поддержка преобразования JSON-данных в параметры метода. Мы рассмотрим эти усовершенствования технологии Ajax в главе 7.
Усовершенствованная инфраструктура валидации
В MVC 2 была введена поддержка использования атрибутов Data Annotation для проверки достоверности объектов модели. В .NET 4 эти атрибуты были значительно усовершенствованы, и MVC по-прежнему продолжает использовать преимущества этих атрибутов. Кроме того, была существенно усовершенствована возможность выполнения проверки объектов на стороне клиента. Перечисленные возможности валидации будут рассматриваться в главе 6.
Теперь после того, как вы ознакомились с обзором наиболее примечательных возможностей ASP.NET MVC, пришло время погрузиться в пример проекта, в котором будут поясняться некоторые из этих возможностей. Мы будем изучать этот проект на протяжении всей первой части данной книги.