Download - ASP.NET MVC 3 Anton Vidishchev
![Page 1: ASP.NET MVC 3 Anton Vidishchev](https://reader036.vdocuments.site/reader036/viewer/2022062316/588243221a28ab31228b751b/html5/thumbnails/1.jpg)
ASP.NET MVC 3 RCОбзор технологии
Антон ВидищевMCPDProgramming Team LeaderКомпания Eclipse SP (Member of Sigma Group)
![Page 2: ASP.NET MVC 3 Anton Vidishchev](https://reader036.vdocuments.site/reader036/viewer/2022062316/588243221a28ab31228b751b/html5/thumbnails/2.jpg)
Model – View - Controller
Model
ControllerView
![Page 3: ASP.NET MVC 3 Anton Vidishchev](https://reader036.vdocuments.site/reader036/viewer/2022062316/588243221a28ab31228b751b/html5/thumbnails/3.jpg)
ASP.NET MVC 1.0
Создание веб-приложений с использованием шаблона «Model-View-Controller» Чёткое разделение обязанностей между
компонентами Уменьшение связности между компонентами Упрощение unit-тестирования
Полный контроль над разметкой Механизм роутинга Поддержка существующей
инфраструктуры ASP.NET
![Page 4: ASP.NET MVC 3 Anton Vidishchev](https://reader036.vdocuments.site/reader036/viewer/2022062316/588243221a28ab31228b751b/html5/thumbnails/4.jpg)
ASP.NET MVC 2
Валидация при помощи DataAnnotations
Улучшена производительность Строго типизированные
помощники Представление для удаления
данных Экранирование строк при
рендеринге Функционал Areas
![Page 5: ASP.NET MVC 3 Anton Vidishchev](https://reader036.vdocuments.site/reader036/viewer/2022062316/588243221a28ab31228b751b/html5/thumbnails/5.jpg)
ASP.NET MVC 3
Что нового?
![Page 6: ASP.NET MVC 3 Anton Vidishchev](https://reader036.vdocuments.site/reader036/viewer/2022062316/588243221a28ab31228b751b/html5/thumbnails/6.jpg)
Введение
Текущая версия MVC 3 – Release Candidate
MVC 3 требует .NET 4, поддерживается только Visual Studio 2010
Вероятно, финальная версия выйдет до конца года
в данный момент MVC 3 RC несовместима с пакетом Async CTP
![Page 7: ASP.NET MVC 3 Anton Vidishchev](https://reader036.vdocuments.site/reader036/viewer/2022062316/588243221a28ab31228b751b/html5/thumbnails/7.jpg)
Динамические свойства View и ViewModel
Было
Стало
![Page 8: ASP.NET MVC 3 Anton Vidishchev](https://reader036.vdocuments.site/reader036/viewer/2022062316/588243221a28ab31228b751b/html5/thumbnails/8.jpg)
Глобальные фильтры
Фильтры, которые вызываются при вызове каждого действия
ActionFilterAttribute GlobalFilters.Filters.Add(
new MyActionFilter()); IFilterProvider – возможность
переопределить механизм глобальных фильтров
![Page 9: ASP.NET MVC 3 Anton Vidishchev](https://reader036.vdocuments.site/reader036/viewer/2022062316/588243221a28ab31228b751b/html5/thumbnails/9.jpg)
JsonValueProviderFactory
Поддержка привязки Json-данных при запросах на параметры действия
Ранее было в MVC Futures
![Page 10: ASP.NET MVC 3 Anton Vidishchev](https://reader036.vdocuments.site/reader036/viewer/2022062316/588243221a28ab31228b751b/html5/thumbnails/10.jpg)
Новые типы результатов действий HttpNotFoundResult – возвращает
код HTTP 404;
HttpStatusCodeResult – возвращает пользовательский код HTTP-ответа;
RedirectPermanent, RedirectToRoutePermanent, RedirectToActionPermanent – осуществляют переход с кодом HTTP 301 (постоянный редирект)
![Page 11: ASP.NET MVC 3 Anton Vidishchev](https://reader036.vdocuments.site/reader036/viewer/2022062316/588243221a28ab31228b751b/html5/thumbnails/11.jpg)
Ненавязчивый JavaScript
Чистая HTML-разметка без внедренного JavaScript при работе с Ajax
Работа на базе jQuery Требуется включение
jquery.unobtrusive-ajax.js Поддержка клиентской валидации Управление через web.config
(включено по умолчанию)
![Page 12: ASP.NET MVC 3 Anton Vidishchev](https://reader036.vdocuments.site/reader036/viewer/2022062316/588243221a28ab31228b751b/html5/thumbnails/12.jpg)
Безсессионные контроллеры
Возможность работы без сессии Read-only session
![Page 13: ASP.NET MVC 3 Anton Vidishchev](https://reader036.vdocuments.site/reader036/viewer/2022062316/588243221a28ab31228b751b/html5/thumbnails/13.jpg)
Кэширование вложенных действий Атрибут OutputCache можно
применять к любым методам Результат будет кэшироваться и
для методов Html.RenderAction и Html.Action
![Page 14: ASP.NET MVC 3 Anton Vidishchev](https://reader036.vdocuments.site/reader036/viewer/2022062316/588243221a28ab31228b751b/html5/thumbnails/14.jpg)
Валидация: новые атрибуты
CompareAttribute – позволяет проверить на идентичность два свойства в модели
RemoteAttribute – позволяет указать метод для запроса валидации к серверу со стороны клиента (поддерживается jQuery Validation)
![Page 15: ASP.NET MVC 3 Anton Vidishchev](https://reader036.vdocuments.site/reader036/viewer/2022062316/588243221a28ab31228b751b/html5/thumbnails/15.jpg)
Валидация: IsValid
![Page 16: ASP.NET MVC 3 Anton Vidishchev](https://reader036.vdocuments.site/reader036/viewer/2022062316/588243221a28ab31228b751b/html5/thumbnails/16.jpg)
IValidatableObject
Интерфейс представлен в .NET4 Позволяет реализовать логику
валидации в модели
![Page 17: ASP.NET MVC 3 Anton Vidishchev](https://reader036.vdocuments.site/reader036/viewer/2022062316/588243221a28ab31228b751b/html5/thumbnails/17.jpg)
Валидация: запросы
Атрибут SkipRequestValidation – позволяет указать свойства, которые не нужно проверять при валидации запроса
![Page 18: ASP.NET MVC 3 Anton Vidishchev](https://reader036.vdocuments.site/reader036/viewer/2022062316/588243221a28ab31228b751b/html5/thumbnails/18.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062316/588243221a28ab31228b751b/html5/thumbnails/19.jpg)
Razor: встроенное выражение ASPX
Razor
![Page 20: ASP.NET MVC 3 Anton Vidishchev](https://reader036.vdocuments.site/reader036/viewer/2022062316/588243221a28ab31228b751b/html5/thumbnails/20.jpg)
Razor: блоки кода
ASPX
Razor
![Page 21: ASP.NET MVC 3 Anton Vidishchev](https://reader036.vdocuments.site/reader036/viewer/2022062316/588243221a28ab31228b751b/html5/thumbnails/21.jpg)
Razor: Условия, циклы
![Page 22: ASP.NET MVC 3 Anton Vidishchev](https://reader036.vdocuments.site/reader036/viewer/2022062316/588243221a28ab31228b751b/html5/thumbnails/22.jpg)
Razor: типизация представления ASPX
Razor
![Page 23: ASP.NET MVC 3 Anton Vidishchev](https://reader036.vdocuments.site/reader036/viewer/2022062316/588243221a28ab31228b751b/html5/thumbnails/23.jpg)
Razor: компонентная модель _ViewStart.cshtml – включение
параметров для всех представлений
Параметр Layout – аналог MasterPage (_Layout.cshtml – аналог Site.Master)
![Page 24: ASP.NET MVC 3 Anton Vidishchev](https://reader036.vdocuments.site/reader036/viewer/2022062316/588243221a28ab31228b751b/html5/thumbnails/24.jpg)
Razor: master page
ASPX
Razor
![Page 25: ASP.NET MVC 3 Anton Vidishchev](https://reader036.vdocuments.site/reader036/viewer/2022062316/588243221a28ab31228b751b/html5/thumbnails/25.jpg)
Dependency Injection, Service Locator
![Page 26: ASP.NET MVC 3 Anton Vidishchev](https://reader036.vdocuments.site/reader036/viewer/2022062316/588243221a28ab31228b751b/html5/thumbnails/26.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062316/588243221a28ab31228b751b/html5/thumbnails/27.jpg)
Спасибо за внимание!
Антон ВидищевMCPDProgramming Team LeaderКомпания Eclipse SP (Member of Sigma Group)