Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 11 лет назад пользователемДарья Шуякова
1 Развитие веб-платформы для разработчика: ASP.NET MVC 2.0 и ASP.NET Web Forms 4.0 Гайдар Магдануров t: e: m: +7 (905)
2 Платформа ASP.NET Ядро ASP.NET Процесс обработки Http запросов, инфраструктура HttpModule и HttpHandler, интеграция с веб-сервером IIS, модель расширения Службы ASP.NET Кеширование, хранение состояния, маршрутизация, хранение данных пользователей, поддержка локализация WebForms Элементы управления, модель событий, источники данных MVC Framework Инфраструктура представлений и контроллеров, поддержка модели Microsoft Ajax Набор клиентского JavaScript кода и серверных компонентов Dynamic Data Библиотека для автоматического создания приложений работающих с данными
3 Ядро и службы ASP.NET 4.0
4 Автоматический запуск приложений Для приложений, требующих длительной инициализации Работает на IIS 7.5 Конфигурация в applicationHost.config
5 Автоматический запуск приложений
6 Автоматический запуск приложений Управление инициализацией приложения До отработки метода Preload приложение не принимает запросы public class CustomInitialization : System.Web.Hosting.IProcessHostPreloadClient { public void Preload(string[] parameters) { } }
7 Расширенный механизм кеширования Возможность добавления собственных провайдеров кеширования – Наследование System.Web.Caching.OutputCacheProvider Конфигурирование в web.config Возможность выбора системы хранения – Локальные или сетевые диски, база данных «в облаке», системы распределенного кеша
8 Кеширование: настройка Конфигурирование в web.config
9 Кеширование: настройка По умолчанию AspNetInternalProvider – Хранение данных в памяти Возможность назначать провайдеры на уровне страницы и на уровне запроса
10 Кеширование: уровень страницы
11 Кеширование: уровень запроса В Global.asax public override string GetOutputCacheProviderName(HttpContext context) { if (context.Request.Path.EndsWith("Advanced.aspx")) return "DiskCache"; else return base.GetOutputCacheProviderName(context); }
12 Уменьшение размера состояния сеанса Использование System.IO.Compression.GZipStream для сжатия состояния Особенно актуально для веб-ферм, при хранении состояния в SQL Server или out-of-proc сервере состояния
13 Постоянные редиректы Метод Response.Redirect выдает 302 Moved Temporary – соответственно лишний обмен по HTTP сообщениями PermanentRedirect выдает 301 – Moved Permanently RedirectPermanent("/new/content.aspx"); – Поисковые системы кешируют страницы с кодом 301 и не запрашивают повторно
14 Настройки разрешенных URL Возможность увеличения длины путей более 260 символов: Контроль допустимых символов в URL,*,%,&,:,\" /> ">
15 Валидация запросов Создание собственного валидатора запросов регистрация в 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) {...} }
16 Кодирование URL и HTML Создание собственных классов для обработки вызовов при сохранении API – Наследование System.Web.Util.HttpEncoder Автоматическая подмена вызовов методов кодирования классов System.Web.HttpUtility и System.Web.HttpServerUtility Настойка в web.config
17 Настройка в файле aspnet.config в директории, куда установлен.NET FW Новые счетчики в категории ASP.NET Applications - % Managed Processor Time и Managed Memory Used Мониторинг производительности
18 Меньше настроек в web.config Основные параметры конфигурации перенесены в machine.config Минимальный достаточный web.config
19 Web Forms 4.0
20 Маршрутизация 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"); } }
21 Маршрутизация Параметр checkPhysicalUrlAccess метода MapPageRoute позволяет применить правила доступа, которые определены для физической страницы в web.config Коллекция параметров маршрута Page.RouteData.Values["username"]
22 Маршрутизация Декларативное связывание Чтение значений параметров " /> Определение параметров "> Search Определение параметров "> Search">
23 Маршрутизация Связь с DataSource
24 Настройки ViewState Наследование ViewState с возможностью наследования Атрибут ViewStateMode – Enabled (по умолчанию) – Disabled – Inherit
25 Поддержка браузеров Класс HttpBrowserCapabilities для получения информации о текущем браузере blackberry.browser chrome.browser Default.browser firefox.browser gateway.browser generic.browser ie.browser iemobile.browser iphone.browser opera.browser safari.browser
26 Мета-теги страницы Свойства Keywords и Descriptions Свойства Page.MetaKeywords и Page.MetaDescription
27 Управление атрибутом id ClientIDMode – AutoID – автоматическая генерация – Static – статические ID – Predictable – Предсказуемые (например, для Repeater, ClientIDRowSuffix будет PrimaryKey или Object ID) – Inherit – наследовать от родителя
28 Управление атрибутом id Страница Web.config
29 Управление атрибутом id
30 Атрибуты id коллекций rootPanel_ListView1_ProductNameLabel_1 В Repeater нет RowClientIDRowSuffix, поэтому используется индекс строки
31 Новое выражение Автоматическое кодирование вывода на страницу Равно Если не нужно кодировать, то не энкодить меня! ") %> ">
32 Рендеринг Выбор уровня совместимости HTML Для «скрытых» div генерируется css class aspNetHidden Возможность отключить внешнюю таблицу для контролов FormView, Login, PasswordRecovery, ChangePassword, Wizard, CreateUserWizard
33 Выделение строки в ListView/GridView Раньше выделение было по индексу строки Теперь – по ключу данных
34 Улучшения контролов ListView – Не нужен LayoutTemplate CheckBoxList – Новые типы Layout = UnorderedList, OrderedList Menu – Рендеринг в виде несортированного списка – Скрипты на стороне клиента
35 MVC Framework 2.0
36 Регионы / Area Вложенные проекты – Site Blog Forum Shop
37 Асинхронные контроллеры Возможность избежать блокировок тредов из пула тредов 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 }); } }
38 Валидация и аннотации данных 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; } }
39 Строгая типизация UI хэлперов Html.LabelFor (c => c.Name) Html.EditorFor (c => c.Name) Html.EditorFor (c => c)
40 Поддержка шаблонов UI EditorTemplates Display Templates.ascx файлы Html.EditorFor(c => c.Name, NameEditor) public class Person{ [UIHint(NameEditor)] public string Name {get; set;} }
41 Параметры по умолчанию public ActionResult ([DefaultValue(10)] int count) {} public ActionResult (int count = 10) {} // C# 4.0
42 Основные ресурсы Библиотека MSDN – Cайт ASP.NET – Технические видео по теме –
43 СПАСИБО ЗА ВНИМАНИЕ! Гайдар Магдануров t: e: m:
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.