ASP.NET 4.0新特性預覽 數據處理增強
原創(chuàng)【51CTO獨家特稿】有人問“為什么微軟每18個月變動一次開發(fā)平臺”
其實不是改動,而是一些改進。 相比.NET 2.0有了很多額外的API,比如LINQ, Entity Framework等,這是進行數據處理的不同方式。核心ADO.NET仍然有效,這些ASP.NET 4.0新特性提供額外的增強可讓開發(fā)人員和架構師選擇面更廣。
有人問到URL Rewriting
URL Routing比URL Rewriting好用得多了。我們過去已經對此討論過很多。你可以在下面這個鏈接了解更多信息 http://www.mostlylucid.net/archive/2009/01/25/asp.net-4.0-webform-routing-quick-rsquon-dirty-version.aspx
Visual Studio 2010 Beta 1和.NET Framework Beta 1已經發(fā)布有一段時間了,我也早就該寫這篇文章了。ASP.NET 4.0改進了許多不同的場景集(set of scenarios),如Webforms ,Dynamic Data以及基于AJAX的Web開發(fā)。此外還有許多對支撐ASP.NET的核心運行時環(huán)境的改進,比如Caching, Session,還有Request/Response對象。
在這篇文章里,我們將一起檢驗一下對web form的一些改進。這樣的改進很多,我們還將在隨后的文章里體驗更多這種改進。
使用ViewStateMode屬性控制View State - 性能的增強
在ASP.NET Webform里最為人所詬病的毛病之一就是不斷增多的viewstate影響到性能。盡管之前就可以把EnableViewState屬性設為true或false ,之后,所以有的controls都默認繼承,并且即使你在control層把它設為啟用,也還是會產生不一致的行為。
在ASP.NET 4.0新特性中,ViewStateMode屬性有助于確定每個control的Viewstate是否應啟用,禁用或被繼承。例如:
- <asp:Panel ID="pnlViewState" runat="server" ViewStateMode="Disabled">
- Disabled: <asp:Label ID="label1" runat="server" Text="Value set in markup"ViewStateMode="Inherit" /><br />
- Enabled: <asp:Label ID="label2" runat="server" Text="Value set in markup"ViewStateMode="Enabled" />
- <hr />
- <asp:button ID="Button1" runat="server" Text="Postback" />
- asp:Panel>
后端代碼
- protected void Page_Load(object sender, EventArgs e)
- {
- if (!IsPostBack)
- {
- label1.Text = "Value set in code behind";
- label2.Text = "Value set in code behind";
- }
- }
運行這個頁面,你會發(fā)現兩個標簽的初值都被設為了"Value set in code behind",而點擊按鈕(postback)后,label1的值變成了“Value set in markup” ,label2的值則保持不變。正如你所看到的那樣,保存這兩個標簽的面板把ViewStateMode設置為禁用,label1繼承了這一設置(如果沒有指定的話這是默認值),label2則設為了啟用。這就是為什么label2保持了viewstate而label1丟失了。
雖然可以說之前就可以使用簡便的EnableViewState屬性,但一直就不穩(wěn)定。想想我們在大多數性能討論會(performance session)上,都會說如果viewstate不能正常運作就先禁用它然后再在control層設為啟動,這個ViewStateMode的引入可以說是有助提升性能的一個很好的結構性變動(architectural change)。
網頁的Meta Keyword和Description - 搜索引擎優(yōu)化功能
在Visual Studio 2008中,可以通過直接聲明或在程序中使用Page.Title設置網頁的標題。隨著越來越多的流量通過搜索引擎,網頁的標題,關鍵字和描述變得更為重要了。雖然由于關鍵字被人濫用導致許多搜索引擎已經對此忽略不計,但是,頁面的描述還是Google,Bing這些主流搜索引擎賴以鑒別和索引網頁內容的依據。
ASP.NET 4.0新特性允許用戶像下面這樣通過編程的方式設置頁面描述和關鍵詞: -
- protected void Page_Load(object sender, EventArgs e)
- {
- this.Page.Title = "My ASP.NET Blog";
- this.Page.MetaKeywords = "ASP.NET, Web Development, Blog, ASP.NET Blog";
- this.Page.MetaDescription = "This Blog contains posts related to ASP.NET and Web Development";
- }
以上代碼會產生如下標記:
- <meta name="keywords" content="ASP.NET, Web Development, Blog, ASP.NET Blog" />
- <meta name="description" content="This Blog contains posts related to ASP.NET and Web Development" />
它的運作機制是,如果meta標簽已經出現在HTML標簽里,那么只要name屬性相同,程序中設定的內容就都會被填寫到content里。
雖然這看起來很簡單,但是在要根據某些條件或標準來動態(tài)設置它們的情況下,這就很有用了。目前,這些內容都是在HTML代碼里靜態(tài)地設定的?,F在,有了Page類這一級的訪問,它們就可以動態(tài)地設置了。
對Webforms還有許多其它的改進,比如Routing的增強,ClientID的設置等。
讓我們歡呼吧!
【編輯推薦】