詳解ASP和ASP.NET
一個(gè)程序,速度是一件非常令人渴望的東西。一旦代碼開(kāi)始工作,接下來(lái)你就得盡可能的讓它運(yùn)作的快些,再快些,
在ASP中你只有盡可能擰干你的代碼,以至于不得不將他們移植到一個(gè)僅有很少一點(diǎn)性能的部件中。但現(xiàn)在呢,微軟將推出
的ASP.NET會(huì)妥善的解決這一問(wèn)題.
兼容性
ASP和ASP.NET兼容,因此沒(méi)有必要擔(dān)心你現(xiàn)存的應(yīng)用程序會(huì)在IIS的下一版本中崩潰。ASP.NET文件以新的擴(kuò)展名出
現(xiàn),即.ASPX,因此,你能很容易分辨出新老文件。
在使用ASP.NET時(shí)有太多的 禁錮,如果你想從ASP.NET中獲取一些便利,你就得按它的規(guī)矩來(lái)做,這樣會(huì)對(duì)你的應(yīng)用成許
作出諸多限制。另一方面,微軟也力求使開(kāi)發(fā)人員寫(xiě)更少的代碼,所以以就只有在流暢性和連貫性方面做出犧牲。
ASP.NET在管理和書(shū)寫(xiě)方面的難度相對(duì)來(lái)說(shuō)是增加了。因?yàn)樵贏SP.NET里,有太多的“小事情”需要被考慮到,所以,
開(kāi)發(fā)者或者初用者不得不花費(fèi)不少的時(shí)間來(lái)想通一個(gè)問(wèn)題:為什么系統(tǒng)這么容易死掉。
很明顯的,ASP和ASP.NET會(huì)成為下一代網(wǎng)絡(luò)應(yīng)用軟件。雖然花費(fèi)不少,但ASP.NET確實(shí)提供了一些非常新的特性;ASP 會(huì)
力圖將費(fèi)用平衡下來(lái),并且提供一些ASP.NET所沒(méi)有的功能。
可編譯代碼
代碼已在要求下被編譯了,所以你可以在任何語(yǔ)言下編制ASP.NET?,F(xiàn)在甚至于VBSCRIPT 和JAVA SCRIPT都被編譯了。
COM 對(duì)象
我們?cè)谑褂玫湫偷腁SP時(shí),都意識(shí)到與COM 伴隨而來(lái)的問(wèn)題。注冊(cè)components,重新啟動(dòng)服務(wù)器…,都是些讓人很感麻
煩的事?,F(xiàn)在,因?yàn)橛辛诵?一代視窗服務(wù)系統(tǒng)(NGWS),你不再需要為這些問(wèn)題煩心了。你只需簡(jiǎn)單的復(fù)制源文件,在你需
要的地方粘貼,它就會(huì)正常運(yùn)作。不用再DLL注冊(cè)。
XML配置
通過(guò)NGWS 框架,所有的METABASE和配置信息都存儲(chǔ)在XML文件里。這意味著,你再也不需要被IIS糊弄得團(tuán)團(tuán)轉(zhuǎn),甚至
去改變?cè)O(shè)置。事實(shí)上,你只需改變從任何一處來(lái)的XML文件,并將改變 結(jié)果上傳到服務(wù)器。不需要任何類(lèi)型的遠(yuǎn)程PC 控
制。
Web forms和Web controls
ASP.NET 提供了forms 鏈結(jié)到服務(wù)器的功能,因此你能夠更簡(jiǎn)單地處理請(qǐng)求。Web controls也提供了相似的功能,并
向網(wǎng)頁(yè)開(kāi)發(fā)者提供了相對(duì)于HTML controls的更多的功能。
caching
當(dāng)用戶不再對(duì)服務(wù)器提出更多指令時(shí),ASP.NET允許對(duì)象和輸出數(shù)據(jù)被緩沖,這樣會(huì)大大提升速度。ASP.NET 緩沖系統(tǒng)
非常先進(jìn),它可以讓你分辨出哪些需要被緩沖,哪些不需要,并且在何時(shí)調(diào)出緩沖的信息
可升級(jí)性
在ASP.NET中植入了一些非常優(yōu)秀的可升級(jí)性特征,包括通過(guò)server維持會(huì)話狀態(tài),以及多處理器平衡。ASP.NET
runtime 同樣也監(jiān)控進(jìn)程,因此當(dāng)你把數(shù)據(jù)弄得一團(tuán)糟的時(shí)候,ASP.NET會(huì)自動(dòng)關(guān)閉,然后重新啟動(dòng),同時(shí)將舊指令輸入到
新的進(jìn)程中。
ASP.NET提供了一系列的全新的特征,并在現(xiàn)有的基礎(chǔ)上作了改進(jìn)。雖然聽(tīng)起來(lái)不錯(cuò),但也不是沒(méi)有問(wèn)題的。如果沒(méi)有更好
的ADO支持,一切都不會(huì)那么的盡善盡美。
文件管理
整個(gè).NET體系是構(gòu)建于NGWS RUNTIME基礎(chǔ)上,NGWS RUNTIME廢除了我們習(xí)慣使用的COM 體系,取而代之的是更為大眾
化的runtime,從根本上來(lái)講,runtime與Java虛擬機(jī)一樣。Runtime 的基本運(yùn)作方式是中途截取代碼,并將它轉(zhuǎn)譯為普通機(jī)
器語(yǔ)言,以便系統(tǒng)使用,同樣還負(fù)責(zé)ASP.NET的頁(yè)面編譯。
注:如果你對(duì)JAVA不太熟悉,從根本上來(lái)說(shuō),你電腦里的程序?qū)AVA代碼翻譯成了機(jī)器語(yǔ)言。這些代碼被送到不同的
平臺(tái),你僅僅需要重做一遍程序,而不是重做全部的程序設(shè)計(jì)語(yǔ)言。這就是JAVA 所保證的跨平臺(tái)兼容性。你可以發(fā)現(xiàn)這
與.NET 非常類(lèi)似,例外的是JAVA是跨平臺(tái),而。NET是多語(yǔ)言兼容性。
該系統(tǒng)也為你的應(yīng)用程序在源文件上保留了制表符。如果系統(tǒng)監(jiān)測(cè)到程序被改動(dòng)了,runtime 則會(huì)重新將它們編譯,并自
動(dòng)存儲(chǔ)最新編譯版本。
在此,我們可以明顯的感受到ASP.NET所帶來(lái)的便利??傊幾g語(yǔ)言,機(jī)器代碼以及強(qiáng)大的類(lèi)型變量,比起得到執(zhí)行
前進(jìn)行解釋的腳本語(yǔ)言要快得多。
我們禁不住會(huì)猜想,我們將為全新的runtime 花費(fèi)多少?微軟保證,從編譯 ASP pages上所得到的性能會(huì)遠(yuǎn)遠(yuǎn)超過(guò)在
runtime體系上的費(fèi)用,但這聽(tīng)起來(lái)不太象是個(gè)好的解決辦法。例如,Java 虛擬機(jī),將JAVA 程序 的運(yùn)作速度大幅度的降
了下來(lái)。我們只有祈求 在這個(gè) runtime里不會(huì)出現(xiàn)類(lèi)似的嚴(yán)重的錯(cuò)誤。
另外,需要提醒的是,編譯一個(gè)應(yīng)用程序也需要耗費(fèi)時(shí)間,因此,您系統(tǒng)的第一個(gè)用戶會(huì)發(fā)現(xiàn)明顯的遲延現(xiàn)象。如果
你經(jīng)常改變程序(許多ASP的程式員都會(huì)這樣做),你的用戶就會(huì)發(fā)現(xiàn)性能明顯降低。以上介紹ASP和ASP.NET。
【編輯推薦】