Microsoft的.NET 策略
發(fā)表時間:2024-02-17 來源:明輝站整理相關軟件相關文章人氣:
[摘要]Microsoft正在廣泛地使用(也有人說是濫用)其.NET 標記,這種情況使不少人被.NET的各種不同的概念搞糊涂了。這里我們可以先把.NET的幾個主要的意義分清楚:.NET是軟件成為一種服務的轉移:.NET在這個方面的意義是最被廣泛接受和理解的!败浖褪欠⻊铡钡臍v年最初是在1997年左右由O...
Microsoft正在廣泛地使用(也有人說是濫用)其.NET 標記,這種情況使不少人被.NET的各種不同的概念搞糊涂了。這里我們可以先把.NET的幾個主要的意義分清楚:
.NET是軟件成為一種服務的轉移:
.NET在這個方面的意義是最被廣泛接受和理解的!败浖褪欠⻊铡钡臍v年最初是在1997年左右由Oracle 的CEO Larry Ellison 以及SUN的CEO Scott McNealy 在網(wǎng)絡計算機的概念大行其道的時候提出的。不過Oracle 和SUN 并沒有真正將這個概念變?yōu)楝F(xiàn)實,他們的視角更多的集中于資源集中化方面。不過,當初聽到Ellison 和McNealy這番見解的公司——當然包括Microsoft,也認識到了這種見解說出了軟件產(chǎn)業(yè)面臨的一個巨大改變,.NET 則是Microsoft 對這種概念,這種變化作出的自己的反應。
.NET是一個新的編程模型——也就是說是Internet 平臺:
Micorsoft 正在趨向于將.NET看作一個系統(tǒng)。在表面下,它包含了兩種不同的編程模型:一個是Web服務編程模型,另一個是系統(tǒng)編程模型。
Microsoft 開始把.NET系統(tǒng)編程模型作為.NET整體的一個組成部分。計劃最終以此代替現(xiàn)有的組件對象模型(Component Object Model,COM) 以及Windows應用程序編程接口(APIs),這個現(xiàn)在還沒有最終正式定名的模型使用一系列新的基礎類。
.NET系統(tǒng)編程模型是Microsoft私有的。 .NET 架構(.NET Framework )則包含了Microsft 的通用語言運行時(Common Language Runtime , CLR),CLR實現(xiàn)了這種新的編程模型。它還包含了類以及各種機制可以把一個應用程序包裝為一個Web服務,這樣可以簡化Web服務的開發(fā)。另外,Microsoft 還發(fā)布了新的語言,C# (發(fā)音是“C sharp”)
最終,Microsoft正在計劃發(fā)布新的集成開發(fā)環(huán)境(IDE),也就是大家都知道的Visual Studio.NET (VS.NET),來具體實現(xiàn)上述程序開發(fā)策略。
.NET 是Microsoft 新的公司戰(zhàn)略
在這個意義上,.NET實際上是Microsoft現(xiàn)有的所有產(chǎn)品,技術,策略的共同品牌,不過這個.NET品牌的使用是非常松散的。比如,Microsoft在2000年9月發(fā)布了其.NET企業(yè)服務器產(chǎn)品(比如Windows 2000 Data Center Server 以及 Application Center) ,這些產(chǎn)品其實對于軟件就是服務的理念或者是其新的編程模型沒有多大的幫助。
.NET是對抗法院的拆分命令的一個方法
Microsoft 的.NET 策略在很多的領域都還是不明朗的。特別不明朗的就是Microsoft的操作系統(tǒng)打包策略,也許未來支持.NET的Windows版本和“經(jīng)典”的Windows是分開的。我們相信在這方面缺乏具體信息的情況是Micorsoft 的策略,這樣Microsoft 如果未來在司法部的官司中被迫拆分,還有一定的回旋余地。
.NET 的用戶體驗
關于.NET的很多先期工作都要集中在下層構造以及工具這些方面,這顯然是必須的。不過Microsoft也很重視.NET帶來的新的用戶體驗。當初Windows的成功固然是得益與開發(fā)者的大力支持,但是用戶體驗在其成功的過程中也扮演了重要的角色。我們認為相應的模式也會發(fā)生在.NET上,其核心焦點則是Microsoft稱為"智能客戶端(smart clients)" 的概念,智能客戶端即不是純粹的瘦客戶端也不是胖客戶端——作為用戶體驗的技術核心,.NET將有多種用戶體驗方面的“品牌標志”。
兩個這樣的品牌標志——MSN 和 bCentral 有著共同的特性:它們都是從一個站點開始,使用一個瘦的瀏覽器客戶端進行服務。這些客戶端更加智能些,比如MSN Explorer。
VS.NET 以及 Office.NET 也有同樣的特征,它們都是功能豐富的客戶端程序,可以和Internet和服務進行一些交互。我們期待這些產(chǎn)品發(fā)布的時候可以支持更多Microsoft 和其它公司的服務。如果.NET充分發(fā)揮了其潛力,我們估計可以看到Microsoft以外的公司發(fā)布這樣的產(chǎn)品。
.NET 描述了兩種編程模型
在技術層面上,.NET平臺的基礎包括:擴展置標語言,也就是我們熟悉的XML;簡單對象操作協(xié)議(Simple Object Access Protocol ,SOAP);以及將未來的Internet 視為面向各種設備的服務的觀念。這些高層次的描述主要是面向這個新的模型中最明顯的方面——也就是實現(xiàn)Web服務的部分。
然而,在內(nèi)部,.NET平臺建筑于.NET架構之上,.NET架構提供了實現(xiàn)這些概念的API的底層機制。.NET架構也經(jīng)歷了.NET本身的問題——就是它被用于描述太多的事情了。特別是,.NET 描述了兩種新的不同的編程模型,他們構成了概念的基礎:這就是Web服務編程模型(Web services programming model )以及系統(tǒng)編程模型(system programming model)。
企業(yè)一定要認識到,組成.NET的是兩個相互獨立的編程模型。Web服務編程模型與底層的系統(tǒng)編程模型是相互獨立的。這些編程模型可以也應該分別使用。
.NET Web服務編程模型
.NETWeb服務編程模型大體上就是通過Internet的各種標準來實現(xiàn)各種接口。這是一組以Internet標準為基礎的松散的模型,使用HTTP和其它的協(xié)議作為主要的通訊機制,同時,使用了XML,SOAP,Web服務描述語言(Web Services Description Language,WSDL),以及通用描述,發(fā)現(xiàn),集成(Universal Description, Discovery, and Integration , 簡稱UDDI)。最初,多數(shù)這種編程模型的使用將采取請求/應答的模式。
在2003年,Web服務的主要形式將是組件調(diào)用以及信息推送,這些在所有Web服務中占到75%以上。更長遠的未來,我們認為“協(xié)調(diào)組織”了的工作流或者服務將成為Web服務的主力,很多這些編程模型已經(jīng)出現(xiàn)了,比如SOAP和其它一些出現(xiàn)在.NET以前的技術,而且這些技術現(xiàn)在就是可用的,在正式的.NET產(chǎn)品以前就有了。
作為日益增多的Web服務體系的一種,.NET架構提供了與底層的系統(tǒng)API以及組件模型無關的編程模型。這也體現(xiàn)了Microsoft和其它一些公司在上個世紀90年代對分布式計算的看法,并且通過一個簡單的方法借助Internet得到了實現(xiàn)。服務以服務器上的程序的方式來實現(xiàn),這些程序使用標準的協(xié)議與調(diào)用的程序進行對話。
如果需要在一個系統(tǒng)中的一個進程中進行跨組件通訊,或者是跨越.NET架構系統(tǒng)或多個進程進行跨組件通訊,.NET架構可以使用SOAP或者或者是二進制協(xié)議進行通訊。如果進行跨系統(tǒng)環(huán)境(比如,和非.NET架構系統(tǒng))進行組件通訊,.NET架構可以只使用SOAP。在一個系統(tǒng)上運行的程序和服務仍然使用COM,不過以后慢慢將會變成使用.NET中的新類。
理論上,這些程序還可以是在UNIX上實現(xiàn)的Enterprise JavaBeans ,不過Microsoft沒有為此提供什么幫助。但是要記住.NET Web服務編程模型是不依賴.NET 系統(tǒng)編程模型的。
.NET 系統(tǒng)編程模型
作為.NET平臺的一部分,Microsoft也建立了新的系統(tǒng)編程模型,同樣在.NET架構上得到了實現(xiàn)。.NET 系統(tǒng)編程模型在長遠看將最終取代COM以及Windows API,這個現(xiàn)在還沒有定名的模型使用了新的基礎類。
.NET 架構(.NET Framework )包含了Microsft 新的通用語言運行時(Common Language Runtime , CLR),可以支持新的編程模型,并且首次將真正的面向對象的類結構作為了運行時環(huán)境的一部分。COM的界面為開發(fā)者提供的功能在.NET 架構中也是可用的。
.NET 系統(tǒng)編程模型是Microsoft私有的,雖然有些部分被開放,這要歸結于歐洲計算機制造商聯(lián)合會(European Computer Manufacturers Association , ECMA) 在C#標準化方面的努力。.NET 系統(tǒng)編程模型還包含了一些類和機制,可以將現(xiàn)存的程序轉化為Web服務,這樣可以簡化Web服務的開發(fā),雖然這樣的設置并不是十分有必要。
Microsoft的主席Bill Gates 將這種向.NET平臺的遷移比作和從DOS到Windows一樣意義重大。不過我們覺得更加準確的比較應該是這種遷移類似于Win16向Win32 的遷移。在向Windows的遷移中,DOS下的程序立刻成為了過去,而Win16的應用則在很大程度上和Win32兼容。
另一個比較好的比較是把.NET比作當初Mirosoft實現(xiàn)自己的Java時的情況,當時Microsoft將Java類和組件包裝為COM組件,Microsoft了解到了將兩種模型相互映射的好處,現(xiàn)在Microsoft開始發(fā)展這個還沒有名字的新的組件模型,他們再次將新舊模型進行了映射和包裝,舊模型就是COM,Microsoft在這里的真正意圖之一是去掉對Java的需求。(出處:www.dev-club.com)