明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

Microsoft.NET為什么難于理解

[摘要]2000年6月22日美國微軟公司公布了“Microsoft.NET”。該公司為此曾經(jīng)在日本國內(nèi)舉行了兩次新聞發(fā)布會。在7月26日~28日期間舉行的微軟研討會“Tech Ed2000”上“Microsoft.NET”也成了熱門話題。.NET是用來建立被稱為NGWS(即下一代Windows服務(wù)之意)的...

2000年6月22日美國微軟公司公布了“Microsoft.NET”。該公司為此曾經(jīng)在日本國內(nèi)舉行了兩次新聞發(fā)布會。在7月26日~28日期間舉行的微軟研討會“Tech Ed2000”上“Microsoft.NET”也成了熱門話題。.NET是用來建立被稱為NGWS(即下一代Windows服務(wù)之意)的新一代服務(wù)/軟件的基本構(gòu)想。 舉個例子,微軟制作的.NET所描繪的宣傳錄像片中有這樣的一個場面。一個男人出差到外地,在機場租借手機電話。他向該終端插入自己的IC卡后,自動下載他的地址簿和計劃簿,隨即就變成了他專用的PDA(便攜式信息終端)。 確實方便,不過如果被告知“這就是.NET”,反而把人搞得似懂非懂、糊里糊涂。筆者覺得如果要選一下最近幾年微軟公布的晦澀難懂的計劃,那么.NET無疑要名列前茅。 究竟什么地方不易理解呢。筆者認為難就難在它沒有能夠明確與目前微軟推出的概念之間的相互關(guān)系。比如.NET的基礎(chǔ)、分布式應(yīng)用軟件的思想,為了實現(xiàn)這一思想微軟本身提供的機制,在此機制上微軟或者由第三方提供的服務(wù),以及實際計劃提供的產(chǎn)品是什么樣的,等等這些關(guān)系一下子人們很難理清。 建立方案的框架其實就是Windows DNA2000 不過,仔細考慮后就會發(fā)現(xiàn),.NET與過去的概念之間的關(guān)系其實很簡單。 在.NET中,通過因特網(wǎng)可以利用的單功能服務(wù)(構(gòu)造塊,Biulding Block)組合在一起來建立方案。微軟本身已經(jīng)宣布向消費者提供門戶網(wǎng)站MSN.NET、辦公軟件的ASP服務(wù)Office.NET等的.NET方案以及認證服務(wù)Passport等,用來建立.NET方案的基本的構(gòu)造模塊,由于所有這些參雜在一起,所以令人難以理解,其實這一流程正是Windows DNA2000本身。 為了利用構(gòu)造模塊,使用SOAP(簡單對象訪問協(xié)議,Siple Object Access Protocol)作為通信協(xié)議,使用XML(可擴展的標記語言)做為數(shù)據(jù)格式。也正是從DNA2000開始,才提倡通過采用SOAP/XML組合,使得在Windows以外的平臺上也能夠建造用來建立方案的構(gòu)造模塊。 構(gòu)造方案的實體如同上述宣傳錄像帶中顯示的那樣有多種服務(wù)。例如只需要插入IC卡就可以使用自己的地址簿及計劃簿的手機電話服務(wù)等。 構(gòu)成方案的零件就叫做構(gòu)造模塊,它是各種服務(wù)的群體。還是以上述手機終端為例,終端讀取的IC卡信息并進行用戶認證服務(wù),以及從個人電腦及手機電話經(jīng)由網(wǎng)絡(luò)傳遞地址簿及計劃簿的服務(wù),等就是構(gòu)造模塊的實例。也就是說,在這一手機服務(wù)中,建立了一個使用SOAP/XML,經(jīng)過認證服務(wù)接受認證,然后憑著通過認證的證據(jù)從計劃簿服務(wù)公司通過SOAP/XML接收用戶計劃簿的流程。 不再為COM而苦惱 通過組合構(gòu)造模塊來建立方案的部分,只是DNA2000改了個名字而已,而關(guān)于構(gòu)造模塊本身,.NET則比DNA2000更前進了一步。 在DNA2000中表明,使用COM(零件對象模型、Component Object Model)、DCOM(分布式COM)以及Windows2000 Server的COM+服務(wù)建立構(gòu)造模塊(在DNA2000中稱為Mega服務(wù))。另一方面,在.NET中COM這一術(shù)語消失了。取而代之公布了被稱為.NET Framework用來建立構(gòu)造塊的框架。 COM雖然做為術(shù)語消失了,不過實際上.NET框架的實質(zhì)是將COM+改進的結(jié)果。事實上,在.NET框架的SDK(軟件開發(fā)套件)的發(fā)行文件中還殘留著COM+2.0的影子。而COM+是在不改變COM框架的基礎(chǔ)上,改由OS方面進行安全性及負荷分散處理等處理,從而減輕了安裝時間的運行時間(Run Time)。 這是因為雖然COM本身是一個并不太復(fù)雜的標準,但是由于存在著眾多的約束事項,因此安裝時非常費時。而在.NET框架中將“交給OS處理”部分進一步擴大,從而完全除去在COM+中依然殘留的COM框架。這樣一來,就不再需要安裝做為COM項目的對象了。 目前正在流行這種實現(xiàn)方式。一言以蔽之,就是將COM對象變成與Java程序一樣。也就是說,.NET框架的對象,不是被編譯成處理器的本地代碼(Native Code),而是被編譯成被稱為IL(中間語言)的虛擬機代碼。而在執(zhí)行時,則由相當于Java虛擬機的被稱為CLR(Commom Language Runtime)的模塊將IL代碼轉(zhuǎn)換成本地代碼后執(zhí)行(實際上只是在第一次才真正轉(zhuǎn)換)。 對象之間的通信不必描述為COM,只需描述為普通調(diào)入手續(xù)即可。只要移植CLR就可以在Windows以外的客戶及服務(wù)器上運行同一個代碼。而且可以使用任何開發(fā)語言。微軟的開發(fā)環(huán)境Visual Studio除了在下一個版本中使C/C++、Visual Basic以及新開發(fā)的C#對應(yīng).NET框架以外,目前已經(jīng)有多個第三方加入,將來有可能使用除了Java以外的所有主要語言。 在7月11日~14日PDC(專業(yè)開發(fā)人員會議)上,當美國微軟的副社長鮑爾·馬里茨(音譯)表示“已經(jīng)不再需要(COM的典型約束事項)IUnknown及GUID”時,開發(fā)人員們興奮得鼓掌喝彩,這一點完全可以理解,先不去考慮.NET框架減輕了開發(fā)工作量或者與Java相似等問題,做為純粹的軟件技術(shù),.NET框架確實是一個很有意思的結(jié)構(gòu)。 實際上在公布的.NET中還包括用來建立.NET方案的多種服務(wù),不過最后在理解了.NET的平臺部分是Windows DNA2000和COM+以后,就感到“原來它和現(xiàn)有的相比其實沒有什么大的改變”。而另一方面,從微軟故意將內(nèi)容搞得晦澀難懂,淡化Windows色彩來強調(diào)其新意的做法,可以感到他們要在因特網(wǎng)時代繼續(xù)生存下去的堅定意志。(BizIT) (出處:www.sina.com.cn)