ASP.NET、JSP及PHP之間的抉擇

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

    alex0126 發表在 痞客邦 留言(0) 人氣()