1.在表現形式上,J2EE是壹套規範,而。NET更像是壹套產品。然而,它們的目的是為企業應用程序提供分布式和高度可靠的解決方案。他們在建築方面有許多相似之處。2.壹種語言與多種語言、壹種平臺與多種平臺的技術比較。這似乎是大家最喜歡談論的話題,也似乎是所有問題的焦點。兩個平臺的主流開發語言Java和C#,在架構上驚人的相似:虛擬機技術、基於沙箱的安全模型、分層命名空間、垃圾回收等等。所以乍壹看,C#簡直就是Java的克隆。但微軟不這麽認為。微軟的解釋是:“它集成了C++、Java、Modula 2、C和Smalltalk等多種語言的精華,並參考了它們的深度面向對象和對象簡化等核心思想。”壹方面,C#中的大部分關鍵字來自C++,這使得它在編寫上與Java有所不同。另壹方面,C#的嚴格類型轉換等概念顯然來自Java(當然,它的原始類型定義更嚴格,按照微軟的說法,不影響效率。),這讓它在內涵上有克隆的嫌疑。但即使是Java,它的壹些特性也和Smalltalk有關。因此,評價壹個開發語言的好壞,不僅僅是基於它的外在表現,更重要的是它的真實功效。作為壹種新的語言,C#增加了基於XML的標記,編譯器可以使用這些標記直接生成文檔。C#的另壹個特點:壹站式軟件強調自描述編碼,即頭文件。不需要引用IDL(接口定義語言)、GUID等復雜接口。也就是說,像C#和VB.NET這樣的代碼片段可以隨意添加到其他語言中。這無疑是多語言混合編程模式的壹次飛躍,但其可維護性不言而喻。微軟的。NET平臺提供了多種開發語言,如C#、VB.NET、COBOL等。C#是新的,而其他語言都是從原始語言轉化而來的。這是微軟煞費苦心做的事情,不可避免地要為習慣這些語言的程序員鋪平壹條便捷的道路。但是,這些語言的轉變與其說是改頭換面,不如說是大手術。首先,觀念變了,Basic、Cobol等語言本來就缺乏面向對象的內涵,現在變成了面向對象的語言,並不是要求他們的傳統程序員熟悉壹些額外的關鍵詞那麽簡單。面向對象的軟件分析、設計、開發和測試完全不同於基於傳統過程化語言的質變,所以這個過程的轉化對於傳統程序員來說也是壹個痛苦而漫長的過程。在傳統程序員面前,微軟似乎提供了多種解決方案,但對於實際問題,恐怕有點力不從心。所以壹個簡單的解決辦法就是直接用C#。對於獨立軟件開發者來說,轉化成本不容忽視。其次,要在壹個軟件項目中使用多種語言,開發者必須有多個語言專家和多個獨立的開發團隊,這些團隊很難相互支持。無疑,這也使得其軟件的維護成本呈非線性曲線增長。多樣性是壹把雙刃劍,在實施時需要慎重考慮。跨平臺是J2EE最大的賣點,也是迄今為止絆倒微軟的圍欄。當開發者完成符合J2EE規範的軟件後,其客戶可以根據自己的喜好和實力選擇不同的應用服務器。他們可以建立自己的平臺,從基於開源的自由軟件到滿足B2B需求的高端商業套件。然而,由於J2EE規範的不完善,J2EE服務器提供商不得不添加壹些附加功能,以便為他們提供他們理解的完整功能。這使得使用這些特殊功能的應用軟件被綁定到特定的應用服務器。隨著J2EE規範的發展,這種差異會逐漸減小。服務提供商使用WSDL(Web服務描述語言)來定義服務。服務提供商在UDDI註冊服務(通用描述、發現和集成);用戶的應用程序從UDDI查找註冊的服務;用戶的應用程序通過SOAP(簡單對象訪問協議)調用服務。(SOAP使用HTTP傳輸基於XML的參數。) 2.中間層基於組件的軟件開發技術可以在更高層次上實現軟件復用,加快企業軟件開發的進程。在J2EE框架中,JavaBeans和EJB(Enterprise JavaBeans)用於完成事務邏輯。EJB和JavaBeans有相似的模型,但是它們被用來創建分布式企業應用程序。它定義了服務器端組件的模型,具有以下特點:生存期模型;訪問模型;安全模型;事物處理模型;會話處理模型;數據封裝模型;部署模型根據這些模型,簡單的編碼就可以完成復雜的功能。在微軟的。NET平臺,舊的COM和COM+組件模型被新的取代。增加了基於沙盒的安全模型和垃圾回收等功能,實現了多接口繼承、擴展元數據和新的代理模型。舊的COM和COM+組件也可以映射到新的運行環境。綜上所述,兩種架構在基於組件的中間層設計上各有優勢,有足夠的能力創建分布式、復雜、高效、高可靠的應用。3.表示層的兩種架構同時支持富客戶端和瘦客戶端,即C/S模式和B/S模式。對於C/S模式,J2EE提供Java Swing代替Java AWT,JavaBean作為可視化組件也可以用來構建系統。對於B/S結構的表示層,J2EE使用了servlet、JSP(Java Server Page)、HMTL、WML、XML等工具。微軟的胖客戶端技術被Windows窗體取代。他們扮演著同樣的角色。在結構上,Windows窗體被插入到的運行時框架和組件模型中。網。在瘦客戶端模型中,ASP.NET取代了舊的ASP、HMTL、WML和XML作為表示層。在ASP.NET,可以自由引用C#、VB.NET等語言的代碼片段。ASP。NET頁面先轉換成中間語言,再用即時編譯器編譯,最後在公共語言運行環境下運行,ASP.NET提供頁面緩沖,所以運行速度比ASP快很多。總的來說,兩種架構使用的表示層技術非常相似,雖然在細節上各有所長,但總體功能是相當的。4.數據訪問J2EE和。Net支持不同形式的數據訪問。JDBC和ADO壹樣,與連接的數據庫無關,通過連接、命令語句和結果集對數據進行操作。因此,JDBC屬於中級API。更高層的數據封裝和數據管理通過實體EJB完成(基於容器管理的實體EJB使得開發更快,管理更方便。事實上,由於實體EJB的load()和store()方法的同步機制,並發造成的數據庫瓶頸將會大大緩解。也可以采用不屬於J2EE規範的第三方數據訪問工具,比如WebGain的TopLink。微軟的。NET數據訪問工具用基於XML的ADO.NET代替了基於COM組件的ADO。任何以XML作為輸出的數據源都可以作為ADO.NET的數據源。相應的結果集升級為dataset,命令語句升級為DataSetCommands。從形式上看,微軟的point更新潮時尚。它基於XML的特性使它能夠處理極其豐富的數據源,而且因為它是建立在HTTP協議上的,所以很容易穿透防火墻,使得通信更加方便。但是,由於XML本身基於標簽的特性,顯然限制了它在數據量巨大和網絡瓶頸的應用中的使用。J2EE的數據訪問規則有點單薄,但同時也更簡單、更有效。並通過有效的應用程序分層設計,3 .總體評價在微軟沒有足夠的產品與Java平臺抗衡的時候,微軟願意做的就是大聲宣傳:壹次編寫,處處調試。而它的反對者更願意這樣評論它:微軟壹開始喜歡Java,他們喜歡的方式就是讓它死掉。當然,他們討厭它,他們甚至討厭每壹個以j開頭的單詞,但現在,形式不同了。微軟有壹個值得驕傲的. NET。他們可以比較J2EE和。用他們自己的方式。最熱鬧的是之間的綜合比較。NET寵物店和J2EE寵物店。對於企業來說,很多內部系統的集成,系統的擴展性和安全性是需要更多關註的問題,這是J2EE的優勢,也是微軟的劣勢。在效率方面,J2EE陣營主張通過提高硬件的效率來彌補軟件的不足。開放的標準、強大的功能、易於移植都是J2EE的賣點。但奇怪的是,IBM的WebSphere和BEA的WebLogic占據了市場的壹半以上,而作為規則制定者的孫卻在壹旁觀望。微軟確實提供了全方位的產品,從桌面辦公軟件、開發工具到後臺服務器數據庫。
上一篇:哈薩克斯坦戒斷藥物效果如何?下一篇:中國有好的音樂學院嗎?