ASP.NET 4Сергей Байдачныйспециалист по разработке ПОМайкрософт УкраинаSergiy.Baydachnyy@microsoft.com
СодержаниеУлучшения в VSTS 2010Развертывание в VSTS 2010Расширение возможностей кешированияСжатие данных в сессииПоддержка meta тэговУлучшенная работа с ViewStateУлучшения в ListViewУлучшения в FormViewРабота с ClientIDRouting в ASP.NET 4Элемент управления QueryExtender
ASP.NET 4ASP.NETWeb FormsASP.NET MVCASP.NET AJAXASP.NETDynamic DataASP.NET Framework.NET Framework
Улучшения в VSTS 2010Поддержка CSS 2.1Более 200 сниппетов для ASP.NET,HTML и JavaScriptУлучшения в JavaScript IntelliSense системе: распознавание даже динамически создаваемых объектов
Демонстрация
Развертывание в VSTS 2010Упаковка (Web Packaging) – создание .zip файлас метаданными, информацией о всех настройках IIS (пулы, error pages), контентомвашего web-приложения (.aspx, .ascx, .js), другими данные (файлы) - Security Certs, GAC Components, Registry и т.д.Изменения в web.config файле (web.config transformations) с помощью XDT (web.release.config, web.debug.config)Развертывание базы данных1-Click Publish (IIS remote management service)
Расширение возможностей кешированияВозможность создания собственного хранилища:память локальные или удаленные диски"облачные" хранилища распределенные движки для кэширования (distributedcacheengines)Наследник от класса System.Web.Caching.OutputCacheProvider
New 4.0 Cache FunctionalityNamespace System.Caching{In-memoryDisk basedCacheWindows AzureCacheProviderDistributed}
Расширение возможностей кешированияРасширение web.configэлементом caching:<caching><outputCachedefaultProvider="AspNetInternalProvider">   <providers>     <add name="DiskCache"       type="Test.OutputCacheEx.DiskOutputCacheProvider,  DiskCacheProvider"/>   </providers></outputCache></caching>
Расширение возможностей кешированияВозможность определения провайдера на странице (providerName):<%@ OutputCacheDuration="60" VaryByParam="None"  providerName="DiskCache" %>
Расширение возможностей кешированияВозможность определения провайдерадля запроса (Global.asax):public override string GetOutputCacheProviderName(HttpContext context){    if  (context.Request.Path.EndsWith("Advanced.aspx"))       return "DiskCache";    else    return base.GetOutputCacheProviderName(context);}
Сжатие данных в сессии<sessionState mode=“SqlServer”sqlConnectionString=“. . .”allowCustomSqlDatabase=“true”compressionEnabled=“true”/>Используется System.IO.Compression.GZipStream
Поддержка мета-тэговPage.MetaKeywordsPage.MetaDescriptionУстановка как в заголовке страницы, так и в кодеif (!IsPostBack) {    Page.MetaDescription = "Meta Description";       Page.MetaKeywords = "Meta Keywords";   }
Демонстрация
Улучшенная работа с ViewStateПоддержка трех свойств(ViewStateMode):EnabledDisabledInherit
Улучшения в ListViewВозможность использования без LayoutTemplate<asp:ListView ID=“list1” runat=“server”>	<ItemTemplate>		<% Eval(“LastName”)%>	</ItemTemplate></asp:ListView>
Демонстрация
Улучшения в FormViewДобавлено свойство RenderTableзапись в виде таблицызапись через <div> элемент<asp:FormViewrunat="server" ID="formView1" RenderTable ="false" >    <ItemTemplate>        <h1><%# Eval("LastName")%></h1>    </ItemTemplate></asp:FormView>
Демонстрация
Работа с ClientIDClientIDModeLegacy – по умолчанию, соответствует старой логикеStatic – использовать ID вне зависимости от контейнераPredictable – добавляет к ID только RowClientIdSuffixInherit – выбирает установки родительского элемента управления
Демонстрация
Routing в ASP.NET 4RouteTable.Routes.Add(“SearchRoute”,	new Route(“search/{searchterms}”,	new WebFormRouteHandler(“~/search.aspx”)));
Элемент управления QueryExtenderПрименим для EntityDataSourceи LinqDataSourceПозволяет делать поиск, выбирать из диапазона, фильтровать данные
Демонстрация

Что нового в ASP.NET 4