Новые возможности технологий Microsoft для разработки веб-решений Гайдар Магдануров t: e: m: +7 (905)
Серверная платформа Веб-платформа Microsoft Серверная платформа разработки Клиентская платформа разработки Портальные решения Инструменты разработки
WebForms MVC Framework WebMatrix Razor View Engine
ASP.NET MVC 3 Preview 1 выпущен 27 июля 2010 года Работает c.NET FW 4 / Visual Studio 2010 Доступен с исходным кодом на сайте CodePlex Содержит порядка 50% функционала запланированного для релиза MVC 3
Новые возможности / Preview 1 Новый движок представления - Razor View Engine Поддержка нескольких движков представления в Visual Studio Улучшенная валидация (поддержка ASP.NET 4) Инъекция зависимостей на всех уровнях Динамические свойства ViewModel Глобальные фильтры (Action Filters) – фильтры для всех запросов к приложению Новые типы ActionResult Связывание JSON объектов
Движок представления Razor
Выбор движка представления В Preview 1 только ASPX и Razor. В RTW ожидается еще несколько.
Улучшения валидации Поддержка новшеств.NET 4.0 – Поддержка новых атрибутов, вроде DisplayAttribute – ValidationAttribute поддерживает перегруженный IsValid метод, принимающий ссылку на валидируемый объект – Поддержка IValidatableObject, позволяющего осуществлять валидацию на уровне модели Поддержка клиентской валидации – IClientValidatable, IMetadataAware
Улучшения валидации IValidatableObject public class ObjectData : IValidatableObject { … public IEnumerable Validate(ValidationContext context){ … yield return new ValidationResult(…); } … }
Улучшения валидации IMetadataAware public class MyAttribute : Attribute, IMetadataAware { … public void OnMetadataCreated(ModelMetadata metadata){ metadata.AdditionalValues["MyString"] = myStr; } … }
Инъекция зависимостей Preview 1 – Контроллеры (регистрация, инъекция фабрик, инъекция контроллеров) – Представления (регистрация, инъекция движкой представлений, инъекция зависимостей) – Фильтры (поиск и инъекция фильтров)
Инъекция зависимостей RTW – Механизмы связывания (Model Binder) – Провайдеры значений (FormValueProvider, QueryStringValueProvider и т.п.) – Провайдеры валидации – Провайдеры метаданных
Интъекция зависимостей Библиотека Common Service Locator и фреймворки, поддерживающие IServiceLocator, например Unity public interface IMyService {... } public class MyService : IMyService {... } public class MyController : Controller { IMyService _myService; public MyController(IMyService myService) {...} } // регистрация в Application_Start var cont = new UnityContainer(); co cont.RegisterType (); MvcServiceLocator.SetCurrent(new UnityMvcServiceLocator(cont));
Глобальные фильтры Регистрация фильтров на уровне всего приложения void Application_Start() { RegisterGlobalFilters(GlobalFilters.Filters); } void RegisterGlobalFilters(GlobalFilterCollection filters){ filters.Add(new GlobalErrorHandler()); }
Динамические свойства ViewModel Немного синтаксической приправы ViewModel["UserData"] = new UserData { … }; // равнозначно ViewModel.UserData = new UserData { … };
Новые типы ActionResult HttpNotFoundResult HttpRedirectResult (Новое свойство Permanent) HttpStatusCodeResult
Связывание JSON-объектов Действия контроллеров могут связывать с моделью данные JSON-объектов $('button').click(function(){ var objData = { … }; $.ajax({ url: '/Data/Update', type: "Post", data: JSON.stringify(objData), dataType: "json", … }); // сработает связывание с моделью void ActionResult Update(ObjectData objData){ … }
Планируемые возможности / RTW Улучшения Razor и интеграции инструментов с Visual Studio – UI для разных движков представлений Поддержка VBHTML Support в Razor и Visual Studio Дополнительные хелперы – такие как CAPTCHA или Grid Расширенная поддержка кэширования – кэширование вызовов RenderAction Расширенная поддержка состояния сеанса Улучшения движка инъекции зависимостей – На основании обратной связи от разработчиков Встроенные библиотеки JavaScript MVC будут переписаны на jQuery
HTML 5 Часто называют так набор HTML 5 и CSS3 Новые медиа-возможности (canvas, видео, аудио, встроенный SVG…) Поведение современных браузеров 1100 страниц черновика HTML 5
Поддержка стандартов Рабочая группа HTML Рабочая группа W3C Основная группа тестирования HTML 5
Сравнение разметки 23
Новый движок JavaScript Chakra Исходный код ПарсерAST Интерпре- татор Байт-код Интерактивный процесс Фоновый процесс Компилятор Нативный код КомпиляцияВ фоне Многопоточность
Основные ресурсы Сайт веб-платформы Microsoft – ASP.NET Framework – WebMatrix – Internet Explorer 9 –
СПАСИБО ЗА ВНИМАНИЕ! Гайдар Магдануров t: e: m: