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