Развитие веб-платформы для разработчика: ASP.NET MVC 2.0 и ASP.NET Web Forms 4.0 Гайдар Магдануров t:

Презентация:



Advertisements
Похожие презентации
Платформа 2010 ASP.NET 4.0, MVC Framework 2.0 и Visual Studio 2010 Microsoft Гайдар Магдануров.
Advertisements

Платформа разработки ASP.NET Гайдар Магдануров t: e: m: +7.
Генерация разметки в ASP.NET 4.0 Андрей Веселов. Мета-теги Demo page Новые свойства класса Page: MetaKeywords и MetaDescription. public partial class.
Новые возможности технологий Microsoft для разработки веб-решений Гайдар Магдануров t: e:
Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET приложения – Кэширование вывода страниц Из цикла лекций «Технологии.
Тренинг «Разработка веб-приложений на ASP.NET» Занятие 2 Страницы и элементы управления Гайдар Магдануров
Веб-платформа Microsoft Гайдар Магдануров t: e: m: +7 (905)
Платформа хостинга Windows Server 2008 R2 Internet Information Services 7.5 Гайдар Магдануров t: e:
Тренинг «Разработка веб-приложений с использованием ASP.NET MVC Framework» Занятие 6 Мобильное представление и локализация Гайдар Магдануров
Top 10 возможностей ASP.NET 2.0. Выбор сделан на основе опросов разработчиков Top 10 – горячая десятка возможностей.
Тренинг «Разработка веб-приложений с использованием ASP.NET MVC Framework» Занятие 3 Маршрутизация и контроллеры Гайдар Магдануров
Разработка web- приложений и ASP.NET. Web-приложения и web- серверы Web-приложение это набор взаимосвязанных файлов (*.htm, *.asp, *,aspx, файлов изображений.
Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET приложения – обработка ошибок страниц и приложения, Global.aspx.
Клиентские технологии Silverlight 3, Internet Explorer 8 Гайдар Магдануров t: e:
Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET приложения – введение Из цикла лекций «Технологии разработки Internet-приложений»
Использование Dynamic Data на практике Гайдар Магдануров t: twitter.com/gaidar p: +7 (905) e:
Тренинг «Разработка веб-приложений с использованием ASP.NET MVC Framework» Занятие 5 Погружение в MVC Framework Гайдар Магдануров
Тренинг «Разработка веб-приложений с использованием ASP.NET MVC Framework» Занятие 1 Знакомство с подходом MVC Гайдар Магдануров
Веб-технологии и современные средства разработки УЦ ВГТУ & SoftLine Academy.
Платформа J2EE Сервис: Java Naming Directory (JNDI) – универсальный сервис хранения объектов в иерархической структуре имен (аналогично файловой системе)
Транксрипт:

Развитие веб-платформы для разработчика: ASP.NET MVC 2.0 и ASP.NET Web Forms 4.0 Гайдар Магдануров t: e: m: +7 (905)

Платформа ASP.NET Ядро ASP.NET Процесс обработки Http запросов, инфраструктура HttpModule и HttpHandler, интеграция с веб-сервером IIS, модель расширения Службы ASP.NET Кеширование, хранение состояния, маршрутизация, хранение данных пользователей, поддержка локализация WebForms Элементы управления, модель событий, источники данных MVC Framework Инфраструктура представлений и контроллеров, поддержка модели Microsoft Ajax Набор клиентского JavaScript кода и серверных компонентов Dynamic Data Библиотека для автоматического создания приложений работающих с данными

Ядро и службы ASP.NET 4.0

Автоматический запуск приложений Для приложений, требующих длительной инициализации Работает на IIS 7.5 Конфигурация в applicationHost.config

Автоматический запуск приложений

Автоматический запуск приложений Управление инициализацией приложения До отработки метода Preload приложение не принимает запросы public class CustomInitialization : System.Web.Hosting.IProcessHostPreloadClient { public void Preload(string[] parameters) { } }

Расширенный механизм кеширования Возможность добавления собственных провайдеров кеширования – Наследование System.Web.Caching.OutputCacheProvider Конфигурирование в web.config Возможность выбора системы хранения – Локальные или сетевые диски, база данных «в облаке», системы распределенного кеша

Кеширование: настройка Конфигурирование в web.config

Кеширование: настройка По умолчанию AspNetInternalProvider – Хранение данных в памяти Возможность назначать провайдеры на уровне страницы и на уровне запроса

Кеширование: уровень страницы

Кеширование: уровень запроса В Global.asax public override string GetOutputCacheProviderName(HttpContext context) { if (context.Request.Path.EndsWith("Advanced.aspx")) return "DiskCache"; else return base.GetOutputCacheProviderName(context); }

Уменьшение размера состояния сеанса Использование System.IO.Compression.GZipStream для сжатия состояния Особенно актуально для веб-ферм, при хранении состояния в SQL Server или out-of-proc сервере состояния

Постоянные редиректы Метод Response.Redirect выдает 302 Moved Temporary – соответственно лишний обмен по HTTP сообщениями PermanentRedirect выдает 301 – Moved Permanently RedirectPermanent("/new/content.aspx"); – Поисковые системы кешируют страницы с кодом 301 и не запрашивают повторно

Настройки разрешенных URL Возможность увеличения длины путей более 260 символов: Контроль допустимых символов в URL,*,%,&,:,\" />

Валидация запросов Создание собственного валидатора запросов регистрация в web.config секции httpRuntime – Наследование System.Web.Util.RequestValidator – Метод IsValidRequestString public class CustomRequestValidation : RequestValidator { protected override bool IsValidRequestString( HttpContext context, string value, RequestValidationSource requestValidationSource, string collectionKey, out int validationFailureIndex) {...} }

Кодирование URL и HTML Создание собственных классов для обработки вызовов при сохранении API – Наследование System.Web.Util.HttpEncoder Автоматическая подмена вызовов методов кодирования классов System.Web.HttpUtility и System.Web.HttpServerUtility Настойка в web.config

Настройка в файле aspnet.config в директории, куда установлен.NET FW Новые счетчики в категории ASP.NET Applications - % Managed Processor Time и Managed Memory Used Мониторинг производительности

Меньше настроек в web.config Основные параметры конфигурации перенесены в machine.config Минимальный достаточный web.config

Web Forms 4.0

Маршрутизация Cвойства для работы с маршрутами HttpRequest.RequestContext и Page.RouteData Определение маршрута public class Global : System.Web.HttpApplication { void Application_Start(object sender, EventArgs e) { RouteTable.Routes.MapPageRoute("SearchRoute", "search/{searchterm}", "~/search.aspx"); RouteTable.Routes.MapPageRoute("UserRoute", "users/{username}", "~/users.aspx"); } }

Маршрутизация Параметр checkPhysicalUrlAccess метода MapPageRoute позволяет применить правила доступа, которые определены для физической страницы в web.config Коллекция параметров маршрута Page.RouteData.Values["username"]

Маршрутизация Декларативное связывание Чтение значений параметров " /> Определение параметров "> Search

Маршрутизация Связь с DataSource

Настройки ViewState Наследование ViewState с возможностью наследования Атрибут ViewStateMode – Enabled (по умолчанию) – Disabled – Inherit

Поддержка браузеров Класс HttpBrowserCapabilities для получения информации о текущем браузере blackberry.browser chrome.browser Default.browser firefox.browser gateway.browser generic.browser ie.browser iemobile.browser iphone.browser opera.browser safari.browser

Мета-теги страницы Свойства Keywords и Descriptions Свойства Page.MetaKeywords и Page.MetaDescription

Управление атрибутом id ClientIDMode – AutoID – автоматическая генерация – Static – статические ID – Predictable – Предсказуемые (например, для Repeater, ClientIDRowSuffix будет PrimaryKey или Object ID) – Inherit – наследовать от родителя

Управление атрибутом id Страница Web.config

Управление атрибутом id

Атрибуты id коллекций rootPanel_ListView1_ProductNameLabel_1 В Repeater нет RowClientIDRowSuffix, поэтому используется индекс строки

Новое выражение Автоматическое кодирование вывода на страницу Равно Если не нужно кодировать, то не энкодить меня! ") %>

Рендеринг Выбор уровня совместимости HTML Для «скрытых» div генерируется css class aspNetHidden Возможность отключить внешнюю таблицу для контролов FormView, Login, PasswordRecovery, ChangePassword, Wizard, CreateUserWizard

Выделение строки в ListView/GridView Раньше выделение было по индексу строки Теперь – по ключу данных

Улучшения контролов ListView – Не нужен LayoutTemplate CheckBoxList – Новые типы Layout = UnorderedList, OrderedList Menu – Рендеринг в виде несортированного списка – Скрипты на стороне клиента

MVC Framework 2.0

Регионы / Area Вложенные проекты – Site Blog Forum Shop

Асинхронные контроллеры Возможность избежать блокировок тредов из пула тредов ASP.NET public class MyController : AsyncController { public void MyActionAsync(string value) { AsyncManager.OutstandingOperations.Increment(); MyService myService = new MyService(); myService.GetDataCompleted += (sender, e) => { AsyncManager.Parameters[data"] = e.Value; AsyncManager.OutstandingOperations.Decrement(); }; myService.GetDataAsync(city); } public ActionResult MyActionCompletd(string[] data) { return View(MyData", new MyData { DataLines = date }); } }

Валидация и аннотации данных public class PersonController { [HttpPost] public ActionResult Update(Person p){ if(!ModelState.IsValid)... } public class Person { [Required(ErrorMessage = *)] [StringLength(32, ErrorMessage = Лимит – 32 символа)] public string LastName { get; set; } }

Строгая типизация UI хэлперов Html.LabelFor (c => c.Name) Html.EditorFor (c => c.Name) Html.EditorFor (c => c)

Поддержка шаблонов UI EditorTemplates Display Templates.ascx файлы Html.EditorFor(c => c.Name, NameEditor) public class Person{ [UIHint(NameEditor)] public string Name {get; set;} }

Параметры по умолчанию public ActionResult ([DefaultValue(10)] int count) {} public ActionResult (int count = 10) {} // C# 4.0

Основные ресурсы Библиотека MSDN – Cайт ASP.NET – Технические видео по теме –

СПАСИБО ЗА ВНИМАНИЕ! Гайдар Магдануров t: e: m: