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