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