.Net 4.0改進的介紹
核心服務
大部分的新特性都是圍繞自定義和擴展來的,原先不能自定義的東西現在可以自定義了,可以自己擴展了,然後把自己的組件在web.config中配置即可應用我們自己的組件。
Web.Config精簡
.Net框架4.0中會把大部分配置放到Machine.config中,這樣在web.config中甚至可以一行代碼都不寫。
自定義輸出緩存策略
輸出緩存對於改善性能有很大好處,在ASP.Net 4.0中可以自定義輸出緩存的策略,比如把輸出保存在磁盤中,外部的memcached服務中等等。甚至還可以定義一些高級規則,比如為A頁面使用A輸出緩存策略來把數據保存於內存中,為B頁面使用B輸出緩存策略來把數據保存於磁盤中。
<caching>
<outputCachedefaultProvider="ASPNetInternalProvider">
<providers>
<addname="DiskCache"
type="Test.OutputCacheEx.DiskOutputCacheProvider, DiskCacheProvider"/>
</providers>
</outputCache>
</caching>
自啟動的應用程序
ASP.Net 4.0和IIS 7.5配合可以設定一個預處理的Provider,這樣在應用程序池啟動或回收後IIS會自動調用這個Provider中的代碼來處理,處理完畢之後才接受請求。
<preloadProviders>
<addname="PrewarmMyCache"
type="MyNamespace.CustomInitialization, MyLibrary" />
</preloadProviders>
永久重定向
如果使用Response.Redirect的話,返回302狀態,客戶端再發送一次請求到新的地址,在ASP.Net 4.0中提供了RedirectPermanent方法來永久重定向到某個地址。客戶端或搜索引擎遇到301狀態碼會保存這個永久重定向地址,以後會直接訪問定向後的地址,節省了一次往返。
壓縮會話數據
如果使用進程外Session或SQL Server保存Session的話,會話數據需要進行序列化和反序列化,ASP.Net 4.0提供了使用GZIP壓縮會話數據的特性來縮小會話數據流的大小。
<sessionState
mode="SqlServer"
sqlConnectionString="data source=dbserver;Initial Catalog=ASPnetstate"
allowCustomSqlDatabase="true"
compressionEnabled="true"
/>
URL規則
在ASP.Net 4.0中可以自定義訪問路徑以及QueryString的長度,並且還可以設定路徑中無效的字符,而在以前這些都不是可以定制的。
<httpRuntime requestPathInvalidChars="<,>,*,%,&,:,\" maxRequestPathLength="260" maxQueryStringLength="2048"/>
自定義RequestVaidation
RequestValidateion雖然可以有效防止XSS注入等,但在以前驗證規則是不可以自定義的,很多時候我們覺得這個規則太嚴格了只能關閉這個功能。在ASP.Net 4.0中可以自定義類來實現自己的驗證規則。
<httpRuntime requestValidationType="Samples.MyValidator, Samples" />
對象緩存
System.Web.Caching.Cache大家很熟悉,甚至有的時候編寫Windows和Windows服務程序的時候也會引用System.Web.dll來使用這個Cache功能。在4.0中這個功能在System.Runtime.Caching.dll中會有新的實現,並且也會更強大。
自定義Encoding
URL Encoding/Html Encoding都是很常用的功能,在ASP.Net 4.0中我們可以繼承System.Web.Util.HttpEncoder來自定義編碼規則。
<httpRuntime encoderType="Samples.MyCustomEncoder, Samples"/>
AppDomain級別的性能檢測
如果在一個進程中運行多個網站的話我們可能希望能監視到每一個網站的性能,在ASP.Net 4.0中我們可以開啟AppDomain級別的性能檢測。
<?XML version="1.0" encoding="UTF-8" ?>
<configuration>
<runtime>
<appDomainResourceMonitoring enabled="true"/>
</runtime>
</configuration>
文章來源:學網
原文地址:http://bbs.xue5.com/18/20090820/5062.Html