了解Java,便了解了微軟.NET
www.javaunion.org2001-3-12 15:39:21
人們對(duì)于美國(guó)微軟在經(jīng)過(guò)精心策劃后于6月宣布的“Microsoft.NET”的設(shè)想是見仁見智。在傳媒中“目前還很難說(shuō)”的反應(yīng)居多。實(shí)際上,由于具體產(chǎn)品開始出籠還是2~3年以后的事,現(xiàn)在說(shuō)三道四確實(shí)為時(shí)尚早。
這里有一把可以用來(lái)快速理解Microsoft.NET的鑰匙。那就是先了解Java技術(shù)。這是因?yàn)槲④涀约壕驼f(shuō)過(guò),“只要知道Java就可以更快地理解Microsoft.NET”。
Microsoft.NET有幾個(gè)關(guān)鍵點(diǎn)。其中最重要的一點(diǎn)是改革商務(wù)模型。微軟公司感覺到只靠銷售軟件包的商務(wù)模型沒(méi)有什么前途,該公司打算今后將中心轉(zhuǎn)移到可以在網(wǎng)絡(luò)上使用的“服務(wù)”型商務(wù)。
這樣,首要的問(wèn)題就是解決網(wǎng)絡(luò)上用來(lái)開發(fā)并執(zhí)行“服務(wù)”的平臺(tái),這就是Microsoft.NET。這一平臺(tái)應(yīng)該是一個(gè)繼承了目前的Windows資產(chǎn),同時(shí)又是一個(gè)不比與其競(jìng)爭(zhēng)的技術(shù)(即Java技術(shù))遜色的現(xiàn)代化的東西。
新的平臺(tái)試圖提高開發(fā)生產(chǎn)效率(再也不想為內(nèi)存溢出錯(cuò)誤(Memory Leak Error)而煩惱了!),并且試圖使應(yīng)用軟件的發(fā)布更為容易(再也不想因?yàn)镈LL版本不同而煩惱,希望不用重新啟動(dòng)電腦就能夠安裝應(yīng)用軟件)。為此,就需要將平臺(tái)升級(jí)為現(xiàn)代化的內(nèi)容。而且,Microsoft.NET的藍(lán)圖與Java十分相似。
Microsoft.NET平臺(tái)將推動(dòng)程序執(zhí)行環(huán)境的虛擬化進(jìn)程。使用編程語(yǔ)言編寫的代碼,首先轉(zhuǎn)換成中間代碼“IL”后,在虛擬機(jī)“Common Language Runtime”上執(zhí)行。在執(zhí)行時(shí)利用“JIT(Just In Time)編譯器”,通過(guò)將中間代碼轉(zhuǎn)換為本地代碼(Native Code)來(lái)提高執(zhí)行速度。此外,還配備實(shí)現(xiàn)內(nèi)存管理自動(dòng)化的GC(垃圾收集器,Garbage Collector)以及驗(yàn)證中間代碼的機(jī)制。此外還有可以在虛擬機(jī)環(huán)境中利用的共同層次程序庫(kù)(Class Liblaory)“Microsoft.NET Framework” 所有這些特征與Java平臺(tái)驚人地相似。均具有提高開發(fā)生產(chǎn)效率,容易發(fā)布軟件(安裝時(shí)只需單純復(fù)制即可)等特征。這些都與Java技術(shù)一致。
當(dāng)然,Java與Microsoft.NET除了相似之處還有很多不同的地方。通過(guò)這些區(qū)別,就可以發(fā)現(xiàn)這兩個(gè)技術(shù)在今后角逐時(shí)的力學(xué)關(guān)系。以下是主要的區(qū)別。
(1)Java技術(shù)目前就可以利用。Microsoft.NET的登臺(tái)還要等2~3年。
(2)Java是采用一種語(yǔ)言(Java語(yǔ)言)開發(fā)的。而Microsoft.NET則可以接受利用Visual Basic和新的語(yǔ)言C#,以及所有的編程語(yǔ)言開發(fā)軟件。
(3)Java對(duì)應(yīng)多個(gè)OS。而Microsoft.NET雖從原理上講可以對(duì)應(yīng)多個(gè)OS,不過(guò)估計(jì)目前暫時(shí)只以Windows環(huán)境為對(duì)象。
(4)在XML方案方面微軟的構(gòu)思領(lǐng)先。為了實(shí)現(xiàn)對(duì)應(yīng)網(wǎng)絡(luò)的“服務(wù)”,采用了基于XML的遠(yuǎn)隔工程(Project)調(diào)入?yún)f(xié)議SOAP。對(duì)應(yīng)XML的協(xié)議,原則上不能局限于特定的平臺(tái)。這一點(diǎn)其他競(jìng)爭(zhēng)公司也給與很高的評(píng)價(jià)。
基于Java技術(shù)且對(duì)應(yīng)網(wǎng)絡(luò)、用來(lái)提供服務(wù)的協(xié)議還有Jini。不過(guò),Jini是以Java為前提的技術(shù),很難說(shuō)它是用來(lái)分布不同種類的技術(shù)。 微軟公司有若干他所不擅長(zhǎng)的領(lǐng)域。尤其是在高端服務(wù)器OS、高端數(shù)據(jù)庫(kù)、大規(guī)模Web應(yīng)用軟件服務(wù)器以及Transaction中間軟件領(lǐng)域中,已經(jīng)難以同美國(guó)Sun Microsystems、美國(guó)IBM、美國(guó)Oracle以及美國(guó)BEA Systems等競(jìng)爭(zhēng)對(duì)手一爭(zhēng)高低。而另一方面,在桌面領(lǐng)域中微軟依然占有壓倒性的市場(chǎng)占有率。該公司所擅長(zhǎng)的領(lǐng)域,說(shuō)到底還是以Visual Basic為代表的容易使用的開發(fā)工具群,和以O(shè)ffice為代表的桌面環(huán)境。
只要在桌面環(huán)境中的膨大用戶支持該公司,就可以在網(wǎng)絡(luò)中占有一方領(lǐng)地。如果應(yīng)用Java的某個(gè)大規(guī)模Web網(wǎng)站提供優(yōu)秀的服務(wù),則只要開發(fā)出將其整合,便于使用即可。
其結(jié)果,微軟公司為了繼續(xù)生存的最有效戰(zhàn)略,是將桌面環(huán)境中的優(yōu)勢(shì)運(yùn)用到網(wǎng)絡(luò)時(shí)代--這便是聽了Microsoft.NET說(shuō)明后使人感受到的。
不過(guò)話又說(shuō)回來(lái),要想開發(fā)既繼承現(xiàn)有環(huán)境,又支持多個(gè)語(yǔ)言的Microsoft.NET,其難度將比開發(fā)Java技術(shù)要大。而另一方面,Java技術(shù)的開發(fā)正在穩(wěn)步前進(jìn)。展現(xiàn)在微軟公司前面的路,的確是很不平坦
|
溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!