摘 要:ASP.NET是用于形成Web的應(yīng)用程序的內(nèi)容豐富的編程框架。它是一種創(chuàng)建動態(tài)Web應(yīng)用程序的全新編程方法,本文主要闡述ASP.NET技術(shù)概述,優(yōu)點,ASP.NET的模型。
關(guān)鍵詞:ASP.NET 概述 優(yōu)點 模型
中圖分類號:TP2文獻標(biāo)識碼:A文章編號:1674-098X(2011)04(c)-0017-01
ASP.NET是用于形成Web的應(yīng)用程序的內(nèi)容豐富的編程框架。它是一種創(chuàng)建動態(tài)Web應(yīng)用程序的全新編程方法,它給開發(fā)人員提供了比以往更大的靈活性和更多的功能。通過把通用代碼置于控件中,并將表示邏輯和商務(wù)邏輯分離開來的嶄新方法,ASP.NET使應(yīng)用程序的開發(fā)和維護更加容易。
1 概述
ASP.NET是用于形成于Web的應(yīng)用程序的內(nèi)容豐富的編程框架。它是一種創(chuàng)建動態(tài)Web應(yīng)用程序的全新手段,它給開發(fā)人員提供了比以往更大的靈活性和更多的功能。通過把通用代碼置于控件中,并將表示邏輯和商務(wù)邏輯分離開來的嶄新方法,ASP.NET使應(yīng)用程序的開發(fā)和維護更加容易。它是Microsoft.NET Framework的組成部分,允許使用Framework支持的任何語言創(chuàng)建代碼。像JSP、PHP和ASP一樣,ASP.NET也是一種服務(wù)器端技術(shù),它可以制作動態(tài)WEB頁的內(nèi)容。Visual Studio.NET不是ASP.NET必要的組成部分,許多開發(fā)人員沒有它照樣可以開發(fā)網(wǎng)站。不過,一旦安裝了.NET Framework SDK,用戶就可以在任何環(huán)境下開發(fā)ASP.NET應(yīng)用程序。
2 ASP.NET 的優(yōu)點
ASP.NET是一種用于創(chuàng)建內(nèi)容豐富的動態(tài)網(wǎng)站、WEB應(yīng)用程序和XML WEB服務(wù)的新編程模型。ASP.NET使用編譯的、事件驅(qū)動編程模型從而提高運行速度和分離應(yīng)用程序邏輯和用戶界面。用ASP.NET可以很容易的開發(fā)基于三層架構(gòu)的B/S應(yīng)用程序。與以往的編程模型相比,這種新編程模型提供了基于組件的架構(gòu)和開發(fā)范例。ASP.NET提供了下面一些超越以前WEB 技術(shù)的重要特性。
2.1 優(yōu)良的性能
ASP.NET在服務(wù)器上運行的是經(jīng)過編譯的CLR代碼。與以前的技術(shù)相比,ASP.NET能夠充分利用Binding(綁定),及時編譯,本地優(yōu)化,緩沖服務(wù)來提高程序的性能。
2.2 大量工具箱的支持
在Visual Studio 的開發(fā)環(huán)境中,ASP.NET具有豐富的工具箱和設(shè)計器。如所見即所得的編輯方式,支持拖放的服務(wù)器控件,以及動態(tài)的配置管理。此外還有許多第三方控件。
2.3 強大的功能以及良好的機動性
因為ASP.NET是建立在CLR基礎(chǔ)上的,所以整個平臺的功能和適用性更加適合網(wǎng)絡(luò)應(yīng)用程序的開發(fā)。ASP.NET可以使用很多種語言來編寫。此外,CLR的協(xié)同工作能力保證以前開發(fā)的基于COM 的程序,在移植到ASP.NET后,依然可以正常使用。
2.4 新的配置管理方式
ASP.NET使用的是一種基于文本格式,等級式的配置系統(tǒng)。一個ASP.NET應(yīng)用程序只需將必要的程序拷貝到服務(wù)器上就可以使用了。對于正在運行中的己編譯的代碼,也同樣可以對配置進行更改,而不需要重啟服務(wù)器。
2.5 可移植和良好的適用能力
當(dāng)ASP.NET的一條線程出現(xiàn)異常情況后,一個新的進程會在它的地方重新建立,繼續(xù)擔(dān)負原進程所處理的任務(wù),這就使應(yīng)用程序能不中斷地處理客戶的請求。
2.6 超強的擴展度
ASP.NET嶄新的結(jié)構(gòu)體系允許開發(fā)者開發(fā)自己的程序,且ASP.NET下任何一個組件都能夠被用戶自己開發(fā)的組件擴展或替換。
3 ASP.NET的模型
3.1 ASP.NET的頁面模型
ASP.NET是一個完整的WEB應(yīng)用程序開發(fā)平臺。它完整地包含了在WEB應(yīng)用程序或是XML WEB服務(wù)中處理進入的請求并創(chuàng)建輸出響應(yīng)所需的東西。通常ASP.NET運行駐留在 Internet 信息服務(wù)(Internet Information Service, IIS)中,IIS是在 WINDOWS NT/2000/2003 平臺下專用的服務(wù)器軟件,提供常用的服務(wù)器功能,如FTP, SMTP,HTTP等。
ASP.NET的Web頁面是以請求→接收請求→處理請求→發(fā)送響應(yīng)這樣的模式在工作,每一次與客戶端的連接都會引發(fā)一次新的請求,所以一個Web Page的生命周期是以一次請求為基礎(chǔ)的。當(dāng)IIS收到客戶端的請求的時候,會將請求給aspnet_wp這個進程來處理,這個進程會查看請求的應(yīng)用程序域是否存在,如果不存在則會創(chuàng)建一個,然后會創(chuàng)建一個HTTP運行時(HTTP Runtime)來處理請求,這個運行時“為當(dāng)前應(yīng)用程序提供一組ASP.NET運行時服務(wù)”。當(dāng)應(yīng)用程序?qū)嵗幚碚埱蟮臅r候,它會創(chuàng)建請求頁面類的實例,執(zhí)行它的Process Request方法來處理請求,這個方法也就是Web Page生命周期的開始。
3.2 ASP.NET的代碼模型
ASP.NET頁面由兩部分組成:一是使用文本和服務(wù)器控件的用戶界面定義,二是用戶界面行為和服務(wù)器端代碼形式的 WEB應(yīng)用程序邏輯的實現(xiàn)。ASP.NET提供了全新的代碼模型,使網(wǎng)頁開發(fā)者和開發(fā)工具能夠更清晰、更容易地把代碼和表示分開。代碼模型使得開發(fā)和設(shè)計在團隊中的分工更加容易,并增加了代碼的可讀性和可維護性。
3.3 ASP.NET 的頁面執(zhí)行模型
在ASP.NET中,首先由IIS處理進入的請求,把請求傳給ASP.NET中的HTTP運行進行處理。在頁面處理程序工廠嘗試在請求的.aspx文件相關(guān)的ASP.NET高速緩存內(nèi)查找以前編譯過的頁面類。當(dāng)查找失敗時,處理程序工廠將讀取和解析文件,并創(chuàng)建一棵解析樹(parse tree)。然后通過 Page指令中的 Language attribute,用與頁面相關(guān)的語言把解析樹轉(zhuǎn)變?yōu)榇a。然后,頁面處理程序工廠調(diào)用適當(dāng)?shù)木幾g程序,動態(tài)的編譯從Page中得到的類。頁面處理程序工廠還將新建的類放置到ASP.NET 速緩存中,并把高速緩存記錄和文件相關(guān)聯(lián)起來。文件相關(guān)監(jiān)視.aspx 文件做出的變化,并保證任何變化都自動地使高速緩存記錄無效,在下次請求時將再次解析修改過的文件。
3.4 ASP.NET Page Cache(頁面緩存)
形成動態(tài)Web頁會耗用各種各樣的系統(tǒng)資源。當(dāng)Web服務(wù)器收到頁面請求時,它通常必須從外部數(shù)據(jù)源(如數(shù)據(jù)庫或Web Service)檢索所請求的信息。對這些資源的訪問通常需要通過有限的資源池(如數(shù)據(jù)庫連接、套接字或文件描述符)進行。因為Web服務(wù)器通常需要處理很多并發(fā)請求,所以對這些共享資源的爭奪可能會延遲頁面請求,直到資源變?yōu)榭捎谩?/p>
參考文獻
[1]邵麗萍,肖世德.新一代Web開發(fā)技術(shù)ASP.NET的發(fā)展與探析[J].微計算機信息,2005.
[2]ASP動態(tài)網(wǎng)站編程.清華大學(xué)出版社,2008.