27
ASP.NET MVC 3 RC Обзор технологии Антон Видищев MCPD Programming Team Leader Компания Eclipse SP (Member of Sigma Group)

ASP.NET MVC 3 Anton Vidishchev

Embed Size (px)

Citation preview

Page 1: ASP.NET MVC 3 Anton Vidishchev

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

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

Page 2: ASP.NET MVC 3 Anton Vidishchev

Model – View - Controller

Model

ControllerView

Page 3: ASP.NET MVC 3 Anton Vidishchev

ASP.NET MVC 1.0

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

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

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

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

Page 4: ASP.NET MVC 3 Anton Vidishchev

ASP.NET MVC 2

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

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

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

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

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

Page 5: ASP.NET MVC 3 Anton Vidishchev

ASP.NET MVC 3

Что нового?

Page 6: ASP.NET MVC 3 Anton Vidishchev

Введение

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

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

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

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

Page 7: ASP.NET MVC 3 Anton Vidishchev

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

Было

Стало

Page 8: ASP.NET MVC 3 Anton Vidishchev

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

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

ActionFilterAttribute GlobalFilters.Filters.Add(

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

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

Page 9: ASP.NET MVC 3 Anton Vidishchev

JsonValueProviderFactory

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

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

Page 10: ASP.NET MVC 3 Anton Vidishchev

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

код HTTP 404;

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

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

Page 11: ASP.NET MVC 3 Anton Vidishchev

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

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

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

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

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

Page 12: ASP.NET MVC 3 Anton Vidishchev

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

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

Page 13: ASP.NET MVC 3 Anton Vidishchev

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

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

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

Page 14: ASP.NET MVC 3 Anton Vidishchev

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

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

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

Page 15: ASP.NET MVC 3 Anton Vidishchev

Валидация: IsValid

Page 16: ASP.NET MVC 3 Anton Vidishchev

IValidatableObject

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

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

Page 17: ASP.NET MVC 3 Anton Vidishchev

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

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

Page 18: ASP.NET MVC 3 Anton Vidishchev

Razor View Engine

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

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

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

*.aspx/*.ascx

Page 19: ASP.NET MVC 3 Anton Vidishchev

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

Razor

Page 20: ASP.NET MVC 3 Anton Vidishchev

Razor: блоки кода

ASPX

Razor

Page 21: ASP.NET MVC 3 Anton Vidishchev

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

Page 22: ASP.NET MVC 3 Anton Vidishchev

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

Razor

Page 23: ASP.NET MVC 3 Anton Vidishchev

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

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

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

Page 24: ASP.NET MVC 3 Anton Vidishchev

Razor: master page

ASPX

Razor

Page 25: ASP.NET MVC 3 Anton Vidishchev

Dependency Injection, Service Locator

Page 26: ASP.NET MVC 3 Anton Vidishchev

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

Page 27: ASP.NET MVC 3 Anton Vidishchev

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

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

@[email protected]