Главная страница   /   1.3. Что нового в ASP.NET MVC 3/4? (ASP.NET MVC 4 в действии

ASP.NET MVC 4 в действии

ASP.NET MVC 4 в действии

Джеффри Палермо

1.3. Что нового в 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, пришло время погрузиться в пример проекта, в котором будут поясняться некоторые из этих возможностей. Мы будем изучать этот проект на протяжении всей первой части данной книги.