Asp.net mvc 3 rcОбзор технологииАнтон ВидищевMCPDProgramming Team LeaderКомпания Eclipse SP (Member of Sigma Group)
Model – View - Controller
ASP.NET MVC 1.0Создание веб-приложений с использованием шаблона «Model-View-Controller»Чёткое разделение обязанностей между компонентамиУменьшение связности между компонентамиУпрощение unit-тестированияПолный контроль над разметкойМеханизм роутингаПоддержка существующей инфраструктуры ASP.NET
ASP.NET MVC 2Валидация при помощи DataAnnotationsУлучшена производительностьСтрого типизированные помощникиПредставление для удаления данныхЭкранирование строк при рендерингеФункционал Areas
ASP.NET MVC 3Что нового?
ВведениеТекущая версия MVC 3 – Release CandidateMVC 3 требует .NET 4, поддерживается только Visual Studio 2010Вероятно, финальная версия выйдет до конца годав данный момент MVC 3 RC несовместима с пакетом Async CTP
Динамические свойства View и ViewModelБылоСтало
Глобальные фильтрыФильтры, которые вызываются при вызове каждого действияActionFilterAttributeGlobalFilters.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 FormsMVC 3 поддерживает различные движки: ASPX, Spark, Razor*.cshtml (*.vbhtml) вместо *.aspx/*.ascx
Razor: встроенное выражениеASPXRazor
Razor: блоки кодаASPXRazor
Razor: Условия, циклы
Razor: типизация представленияASPXRazor
Razor: компонентная модель_ViewStart.cshtml – включение параметров для всех представленийПараметр Layout – аналог MasterPage (_Layout.cshtml – аналог Site.Master)
Razor: master pageASPXRazor
Dependency Injection, Service Locator
Dependency Injection, Service LocatorAsp.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

ASP.NET MVC 3 Anton Vidishchev