ASP+與JSP之間的抉擇
發(fā)表時間:2023-08-09 來源:明輝站整理相關軟件相關文章人氣:
[摘要]由于我同時是ASP和JSP的程序員,所以正開始寫一系列的文章來比較兩者的差別,當我寫到一半時,ASP+被宣布了,所以我不得不重新開始審視這個問題。我正在同時做一個JSP項目和一個ASP項目,后者十分...
由于我同時是ASP和JSP的程序員,所以正開始寫一系列的文章來比較兩者的差別,當我寫到一半時,ASP+被宣布了,所以我不得不重新開始審視這個問題。我正在同時做一個JSP項目和一個ASP項目,后者十分有趣,因為它開始是采用ASP3.0,但當項目結束后我將會轉(zhuǎn)換為ASP+。到那時我將可以對ASP+有更近的考察,并提供更好的ASP+和JSP的比較。本文是我目前對ASP+的一些認識和看法,并分析了它對于象我這樣的普通開發(fā)人員可能會產(chǎn)生的影響。
通過最初步的比較,我發(fā)現(xiàn):
1) 面向?qū)ο笮?
ASP+將C#作為一種面向?qū)ο笳Z言,在很多方面來看,C#將成為微軟的與Java相似的語言。
C#另一個有趣的地方是所有對象都自動變成為COM對象。如果C#能取得很大的市場份額,那么它將給ASP+帶來類似于Java的功能,并且具備更快的性能,因為它可以和Windows環(huán)境緊密集成。
C#是ASP+開發(fā)中一個最重要的功能,微軟會將C#發(fā)展成為Java的強勁對手。這也是微軟.Net框架的一個重要組成部分。我認為C#是微軟在編程市場上擊敗對手的主要工具。我期待著微軟能在這個產(chǎn)品后面傾注全力,這樣,C#可以成為許多程序員的又一種選擇。C#的誕生無疑將進一步加劇微軟和Sun產(chǎn)品的戰(zhàn)線,但這對用戶是有利的,他們可以選擇兩者之一來開發(fā)新的應用!
2) 數(shù)據(jù)庫連接:
ASP另一個亮點是它使用ADO對象、ODBC、OLE-DB和事務處理管理器。因此ASP Web數(shù)據(jù)庫應用開發(fā)特別簡單。ASP+發(fā)展了更多的功能,因為有了ADO+!ADO+帶來了更強大更快速的功能。JSP和JDBC目前在易用性和性能上同ASP/ADO相比已有些落后,當新版本ASP+/ADO+出現(xiàn)后這樣的差別會更明顯。所以我個人希望SUN應盡快能花大力氣來追趕ASP+/ADO+的組合。
3)大型站點應用:
ASP+將對大型站點(web farms)有更好的支持。事實上,微軟已經(jīng)在這方面付出了巨大的努力。 ASP+可以讓你考慮到多服務器(multiple servers)的場合,當你需要更強大的功能時,僅僅只需要增加一臺服務器。整個.Net框架已經(jīng)充分地提供了這個方法。ASP+提供了外部會話狀態(tài)(external session state)來提供內(nèi)置式web farm的支持。另外,由于請求的各組件相互間經(jīng)過了充分的優(yōu)化,所以速度很快。
于是ASP+現(xiàn)在可以在大型項目方面與JSP一樣具有等同的能力。而ASP+還有價格方面的優(yōu)勢,因為所有的組件將是服務器操作系統(tǒng)的一部分。對于JSP,你需要購買昂貴的應用服務器群來達到同樣的目的!
4) ASP+還提供更多的其它方面的新特性,例如:
*內(nèi)置的對象緩存和頁面結果緩存。
*內(nèi)置的XML支持,可用于XML數(shù)據(jù)集的簡單處理。
*服務器控制提供了更充分的交互式控制。
由此可見,ASP+確實對ASP進行了較大的發(fā)展!
在我審視完ASP+后,我的初步結論是:我未來項目主要還是要采用基于Java/JSP的技術。這有以下三個理由:
1) 要真正發(fā)揮ASP+潛力,你要使用C#或vb.net。這兩種語言將成為ASP+標準的核心的腳本語言。這對ASP的未來發(fā)展很有好處。而我向來不喜歡用當前的Visual Basic來制作com對象。新的ASP+核心腳本語言更能發(fā)揮ASP+的價值。
顯然,所有這些ASP+的新進展促使我對今后語言選擇做一個決定,它將占據(jù)我未來的無數(shù)時間和努力。
回想起來,當Java開始發(fā)展起來時我正好學習了Java,那時我預感到這將是圍繞我未來程序生涯的語言。于是,JSP理所當然地成為了我在web開發(fā)中的第一選擇。
現(xiàn)在我已經(jīng)是一個JSP fan,除非微軟能夠?qū)⑽艺麄扭轉(zhuǎn)過去,我感覺到自己正面臨ASP+的巨大挑戰(zhàn)!
2) ASP+依然完全鎖定在微軟的操作系統(tǒng)中。JSP比ASP+擁有更大的范圍,它在別的服務器配置中也有很好的伸縮性。雖然Windows 2000 的優(yōu)越性日益顯露,但這對開發(fā)人員不構成問題!
3) 我并不能確信是否我能認同ASP+結構的各種方面,這需要更深入的分析,所以,我很猶豫。也許直到我使用了1-2個月后才會改變看法。總的來說,這需要在一個很高的層次來看待這個beta產(chǎn)品。
而作為一個ASP開發(fā)人員,ASP+也讓我要停下來反思一下。未來8個月的ASP新項目將變得很困難。為什么?因為 ASP+和C# 帶來了一個難題,它們要到2001年才正式提供。而很多性能方面的要求現(xiàn)在就需要確定。由于ASP+只是一個beta軟件,所以現(xiàn)在我的第一個選擇反而很簡單了,F(xiàn)在的項目就采用ASP3.0。我認為各種beta版的語言都不太可信。
但我不能忽視ASP+,因為它很快就要推出,并代表了ASP的未來。ASP項目的管理者還需要考慮到未來的可平滑移植性及付出的時間代價等。另一個結果則是,這使得在近期使用PHP和JSP來代替ASP變得更可靠一些。
總的來說,
1) 如果使用ASP+,你將花費額外的時間學一些新的工具。
2) 新的工具有待于版本化,所以為什么不先關注于目前存在的東西?
3) ASP+將來會擁有的特性JSP已經(jīng)擁有。
4) ASP+將你鎖定到純Microsoft的體系中。
最后,我預測會有很多人加入到PHP和JSP的行列。可是,仍然會有一部分人會受到ASP+給業(yè)界帶來的激動所感染。我從沒看到一個beta編程產(chǎn)品會帶來如此的震撼!
同時,我還注意到一篇討論.net的文章中也提到了同樣的問題:
ASP+以自由軟件作為開始,現(xiàn)在已經(jīng)漸漸成為Microsoft的.Net框架的基石之一。Sun應該從中得到教訓。特別注意的是,你需要許可證才能升級到ASP+,因為它和太多的產(chǎn)品集成在一起了。.Net框架太大了。在假定某個產(chǎn)品可以成為真正的產(chǎn)品之前,我通常等待它的第一個service pack。所以,即使ASP+已經(jīng)在2001第一季度被版本化,我仍然要等到2001第二季度。
當然,因為ASP+ 已經(jīng)產(chǎn)生了如此的激動人心,一旦推出,很多商店都會馬上提供ASP+。
事實上我早已經(jīng)使用beta版ASP+! 我發(fā)現(xiàn)它使用 .aspx 后綴,這使我我感覺Microsoft會在近期推出第一個ASP+的service pack。
下一年里,我們將看到在這個巨大的市場上Sun和Microsoft如何展開決戰(zhàn),而程序員們又將做出什么樣的選擇呢?