ASP.NET MVC 3 Anton Vidishchev

Preview:

Citation preview

ASP.NET MVC 3 RCОбзор технологии

Антон ВидищевMCPDProgramming Team LeaderКомпания Eclipse SP (Member of Sigma Group)

Model – View - Controller

Model

ControllerView

ASP.NET MVC 1.0

Создание веб-приложений с использованием шаблона «Model-View-Controller» Чёткое разделение обязанностей между

компонентами Уменьшение связности между компонентами Упрощение unit-тестирования

Полный контроль над разметкой Механизм роутинга Поддержка существующей

инфраструктуры ASP.NET

ASP.NET MVC 2

Валидация при помощи DataAnnotations

Улучшена производительность Строго типизированные

помощники Представление для удаления

данных Экранирование строк при

рендеринге Функционал Areas

ASP.NET MVC 3

Что нового?

Введение

Текущая версия MVC 3 – Release Candidate

MVC 3 требует .NET 4, поддерживается только Visual Studio 2010

Вероятно, финальная версия выйдет до конца года

в данный момент MVC 3 RC несовместима с пакетом Async CTP

Динамические свойства View и ViewModel

Было

Стало

Глобальные фильтры

Фильтры, которые вызываются при вызове каждого действия

ActionFilterAttribute GlobalFilters.Filters.Add(

new MyActionFilter()); IFilterProvider – возможность

переопределить механизм глобальных фильтров

JsonValueProviderFactory

Поддержка привязки Json-данных при запросах на параметры действия

Ранее было в MVC Futures

Новые типы результатов действий HttpNotFoundResult – возвращает

код HTTP 404;

HttpStatusCodeResult – возвращает пользовательский код HTTP-ответа;

RedirectPermanent, RedirectToRoutePermanent, RedirectToActionPermanent – осуществляют переход с кодом HTTP 301 (постоянный редирект)

Ненавязчивый JavaScript

Чистая HTML-разметка без внедренного JavaScript при работе с Ajax

Работа на базе jQuery Требуется включение

jquery.unobtrusive-ajax.js Поддержка клиентской валидации Управление через web.config

(включено по умолчанию)

Безсессионные контроллеры

Возможность работы без сессии Read-only session

Кэширование вложенных действий Атрибут OutputCache можно

применять к любым методам Результат будет кэшироваться и

для методов Html.RenderAction и Html.Action

Валидация: новые атрибуты

CompareAttribute – позволяет проверить на идентичность два свойства в модели

RemoteAttribute – позволяет указать метод для запроса валидации к серверу со стороны клиента (поддерживается jQuery Validation)

Валидация: IsValid

IValidatableObject

Интерфейс представлен в .NET4 Позволяет реализовать логику

валидации в модели

Валидация: запросы

Атрибут SkipRequestValidation – позволяет указать свойства, которые не нужно проверять при валидации запроса

Razor View Engine

Новый движок представлений Чистый клиентский код Отвязывает ASP.NET MVC от Web

Forms MVC 3 поддерживает различные

движки: ASPX, Spark, Razor *.cshtml (*.vbhtml) вместо

*.aspx/*.ascx

Razor: встроенное выражение ASPX

Razor

Razor: блоки кода

ASPX

Razor

Razor: Условия, циклы

Razor: типизация представления ASPX

Razor

Razor: компонентная модель _ViewStart.cshtml – включение

параметров для всех представлений

Параметр Layout – аналог MasterPage (_Layout.cshtml – аналог Site.Master)

Razor: master page

ASPX

Razor

Dependency Injection, Service Locator

Dependency Injection, Service Locator

Asp.net mvc 3 поддерживает Common Service locatorlibrary и любой DI контейнер, который реализует интерфейс из CSL library:

Castle Windsor Adapter Spring .NET Adapter Unity Adapter StructureMap Adapter Autofac Adapter MEF Adapter .net 4.0 LinFu Adapter

Спасибо за внимание!

Антон ВидищевMCPDProgramming Team LeaderКомпания Eclipse SP (Member of Sigma Group)

@antonvidishcheva.vidishchev@gmail.com