且看微软的.Net和Sun公司的J2EE如何对垒
生活随笔
收集整理的這篇文章主要介紹了
且看微软的.Net和Sun公司的J2EE如何对垒
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
且看微軟的.Net和Sun公司的J2EE如何對(duì)壘[url]http://tech.163.com[/url]
2006-03-21 20:21:05 來(lái)源: sun
網(wǎng)友評(píng)論0 條論壇導(dǎo)讀:面對(duì)微軟推出的.Net FRAMEWORK,你可能會(huì)有以下疑問(wèn):
¨準(zhǔn)確地講.Net平臺(tái)是什么?
¨如何將.Net的體系結(jié)構(gòu)和J2EE對(duì)比?
¨從.Net的體系結(jié)構(gòu)演繹出的一整套關(guān)于企業(yè)軟件開(kāi)發(fā)方案中我們能學(xué)到此什么?
在本文中作者將為你解開(kāi)這些疑問(wèn)。
廖永康原文出處:[url]http://java.sun.com/features/2000/11/dotnetvsms.html[/url]
即使你沒(méi)有專(zhuān)門(mén)針對(duì)微軟平臺(tái)寫(xiě)過(guò)程序,你可能也會(huì)聽(tīng)到過(guò)微軟的.Net。這是微軟對(duì)最近一連串和
非視窗事件競(jìng)爭(zhēng)的回答。如果你讀到過(guò)有關(guān)新聞、來(lái)自微軟的撰稿、或者通過(guò)在MSDN端瀏覽得到的
不完整的技術(shù)資料、或者你注意到了微軟專(zhuān)家開(kāi)發(fā)者會(huì)議(會(huì)上已經(jīng)演示了.Net平臺(tái))的話,你可能
至少還有兩大疑問(wèn):
¨準(zhǔn)確地講.Net平臺(tái)是什么?
¨如何將.Net的體系結(jié)構(gòu)和J2EE對(duì)比?
如果你再深入一步的話,你可能還有第三個(gè)疑問(wèn)活躍在你的腦海里:
¨從.Net的體系結(jié)構(gòu)演繹出的一整套關(guān)于企業(yè)軟件開(kāi)發(fā)方案中我們能學(xué)到此什么?
.Net框架是其生命周期的十分早期階段的產(chǎn)品,微軟.Net部門(mén)還會(huì)不斷地更深入和仔細(xì)地開(kāi)發(fā)它,
但是無(wú)論怎樣,我們已經(jīng)能夠從已有的資料對(duì)這些問(wèn)題作出公正的正確的回答。
它是什么?(.Net是什么?)
現(xiàn)在在眾多的論壇中對(duì).Net的反思,使人不禁聯(lián)想起三個(gè)瞎子摸象的寓言;根據(jù)你的洞察力,可能
得到非常不同的結(jié)論:有人認(rèn)為.Net是微軟下一代Visual Studio的開(kāi)發(fā)環(huán)境;有人認(rèn)為它只是一種
新的編程語(yǔ)言(C#);還有人為它是基于XML和SOAP的一種新的數(shù)據(jù)交換和報(bào)文的工作框架。實(shí)際
上,.Net包含了這幾部份內(nèi)容,而且還會(huì)更多。
首先,讓我們看一些具體的細(xì)節(jié),瀏覽一下組成.Net平臺(tái)的一系列技術(shù)構(gòu)件:
¨C#:是一種新寫(xiě)的描述(書(shū))構(gòu)件的語(yǔ)言,它將C、C++和Java的元素集成起來(lái),并增加一些特點(diǎn)如:
元數(shù)據(jù)標(biāo)記、相關(guān)元素的開(kāi)發(fā)。
¨“公共語(yǔ)言運(yùn)行時(shí)”:它以中間語(yǔ)言(IL)格式,運(yùn)行字節(jié)代碼,用一種語(yǔ)言寫(xiě)的代碼和對(duì)象只要編
譯器是針對(duì)這種語(yǔ)言開(kāi)發(fā)的,顯然能夠編譯成IL運(yùn)行時(shí)。
¨一組基本的可從“公共語(yǔ)言運(yùn)行時(shí)”訪問(wèn)的構(gòu)件(元件),它可提供各種功能(如:連網(wǎng)功能、包容
器功能等等)。
¨ASP.NET:是新的ASP版本,支持將ASP編譯成公共語(yǔ)言運(yùn)行時(shí)功能(所以用任何語(yǔ)言寫(xiě)的ASP腳本,
都能和IL捆綁在一起)。
¨視窗格式和Web格式:一種新的可從Visual Studio訪問(wèn)的UI構(gòu)件框架。(用戶接口=UI)。
¨ADO:將XML和SLAP用于數(shù)據(jù)交換的新一代ADO數(shù)據(jù)訪問(wèn)構(gòu)件(元件)。
.Net和J2EE如何比較?
正如我們所能看見(jiàn)的.Net平臺(tái),在其傘型結(jié)構(gòu)下有一個(gè)技術(shù)矩陣(寶塔)。顯然微軟為了抓住視窗平
臺(tái)的開(kāi)發(fā)商,正在將這些技術(shù)變成現(xiàn)有平臺(tái)如J2EE和CORBA的代用品。但是怎樣對(duì)它們進(jìn)行逐項(xiàng)比較
呢?一種方法就是將.Net和J2EE作成以下對(duì)比列表:
.Net J2EE 關(guān)鍵差異
C#編程語(yǔ)言Java編程語(yǔ)言C#和Java均來(lái)自C和C++,最顯著的特點(diǎn)(如垃圾收集層次結(jié)構(gòu)的名字空
間)在兩個(gè)方面。C#借用了JavaBeans的某些構(gòu)件概念(特性屬性、事件等),并增加了某些自己的概
念(如元數(shù)據(jù)標(biāo)志),但將這些特點(diǎn)合并成不同的語(yǔ)法。Java以Java虛擬機(jī)方式運(yùn)行在任何平臺(tái)上,
而C#在可預(yù)見(jiàn)的將來(lái),僅運(yùn)行在視窗環(huán)境內(nèi)。C#隱含地結(jié)合到IL公共語(yǔ)言運(yùn)行時(shí)中,(見(jiàn)后),然
后按合理的順序(JIT)運(yùn)行。編譯成的字節(jié)編碼或者整個(gè)編譯成的自然編碼。Java代碼按照J(rèn)ava 虛
擬機(jī)字節(jié)代碼方式運(yùn)行,它由VM解析或JIT編譯,或者整個(gè)編譯成自然代碼。
.Net公共元件(填補(bǔ)“.Net 框架結(jié)構(gòu)的SDK”) Java核心API 高層的.Net元件,包括支持用XML和SOAP 的
分布式訪問(wèn)(見(jiàn)ADO.NET)。
ASP.NET頁(yè)面(ASP.NET) Java服務(wù)器頁(yè)面(JSP) ASP.NET使用Visual Basic、C# 可能還有一別的語(yǔ)
言作為代碼段。通過(guò)公共語(yǔ)言運(yùn)行時(shí)全部編譯成自然代碼(與此相對(duì)應(yīng)<相反> 是象APS那樣,每次
都解析執(zhí)行)。JSP使用Java代碼(段或者JavaBeans參考),或者編譯成Java字節(jié)代碼(按需或批編
譯要根據(jù)JSP實(shí)現(xiàn)系統(tǒng)來(lái)決定)。.Net公共語(yǔ)言運(yùn)行時(shí)允許以多種語(yǔ)言的代碼(程序)在視窗環(huán)境下
使用一組共享的元件。優(yōu)先于.Net框架的所有元件(公共元件、ASP.NET等)。
IL公共語(yǔ)言運(yùn)行時(shí)Java虛擬機(jī)和CORBA IDL和ORB Java的虛擬機(jī)規(guī)程,允許Java字節(jié)代碼,在任何
平臺(tái)上按JVM方式運(yùn)行。CORBA允許多種語(yǔ)言的代碼使用一組共享的對(duì)象,在任何帶有ORB的平臺(tái)上
運(yùn)行,并不是緊密地集成到J2EE框架內(nèi)。同樣的Web元件(如基于JSP的文件)在標(biāo)準(zhǔn)的Java平臺(tái)上
是沒(méi)有的,某些專(zhuān)有的元件只能通過(guò)Java IDE等得到。
視窗格式和Web格式Java的飄移通過(guò)MS Visual Studio的IDE而不是在本文所說(shuō)的IDE,支持視窗格
式和Web格式的RAD開(kāi)發(fā),在許多Java的IDE和工具中都支持“飄移”(Swing)。
ADO.NET和基于SOAP的Web服務(wù)JDBC、EJB、JMS和Java XML庫(kù)(XML4J、JA-XP) ADO.NET建立在位于HTTP
協(xié)議頂部的XML數(shù)據(jù)交換的基礎(chǔ)上(指在遠(yuǎn)程數(shù)據(jù)對(duì)象和多個(gè)應(yīng)用程序捆綁之間的數(shù)據(jù)交換)。一般
說(shuō)來(lái),.Net的Web服務(wù)假定了SOAP發(fā)信模型。而EJB、JDBC等將數(shù)據(jù)交換協(xié)議和開(kāi)發(fā)者處理權(quán)分離,
不工作在HTTP、KMI/JRMP或IIOP頂層。
該表的比較只抓住了表面現(xiàn)象,這里再總結(jié)一下.Net和J2EE的比較:
¨特點(diǎn):.Net和J2EE都提供同樣優(yōu)秀的特點(diǎn),盡管提供的方法不同。
¨可移植性(Portability):.Net的核心只工作Windows環(huán)境下,但從理論上講可以支持以多種語(yǔ)言
開(kāi)發(fā)(只要這些語(yǔ)言的子集/超集已經(jīng)定義好,并為他們建立了IL編譯器)。也就是說(shuō):SOAP的能力
允許在其它平臺(tái)上的元件(部件)和.Net元件進(jìn)行數(shù)據(jù)報(bào)文交換。而.Net中的一些元素:象SOAP,其
恢復(fù)和查找協(xié)議,作為公共部份提供構(gòu)架的核心部件(IL運(yùn)行時(shí)環(huán)境、ASP.NET內(nèi)部的視窗格式和Web
格式元件“合同”等)仍由微軟掌握,微軟只扮演整個(gè).Net開(kāi)發(fā)環(huán)境和運(yùn)行時(shí)環(huán)境提供者的角色。其實(shí)
早就有了來(lái)自開(kāi)發(fā)者協(xié)會(huì)要求微軟公開(kāi)這些規(guī)程,但是這和微軟的標(biāo)準(zhǔn)經(jīng)驗(yàn)相違背。
另一方面,J2EE只要遵循Java VM(規(guī)則)和一組平臺(tái)需要的服務(wù)就可以在任何平臺(tái)上工作(EJB包容
器、JMS服務(wù)等等)。所有這些定義了J2EE平臺(tái)的規(guī)程,都已經(jīng)公開(kāi)發(fā)表,并提供公眾閱讀。因此,
許多供應(yīng)商也提供兼容產(chǎn)品和開(kāi)發(fā)環(huán)境。但是J2EE是單語(yǔ)言平臺(tái),若用其它語(yǔ)言調(diào)用或訪問(wèn)對(duì)象,
可能需要通過(guò)CORBA,但是CORBA支持并不是平臺(tái)普遍存在的部分。
巨大的前景:
上述最后的幾點(diǎn)勾畫(huà)出.Net和J2EE的某些關(guān)鍵性的差異,以及微軟在這些方面所扮演的角色。微軟
現(xiàn)在正在為.Net做兩件值得注意的事:通過(guò)將XML和SOAP集成到他們的信息傳輸方案中,從而為以其
它編程語(yǔ)言開(kāi)發(fā)商和非.Net部件打開(kāi)通向.Net的道路。
通過(guò)讓語(yǔ)言元件交叉互動(dòng),.Net正在釋放Perl、Eiffel、Cobol和其它編程器,允許它們扮演微軟“沙
盤(pán)”的角色。這些語(yǔ)言的愛(ài)好者應(yīng)該特別遵守規(guī)則,因?yàn)樗麄冎写蟛糠秩嗽谖④?SUN/OpenSource競(jìng)
爭(zhēng)中感受到約束和定界。因此,只要在他的元件發(fā)信層使用XML和SOAP,微軟就能支持他們將開(kāi)放性
部件加到他們的平臺(tái)上,從而擺脫對(duì)專(zhuān)用性的依賴(lài)。
2006-03-21 20:21:05 來(lái)源: sun
網(wǎng)友評(píng)論0 條論壇導(dǎo)讀:面對(duì)微軟推出的.Net FRAMEWORK,你可能會(huì)有以下疑問(wèn):
¨準(zhǔn)確地講.Net平臺(tái)是什么?
¨如何將.Net的體系結(jié)構(gòu)和J2EE對(duì)比?
¨從.Net的體系結(jié)構(gòu)演繹出的一整套關(guān)于企業(yè)軟件開(kāi)發(fā)方案中我們能學(xué)到此什么?
在本文中作者將為你解開(kāi)這些疑問(wèn)。
廖永康原文出處:[url]http://java.sun.com/features/2000/11/dotnetvsms.html[/url]
即使你沒(méi)有專(zhuān)門(mén)針對(duì)微軟平臺(tái)寫(xiě)過(guò)程序,你可能也會(huì)聽(tīng)到過(guò)微軟的.Net。這是微軟對(duì)最近一連串和
非視窗事件競(jìng)爭(zhēng)的回答。如果你讀到過(guò)有關(guān)新聞、來(lái)自微軟的撰稿、或者通過(guò)在MSDN端瀏覽得到的
不完整的技術(shù)資料、或者你注意到了微軟專(zhuān)家開(kāi)發(fā)者會(huì)議(會(huì)上已經(jīng)演示了.Net平臺(tái))的話,你可能
至少還有兩大疑問(wèn):
¨準(zhǔn)確地講.Net平臺(tái)是什么?
¨如何將.Net的體系結(jié)構(gòu)和J2EE對(duì)比?
如果你再深入一步的話,你可能還有第三個(gè)疑問(wèn)活躍在你的腦海里:
¨從.Net的體系結(jié)構(gòu)演繹出的一整套關(guān)于企業(yè)軟件開(kāi)發(fā)方案中我們能學(xué)到此什么?
.Net框架是其生命周期的十分早期階段的產(chǎn)品,微軟.Net部門(mén)還會(huì)不斷地更深入和仔細(xì)地開(kāi)發(fā)它,
但是無(wú)論怎樣,我們已經(jīng)能夠從已有的資料對(duì)這些問(wèn)題作出公正的正確的回答。
它是什么?(.Net是什么?)
現(xiàn)在在眾多的論壇中對(duì).Net的反思,使人不禁聯(lián)想起三個(gè)瞎子摸象的寓言;根據(jù)你的洞察力,可能
得到非常不同的結(jié)論:有人認(rèn)為.Net是微軟下一代Visual Studio的開(kāi)發(fā)環(huán)境;有人認(rèn)為它只是一種
新的編程語(yǔ)言(C#);還有人為它是基于XML和SOAP的一種新的數(shù)據(jù)交換和報(bào)文的工作框架。實(shí)際
上,.Net包含了這幾部份內(nèi)容,而且還會(huì)更多。
首先,讓我們看一些具體的細(xì)節(jié),瀏覽一下組成.Net平臺(tái)的一系列技術(shù)構(gòu)件:
¨C#:是一種新寫(xiě)的描述(書(shū))構(gòu)件的語(yǔ)言,它將C、C++和Java的元素集成起來(lái),并增加一些特點(diǎn)如:
元數(shù)據(jù)標(biāo)記、相關(guān)元素的開(kāi)發(fā)。
¨“公共語(yǔ)言運(yùn)行時(shí)”:它以中間語(yǔ)言(IL)格式,運(yùn)行字節(jié)代碼,用一種語(yǔ)言寫(xiě)的代碼和對(duì)象只要編
譯器是針對(duì)這種語(yǔ)言開(kāi)發(fā)的,顯然能夠編譯成IL運(yùn)行時(shí)。
¨一組基本的可從“公共語(yǔ)言運(yùn)行時(shí)”訪問(wèn)的構(gòu)件(元件),它可提供各種功能(如:連網(wǎng)功能、包容
器功能等等)。
¨ASP.NET:是新的ASP版本,支持將ASP編譯成公共語(yǔ)言運(yùn)行時(shí)功能(所以用任何語(yǔ)言寫(xiě)的ASP腳本,
都能和IL捆綁在一起)。
¨視窗格式和Web格式:一種新的可從Visual Studio訪問(wèn)的UI構(gòu)件框架。(用戶接口=UI)。
¨ADO:將XML和SLAP用于數(shù)據(jù)交換的新一代ADO數(shù)據(jù)訪問(wèn)構(gòu)件(元件)。
.Net和J2EE如何比較?
正如我們所能看見(jiàn)的.Net平臺(tái),在其傘型結(jié)構(gòu)下有一個(gè)技術(shù)矩陣(寶塔)。顯然微軟為了抓住視窗平
臺(tái)的開(kāi)發(fā)商,正在將這些技術(shù)變成現(xiàn)有平臺(tái)如J2EE和CORBA的代用品。但是怎樣對(duì)它們進(jìn)行逐項(xiàng)比較
呢?一種方法就是將.Net和J2EE作成以下對(duì)比列表:
.Net J2EE 關(guān)鍵差異
C#編程語(yǔ)言Java編程語(yǔ)言C#和Java均來(lái)自C和C++,最顯著的特點(diǎn)(如垃圾收集層次結(jié)構(gòu)的名字空
間)在兩個(gè)方面。C#借用了JavaBeans的某些構(gòu)件概念(特性屬性、事件等),并增加了某些自己的概
念(如元數(shù)據(jù)標(biāo)志),但將這些特點(diǎn)合并成不同的語(yǔ)法。Java以Java虛擬機(jī)方式運(yùn)行在任何平臺(tái)上,
而C#在可預(yù)見(jiàn)的將來(lái),僅運(yùn)行在視窗環(huán)境內(nèi)。C#隱含地結(jié)合到IL公共語(yǔ)言運(yùn)行時(shí)中,(見(jiàn)后),然
后按合理的順序(JIT)運(yùn)行。編譯成的字節(jié)編碼或者整個(gè)編譯成的自然編碼。Java代碼按照J(rèn)ava 虛
擬機(jī)字節(jié)代碼方式運(yùn)行,它由VM解析或JIT編譯,或者整個(gè)編譯成自然代碼。
.Net公共元件(填補(bǔ)“.Net 框架結(jié)構(gòu)的SDK”) Java核心API 高層的.Net元件,包括支持用XML和SOAP 的
分布式訪問(wèn)(見(jiàn)ADO.NET)。
ASP.NET頁(yè)面(ASP.NET) Java服務(wù)器頁(yè)面(JSP) ASP.NET使用Visual Basic、C# 可能還有一別的語(yǔ)
言作為代碼段。通過(guò)公共語(yǔ)言運(yùn)行時(shí)全部編譯成自然代碼(與此相對(duì)應(yīng)<相反> 是象APS那樣,每次
都解析執(zhí)行)。JSP使用Java代碼(段或者JavaBeans參考),或者編譯成Java字節(jié)代碼(按需或批編
譯要根據(jù)JSP實(shí)現(xiàn)系統(tǒng)來(lái)決定)。.Net公共語(yǔ)言運(yùn)行時(shí)允許以多種語(yǔ)言的代碼(程序)在視窗環(huán)境下
使用一組共享的元件。優(yōu)先于.Net框架的所有元件(公共元件、ASP.NET等)。
IL公共語(yǔ)言運(yùn)行時(shí)Java虛擬機(jī)和CORBA IDL和ORB Java的虛擬機(jī)規(guī)程,允許Java字節(jié)代碼,在任何
平臺(tái)上按JVM方式運(yùn)行。CORBA允許多種語(yǔ)言的代碼使用一組共享的對(duì)象,在任何帶有ORB的平臺(tái)上
運(yùn)行,并不是緊密地集成到J2EE框架內(nèi)。同樣的Web元件(如基于JSP的文件)在標(biāo)準(zhǔn)的Java平臺(tái)上
是沒(méi)有的,某些專(zhuān)有的元件只能通過(guò)Java IDE等得到。
視窗格式和Web格式Java的飄移通過(guò)MS Visual Studio的IDE而不是在本文所說(shuō)的IDE,支持視窗格
式和Web格式的RAD開(kāi)發(fā),在許多Java的IDE和工具中都支持“飄移”(Swing)。
ADO.NET和基于SOAP的Web服務(wù)JDBC、EJB、JMS和Java XML庫(kù)(XML4J、JA-XP) ADO.NET建立在位于HTTP
協(xié)議頂部的XML數(shù)據(jù)交換的基礎(chǔ)上(指在遠(yuǎn)程數(shù)據(jù)對(duì)象和多個(gè)應(yīng)用程序捆綁之間的數(shù)據(jù)交換)。一般
說(shuō)來(lái),.Net的Web服務(wù)假定了SOAP發(fā)信模型。而EJB、JDBC等將數(shù)據(jù)交換協(xié)議和開(kāi)發(fā)者處理權(quán)分離,
不工作在HTTP、KMI/JRMP或IIOP頂層。
該表的比較只抓住了表面現(xiàn)象,這里再總結(jié)一下.Net和J2EE的比較:
¨特點(diǎn):.Net和J2EE都提供同樣優(yōu)秀的特點(diǎn),盡管提供的方法不同。
¨可移植性(Portability):.Net的核心只工作Windows環(huán)境下,但從理論上講可以支持以多種語(yǔ)言
開(kāi)發(fā)(只要這些語(yǔ)言的子集/超集已經(jīng)定義好,并為他們建立了IL編譯器)。也就是說(shuō):SOAP的能力
允許在其它平臺(tái)上的元件(部件)和.Net元件進(jìn)行數(shù)據(jù)報(bào)文交換。而.Net中的一些元素:象SOAP,其
恢復(fù)和查找協(xié)議,作為公共部份提供構(gòu)架的核心部件(IL運(yùn)行時(shí)環(huán)境、ASP.NET內(nèi)部的視窗格式和Web
格式元件“合同”等)仍由微軟掌握,微軟只扮演整個(gè).Net開(kāi)發(fā)環(huán)境和運(yùn)行時(shí)環(huán)境提供者的角色。其實(shí)
早就有了來(lái)自開(kāi)發(fā)者協(xié)會(huì)要求微軟公開(kāi)這些規(guī)程,但是這和微軟的標(biāo)準(zhǔn)經(jīng)驗(yàn)相違背。
另一方面,J2EE只要遵循Java VM(規(guī)則)和一組平臺(tái)需要的服務(wù)就可以在任何平臺(tái)上工作(EJB包容
器、JMS服務(wù)等等)。所有這些定義了J2EE平臺(tái)的規(guī)程,都已經(jīng)公開(kāi)發(fā)表,并提供公眾閱讀。因此,
許多供應(yīng)商也提供兼容產(chǎn)品和開(kāi)發(fā)環(huán)境。但是J2EE是單語(yǔ)言平臺(tái),若用其它語(yǔ)言調(diào)用或訪問(wèn)對(duì)象,
可能需要通過(guò)CORBA,但是CORBA支持并不是平臺(tái)普遍存在的部分。
巨大的前景:
上述最后的幾點(diǎn)勾畫(huà)出.Net和J2EE的某些關(guān)鍵性的差異,以及微軟在這些方面所扮演的角色。微軟
現(xiàn)在正在為.Net做兩件值得注意的事:通過(guò)將XML和SOAP集成到他們的信息傳輸方案中,從而為以其
它編程語(yǔ)言開(kāi)發(fā)商和非.Net部件打開(kāi)通向.Net的道路。
通過(guò)讓語(yǔ)言元件交叉互動(dòng),.Net正在釋放Perl、Eiffel、Cobol和其它編程器,允許它們扮演微軟“沙
盤(pán)”的角色。這些語(yǔ)言的愛(ài)好者應(yīng)該特別遵守規(guī)則,因?yàn)樗麄冎写蟛糠秩嗽谖④?SUN/OpenSource競(jìng)
爭(zhēng)中感受到約束和定界。因此,只要在他的元件發(fā)信層使用XML和SOAP,微軟就能支持他們將開(kāi)放性
部件加到他們的平臺(tái)上,從而擺脫對(duì)專(zhuān)用性的依賴(lài)。
轉(zhuǎn)載于:https://blog.51cto.com/itboy/109029
總結(jié)
以上是生活随笔為你收集整理的且看微软的.Net和Sun公司的J2EE如何对垒的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 波形捕捉:(7)“捕捉缓冲区”特效
- 下一篇: MSSQL2000 数据库文件迁移到 M