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

Microsoft的.NET 策略

[摘要]Microsoft正在廣泛地使用(也有人說是濫用)其.NET 標(biāo)記,這種情況使不少人被.NET的各種不同的概念搞糊涂了。這里我們可以先把.NET的幾個(gè)主要的意義分清楚:.NET是軟件成為一種服務(wù)的轉(zhuǎn)移:.NET在這個(gè)方面的意義是最被廣泛接受和理解的!败浖褪欠⻊(wù)”的歷年最初是在1997年左右由O...

Microsoft正在廣泛地使用(也有人說是濫用)其.NET 標(biāo)記,這種情況使不少人被.NET的各種不同的概念搞糊涂了。這里我們可以先把.NET的幾個(gè)主要的意義分清楚:

.NET是軟件成為一種服務(wù)的轉(zhuǎn)移:
.NET在這個(gè)方面的意義是最被廣泛接受和理解的!败浖褪欠⻊(wù)”的歷年最初是在1997年左右由Oracle 的CEO Larry Ellison 以及SUN的CEO Scott McNealy 在網(wǎng)絡(luò)計(jì)算機(jī)的概念大行其道的時(shí)候提出的。不過Oracle 和SUN 并沒有真正將這個(gè)概念變?yōu)楝F(xiàn)實(shí),他們的視角更多的集中于資源集中化方面。不過,當(dāng)初聽到Ellison 和McNealy這番見解的公司——當(dāng)然包括Microsoft,也認(rèn)識(shí)到了這種見解說出了軟件產(chǎn)業(yè)面臨的一個(gè)巨大改變,.NET 則是Microsoft 對(duì)這種概念,這種變化作出的自己的反應(yīng)。

.NET是一個(gè)新的編程模型——也就是說是Internet 平臺(tái):
Micorsoft 正在趨向于將.NET看作一個(gè)系統(tǒng)。在表面下,它包含了兩種不同的編程模型:一個(gè)是Web服務(wù)編程模型,另一個(gè)是系統(tǒng)編程模型。

Microsoft 開始把.NET系統(tǒng)編程模型作為.NET整體的一個(gè)組成部分。計(jì)劃最終以此代替現(xiàn)有的組件對(duì)象模型(Component Object Model,COM) 以及Windows應(yīng)用程序編程接口(APIs),這個(gè)現(xiàn)在還沒有最終正式定名的模型使用一系列新的基礎(chǔ)類。

.NET系統(tǒng)編程模型是Microsoft私有的。 .NET 架構(gòu)(.NET Framework )則包含了Microsft 的通用語言運(yùn)行時(shí)(Common Language Runtime , CLR),CLR實(shí)現(xiàn)了這種新的編程模型。它還包含了類以及各種機(jī)制可以把一個(gè)應(yīng)用程序包裝為一個(gè)Web服務(wù),這樣可以簡(jiǎn)化Web服務(wù)的開發(fā)。另外,Microsoft 還發(fā)布了新的語言,C# (發(fā)音是“C sharp”)

最終,Microsoft正在計(jì)劃發(fā)布新的集成開發(fā)環(huán)境(IDE),也就是大家都知道的Visual Studio.NET (VS.NET),來具體實(shí)現(xiàn)上述程序開發(fā)策略。

.NET 是Microsoft 新的公司戰(zhàn)略
在這個(gè)意義上,.NET實(shí)際上是Microsoft現(xiàn)有的所有產(chǎn)品,技術(shù),策略的共同品牌,不過這個(gè).NET品牌的使用是非常松散的。比如,Microsoft在2000年9月發(fā)布了其.NET企業(yè)服務(wù)器產(chǎn)品(比如Windows 2000 Data Center Server 以及 Application Center) ,這些產(chǎn)品其實(shí)對(duì)于軟件就是服務(wù)的理念或者是其新的編程模型沒有多大的幫助。

.NET是對(duì)抗法院的拆分命令的一個(gè)方法
Microsoft 的.NET 策略在很多的領(lǐng)域都還是不明朗的。特別不明朗的就是Microsoft的操作系統(tǒng)打包策略,也許未來支持.NET的Windows版本和“經(jīng)典”的Windows是分開的。我們相信在這方面缺乏具體信息的情況是Micorsoft 的策略,這樣Microsoft 如果未來在司法部的官司中被迫拆分,還有一定的回旋余地。

.NET 的用戶體驗(yàn)

關(guān)于.NET的很多先期工作都要集中在下層構(gòu)造以及工具這些方面,這顯然是必須的。不過Microsoft也很重視.NET帶來的新的用戶體驗(yàn)。當(dāng)初Windows的成功固然是得益與開發(fā)者的大力支持,但是用戶體驗(yàn)在其成功的過程中也扮演了重要的角色。我們認(rèn)為相應(yīng)的模式也會(huì)發(fā)生在.NET上,其核心焦點(diǎn)則是Microsoft稱為"智能客戶端(smart clients)" 的概念,智能客戶端即不是純粹的瘦客戶端也不是胖客戶端——作為用戶體驗(yàn)的技術(shù)核心,.NET將有多種用戶體驗(yàn)方面的“品牌標(biāo)志”。

兩個(gè)這樣的品牌標(biāo)志——MSN 和 bCentral 有著共同的特性:它們都是從一個(gè)站點(diǎn)開始,使用一個(gè)瘦的瀏覽器客戶端進(jìn)行服務(wù)。這些客戶端更加智能些,比如MSN Explorer。

VS.NET 以及 Office.NET 也有同樣的特征,它們都是功能豐富的客戶端程序,可以和Internet和服務(wù)進(jìn)行一些交互。我們期待這些產(chǎn)品發(fā)布的時(shí)候可以支持更多Microsoft 和其它公司的服務(wù)。如果.NET充分發(fā)揮了其潛力,我們估計(jì)可以看到Microsoft以外的公司發(fā)布這樣的產(chǎn)品。

.NET 描述了兩種編程模型

在技術(shù)層面上,.NET平臺(tái)的基礎(chǔ)包括:擴(kuò)展置標(biāo)語言,也就是我們熟悉的XML;簡(jiǎn)單對(duì)象操作協(xié)議(Simple Object Access Protocol ,SOAP);以及將未來的Internet 視為面向各種設(shè)備的服務(wù)的觀念。這些高層次的描述主要是面向這個(gè)新的模型中最明顯的方面——也就是實(shí)現(xiàn)Web服務(wù)的部分。

然而,在內(nèi)部,.NET平臺(tái)建筑于.NET架構(gòu)之上,.NET架構(gòu)提供了實(shí)現(xiàn)這些概念的API的底層機(jī)制。.NET架構(gòu)也經(jīng)歷了.NET本身的問題——就是它被用于描述太多的事情了。特別是,.NET 描述了兩種新的不同的編程模型,他們構(gòu)成了概念的基礎(chǔ):這就是Web服務(wù)編程模型(Web services programming model )以及系統(tǒng)編程模型(system programming model)。

企業(yè)一定要認(rèn)識(shí)到,組成.NET的是兩個(gè)相互獨(dú)立的編程模型。Web服務(wù)編程模型與底層的系統(tǒng)編程模型是相互獨(dú)立的。這些編程模型可以也應(yīng)該分別使用。

.NET Web服務(wù)編程模型
.NETWeb服務(wù)編程模型大體上就是通過Internet的各種標(biāo)準(zhǔn)來實(shí)現(xiàn)各種接口。這是一組以Internet標(biāo)準(zhǔn)為基礎(chǔ)的松散的模型,使用HTTP和其它的協(xié)議作為主要的通訊機(jī)制,同時(shí),使用了XML,SOAP,Web服務(wù)描述語言(Web Services Description Language,WSDL),以及通用描述,發(fā)現(xiàn),集成(Universal Description, Discovery, and Integration , 簡(jiǎn)稱UDDI)。最初,多數(shù)這種編程模型的使用將采取請(qǐng)求/應(yīng)答的模式。

在2003年,Web服務(wù)的主要形式將是組件調(diào)用以及信息推送,這些在所有Web服務(wù)中占到75%以上。更長(zhǎng)遠(yuǎn)的未來,我們認(rèn)為“協(xié)調(diào)組織”了的工作流或者服務(wù)將成為Web服務(wù)的主力,很多這些編程模型已經(jīng)出現(xiàn)了,比如SOAP和其它一些出現(xiàn)在.NET以前的技術(shù),而且這些技術(shù)現(xiàn)在就是可用的,在正式的.NET產(chǎn)品以前就有了。

作為日益增多的Web服務(wù)體系的一種,.NET架構(gòu)提供了與底層的系統(tǒng)API以及組件模型無關(guān)的編程模型。這也體現(xiàn)了Microsoft和其它一些公司在上個(gè)世紀(jì)90年代對(duì)分布式計(jì)算的看法,并且通過一個(gè)簡(jiǎn)單的方法借助Internet得到了實(shí)現(xiàn)。服務(wù)以服務(wù)器上的程序的方式來實(shí)現(xiàn),這些程序使用標(biāo)準(zhǔn)的協(xié)議與調(diào)用的程序進(jìn)行對(duì)話。

如果需要在一個(gè)系統(tǒng)中的一個(gè)進(jìn)程中進(jìn)行跨組件通訊,或者是跨越.NET架構(gòu)系統(tǒng)或多個(gè)進(jìn)程進(jìn)行跨組件通訊,.NET架構(gòu)可以使用SOAP或者或者是二進(jìn)制協(xié)議進(jìn)行通訊。如果進(jìn)行跨系統(tǒng)環(huán)境(比如,和非.NET架構(gòu)系統(tǒng))進(jìn)行組件通訊,.NET架構(gòu)可以只使用SOAP。在一個(gè)系統(tǒng)上運(yùn)行的程序和服務(wù)仍然使用COM,不過以后慢慢將會(huì)變成使用.NET中的新類。

理論上,這些程序還可以是在UNIX上實(shí)現(xiàn)的Enterprise JavaBeans ,不過Microsoft沒有為此提供什么幫助。但是要記住.NET Web服務(wù)編程模型是不依賴.NET 系統(tǒng)編程模型的。

.NET 系統(tǒng)編程模型
作為.NET平臺(tái)的一部分,Microsoft也建立了新的系統(tǒng)編程模型,同樣在.NET架構(gòu)上得到了實(shí)現(xiàn)。.NET 系統(tǒng)編程模型在長(zhǎng)遠(yuǎn)看將最終取代COM以及Windows API,這個(gè)現(xiàn)在還沒有定名的模型使用了新的基礎(chǔ)類。

.NET 架構(gòu)(.NET Framework )包含了Microsft 新的通用語言運(yùn)行時(shí)(Common Language Runtime , CLR),可以支持新的編程模型,并且首次將真正的面向?qū)ο蟮念惤Y(jié)構(gòu)作為了運(yùn)行時(shí)環(huán)境的一部分。COM的界面為開發(fā)者提供的功能在.NET 架構(gòu)中也是可用的。

.NET 系統(tǒng)編程模型是Microsoft私有的,雖然有些部分被開放,這要?dú)w結(jié)于歐洲計(jì)算機(jī)制造商聯(lián)合會(huì)(European Computer Manufacturers Association , ECMA) 在C#標(biāo)準(zhǔn)化方面的努力。.NET 系統(tǒng)編程模型還包含了一些類和機(jī)制,可以將現(xiàn)存的程序轉(zhuǎn)化為Web服務(wù),這樣可以簡(jiǎn)化Web服務(wù)的開發(fā),雖然這樣的設(shè)置并不是十分有必要。

Microsoft的主席Bill Gates 將這種向.NET平臺(tái)的遷移比作和從DOS到Windows一樣意義重大。不過我們覺得更加準(zhǔn)確的比較應(yīng)該是這種遷移類似于Win16向Win32 的遷移。在向Windows的遷移中,DOS下的程序立刻成為了過去,而Win16的應(yīng)用則在很大程度上和Win32兼容。

另一個(gè)比較好的比較是把.NET比作當(dāng)初Mirosoft實(shí)現(xiàn)自己的Java時(shí)的情況,當(dāng)時(shí)Microsoft將Java類和組件包裝為COM組件,Microsoft了解到了將兩種模型相互映射的好處,現(xiàn)在Microsoft開始發(fā)展這個(gè)還沒有名字的新的組件模型,他們?cè)俅螌⑿屡f模型進(jìn)行了映射和包裝,舊模型就是COM,Microsoft在這里的真正意圖之一是去掉對(duì)Java的需求。(出處:www.dev-club.com)


標(biāo)簽:Microsoft的.NET 策略 

相關(guān)文章