.NET Framework 3.0框架慨述

2010-08-28 10:50:18來源:西部e網(wǎng)作者:

  本文將簡(jiǎn)要介紹微軟.NET 3.0,在與以前的版本進(jìn)行比較的同時(shí)著重強(qiáng)調(diào).NET 3.0的一些新特征。

  在2000年,微軟首次發(fā)行了一個(gè)稱為.NET 1.0的產(chǎn)品的測(cè)試版本。其時(shí).NET 1.0作為一個(gè)類框架,回答了開發(fā)者社區(qū)特別是Java社區(qū),向微軟提出的問題。當(dāng)時(shí),人們認(rèn)為微軟已經(jīng)跟不上形勢(shì)甚至有些落后于時(shí)代了。結(jié)果,.NET框架的上市使許多人為之嘆服,如今大量的開發(fā)者都在積極地涌向.NET的懷抱。

  現(xiàn)在,在幾年之后,.NET框架的第三個(gè)版本又要出現(xiàn)在眾人面前。這個(gè)緊緊與Windows Vista的發(fā)行綁定到一起的發(fā)行版本將是一個(gè)相當(dāng)成熟的框架。這個(gè)新式框架的側(cè)重點(diǎn)在于,進(jìn)一步拓寬.NET方案的應(yīng)用范圍。但是,就象其前一個(gè)版本一樣,.NET 3.0仍然是龐大而復(fù)雜。

  一、 .NET 3.0與1.x及2.0版本的區(qū)別

  .NET 3.0與1.x和2.0 .NET框架存在一些不同之處。前兩個(gè)框架專注于允許眾多不同的語言與同一類庫CLR進(jìn)行通訊。CLR,從.NET 1.0中開始引入并在.NET 2.0中得到增強(qiáng),它基于一個(gè)相對(duì)簡(jiǎn)單的概念進(jìn)行工作:通用語言運(yùn)行時(shí)刻模型能夠執(zhí)行任何運(yùn)行.NET框架的系統(tǒng)中的代碼。這對(duì)于每一位開發(fā)人員意味著,他們不再需要不斷地再學(xué)習(xí)針對(duì)不同技術(shù)的語言。例如,一個(gè)Windows表單應(yīng)用程序的C#開發(fā)者可以把他的這種構(gòu)建表單的知識(shí)用來編寫web頁面。同樣,一個(gè)Visual Basic.NET開發(fā)者能夠在編寫移動(dòng)應(yīng)用程序與編寫web服務(wù)之間順利切換。由CLR擔(dān)當(dāng)一個(gè)"仲裁者"并實(shí)現(xiàn)相應(yīng)的通訊。

  .NET框架版本3.0在通用語言運(yùn)行時(shí)刻方面并沒有改進(jìn)。許多人對(duì)微軟在這方面進(jìn)行指責(zé),但是我認(rèn)為,沒有必要在每次發(fā)行中都要對(duì)CLR進(jìn)行改進(jìn)。這個(gè)新發(fā)行的框架的重點(diǎn)在于,拓寬這種語言的技術(shù)吸引力。

  有關(guān)擴(kuò)展.NET框架方面已經(jīng)在以前的發(fā)行版本中進(jìn)行演示了。前兩個(gè)框架發(fā)行中推出了使用ASP.NET構(gòu)建web應(yīng)用程序的新的方法。隨著1.1 .NET框架一同發(fā)行的移動(dòng).NET版本使得開發(fā)人員更為容易地構(gòu)建智能手機(jī)及其它智能設(shè)備應(yīng)用程序。這些框架的設(shè)計(jì)中總是提供給開發(fā)人員極大的可擴(kuò)展性。圖1展示了.NET 3.0框架的棧式結(jié)構(gòu)。

答疑解惑.NETFramework3.0框架慨述
圖1..NET 3.0框架結(jié)構(gòu)

  .NET 3.0框架并沒有對(duì)現(xiàn)有技術(shù)作進(jìn)一步的改進(jìn),而是引入了四種基本的新技術(shù):

  · Windows描述基礎(chǔ)(WPF)

  · Windows通信基礎(chǔ)(WCF)

  · Windows工作流基礎(chǔ)(WWF)

  · Windows CardSpace(WCS)

  這其中的每一種技術(shù)都將成為開發(fā)者用來實(shí)施新方案的奠基石。

  二、 Windows描述基礎(chǔ)

  Windows描述基礎(chǔ)(WPF)無可爭(zhēng)辯地成為以上四個(gè)新式基礎(chǔ)類集中最為有名的。這主要是由于下面兩點(diǎn):

  · 你最終只能看到一種WPF方案;

  · 人們經(jīng)常把WPF與Adobe的Flash進(jìn)行比較。

  ASP.NET在.NET框架的前兩個(gè)版本發(fā)行期間引起了許多開發(fā)者的重視,因?yàn)槟隳軌蚯逦亓私饽阍谑褂檬裁垂ぞ哌M(jìn)行開發(fā)。同樣,WPF也提供了一種一致的方案來構(gòu)建編程模型,并且支持使用更為豐富的控件和設(shè)計(jì)技術(shù)來開發(fā)Windows程序。一個(gè)開發(fā)出來的WPF程序最終能夠被發(fā)行到桌面,Web以及智能設(shè)備上。

  WPF的一個(gè)有趣的方面就是新式的名為XAML的XML標(biāo)準(zhǔn)編程語言,利用它能夠控制對(duì)象的布局。正是這種語言導(dǎo)致了與Flash之間的比較。從表面上看,二者極為相似,但是實(shí)際上WPF與Flash之間存在相當(dāng)?shù)牟煌。Flash是一個(gè)成熟的、可控制的、獨(dú)立于操作系統(tǒng)的封閉式框架。而相比之下,WPF允許你與操作系統(tǒng)及其它.NET框架技術(shù)進(jìn)行集成。Flash和WPF其實(shí)是兩種非常不同的技術(shù),二者服務(wù)于不同的市場(chǎng)需求但又存在一些"邊緣交叉"。

  WPF已經(jīng)提供了一些工具使你用來構(gòu)建方案。其中,微軟的Expression系列工具就包含了一些新的設(shè)計(jì)工具,它們?cè)试S你創(chuàng)建演示程序、網(wǎng)站以及交互式描述。

  三、 Windows通信基礎(chǔ)

  Windows通信基礎(chǔ)(WCF)的核心目的是,允許程序與同一臺(tái)計(jì)算機(jī)或網(wǎng)絡(luò)上的或跨越互聯(lián)網(wǎng)的其它程序?qū)崿F(xiàn)通訊。WCF編程模型把web服務(wù),.NET遠(yuǎn)程技術(shù),分布式事務(wù)和消息隊(duì)列統(tǒng)一到單個(gè)面向服務(wù)的編程模型中,從而實(shí)現(xiàn)真正意義上的分布式計(jì)算。

  WCF的設(shè)計(jì)在于順應(yīng)面向服務(wù)的架構(gòu)原則以支持分布式計(jì)算;在這種環(huán)境中,服務(wù)為消費(fèi)者所使用,客戶可以同時(shí)消費(fèi)多個(gè)服務(wù),并且同一個(gè)服務(wù)能夠?yàn)槎鄠(gè)客戶同時(shí)消費(fèi)。典型地,服務(wù)都會(huì)提供一個(gè)WSDL接口,任何WCF客戶端都能夠使用該接口來消費(fèi)該服務(wù),而根本不用慮及該服務(wù)所宿主的平臺(tái)。WCF實(shí)現(xiàn)了許多高級(jí)web服務(wù)標(biāo)準(zhǔn),例如WS-尋址,WS-可靠性和WS-安全性。盡管微軟是Web服務(wù)互操作性組織(WS-I)的成員之一,但是,問題至今還不明朗-到底微軟會(huì)全面支持多少WS-I規(guī)范。

  四、 Windows工作流基礎(chǔ)

  Windows工作流基礎(chǔ)(WWF)是一種定義、執(zhí)行和管理工作流的微軟技術(shù)。工作流由一系列的活動(dòng)組成;開發(fā)者能夠編寫他們自己的域特定的活動(dòng),然后把它們應(yīng)用于工作流中。.NET框架3.0/Windows工作流基礎(chǔ)還提供了一組涉及若干控制流構(gòu)建方面的通用目的的活動(dòng)。

  Windows工作流基礎(chǔ)中還包括了Visual Studio 2005擴(kuò)展。這些擴(kuò)展包含一個(gè)允許用戶設(shè)計(jì)工作流的可視化工作流設(shè)計(jì)器,一個(gè)支持用戶調(diào)試工作流的可視化調(diào)試器,還有一個(gè)支持用戶在Visual Studio 2005內(nèi)編譯工作流的工程系統(tǒng)。

  注意,你可以在Windows SharePoint Server 2007 Portal的發(fā)行中看到一個(gè)有關(guān)于WWF的早期的示例程序。

  五、 Windows CardSpace

  你是誰?這是一個(gè)經(jīng)常需要解決的問題-而且也是一個(gè)令開發(fā)者每天都頭疼的問題。當(dāng)前,我們已經(jīng)擁有了例如活動(dòng)目錄,通行證和Windows會(huì)員服務(wù)等方案;我們能夠通過這些技術(shù)并借助于用戶名和口令來標(biāo)識(shí)某個(gè)人。目前,這些方案中存在的問題在于,它們實(shí)質(zhì)上相當(dāng)松散而且安全性差。你會(huì)經(jīng)常聽到有人能夠共享用戶名和口令嗎?即使當(dāng)這種情況發(fā)生時(shí),你也根本不知道到底被認(rèn)證的人是誰。

  如今,新的Windows CardSpace在這個(gè)問題上提供了一種新的解決方案。不同于以前在管理安全方面的嘗試,現(xiàn)在,微軟使用CardSpace采取了一種大膽的步驟,從而實(shí)現(xiàn)了一種幾乎是全新的嘗試-向微軟以外的安全專家咨詢:"安全究竟是什么樣的?"

  回答很簡(jiǎn)單:任何用戶都能夠創(chuàng)建并且共享他的或她的唯一的身份。Windows CardSpace是這種新方案的微軟版本。好消息是,CardSpace工作在與其它公司所開發(fā)的相同的原則基礎(chǔ)上。微軟可能是第一個(gè),但是許多公司也都是基于這一技術(shù)的。例如,微軟已經(jīng)發(fā)行了展示把CardSpace集成到一個(gè)PHP應(yīng)用程序中的示例代碼(僅有200行)。

  CardSpace及相應(yīng)的新式支持技術(shù)將改變你到一個(gè)應(yīng)用程序的認(rèn)證方式,不管這個(gè)程序是基于Web,你的手機(jī)或你的桌面程序。這一服務(wù)將會(huì)真正幫助弄清楚你是誰,而不是由你自己宣稱你是誰。在保護(hù)用戶數(shù)據(jù)的私有性方面,這的確是一個(gè)好東西。

  六、 構(gòu)建.NET 3.0解決方案

  你可能已經(jīng)預(yù)料到,構(gòu)建.NET 3.0解決方案的主要工具就是Visual Studio。Visual Studio的下一個(gè)發(fā)行版本,其當(dāng)前相應(yīng)的CTP代碼名為"Orcas",預(yù)計(jì)將于2007年發(fā)行。除了開發(fā)工具之外,一組新的支持Windows描述基礎(chǔ)的設(shè)計(jì)器工具(冠以名稱"Expression")正在發(fā)行中。

  總的來看,微軟在.NET 3.0背后儲(chǔ)存了"大量能量",我估計(jì)在2007年將會(huì)發(fā)行或宣布許多精品工具。

  七、 集成Vista與Windows XP

  請(qǐng)牢記這一點(diǎn):.NET框架并非操作系統(tǒng)本身。這個(gè)看上去非常明顯的結(jié)論卻隨著Windows XP的發(fā)行被淡忘了許多。到目前為止,Windows XP已經(jīng)成為利用.NET框架技術(shù)的占優(yōu)勢(shì)的桌面OS。.NET 1.x和2.0都被設(shè)計(jì)可以運(yùn)行于Windows XP之上。一個(gè)容易被人們忽視的一點(diǎn)就是,.NET框架并沒有被綁定到某一個(gè)操作系統(tǒng)。.NET 1.x和2.0都可以運(yùn)行于Windows 2000和Windows 2003/R2之上。你所要做的就是利用該框架開發(fā)出一個(gè)能夠運(yùn)行于多個(gè)系統(tǒng)上的應(yīng)用程序。

  挑戰(zhàn)在于,作為一個(gè)開發(fā)者,利用非特定于OS的框架類進(jìn)行開發(fā)可能是極具誘惑力的。這一點(diǎn)已經(jīng)從許多Windows應(yīng)用程序中得到證實(shí),這些程序宣稱支持.NET框架但是其實(shí)卻利用了Windows XP特定的工具,從而使其應(yīng)用程序僅能運(yùn)行于一個(gè)操作系統(tǒng)之上。事實(shí)證明,這里所推薦的許多混合方案無法運(yùn)行于Windows 2000操作系統(tǒng)上。

  .NET 3.0類似前一個(gè)框架的一個(gè)地方就是,它能夠運(yùn)行于多個(gè)操作系統(tǒng),例如Windows XP,Windows 2003/R2和Windows Vista等之上。到目前為止,我還未曾聽到有關(guān)于針對(duì)Windows 2000或任何其它Windows操作系統(tǒng)發(fā)行.NET 3.0的任何討論。

  八、 進(jìn)一步挖掘.NET 3.0寶藏

  就象微軟所有以前的.NET框架發(fā)行版本一樣,當(dāng)前發(fā)行的3.0版本也是重量級(jí)的。因此,界時(shí)市面上將會(huì)出現(xiàn)了許多的有關(guān)于介紹每一種基礎(chǔ)的書籍,當(dāng)然還會(huì)伴隨成百上千篇的文章。這都是將來的事情。今天,有關(guān)這方面的消息仍然相當(dāng)缺乏而且難于捕捉;不過,最值得參考的幾個(gè)地方有:MSDN,Channel9.com,http://www.netfx3.com,以及針對(duì).NET 3.0.100的官方新聞?wù)军c(diǎn)。

  Windows描述基礎(chǔ)第一次為設(shè)計(jì)者提供了一種方案允許其直接與開發(fā)者進(jìn)行交互。如以往一樣,開發(fā)者還是首先需要進(jìn)一步學(xué)習(xí)大量的新技術(shù)。最后,.NET 3.0提供了一組基礎(chǔ)類用于實(shí)現(xiàn)通信與工作流的集成。另外,Windows CardSpace所提供的新的認(rèn)證方案還有待于商界通過顧客敏感的數(shù)據(jù)去進(jìn)一步驗(yàn)證。

  請(qǐng)睜大你的眼睛用你的智慧去擁抱新的.NET 3.0吧。其中存在許多十分緊迫的技術(shù)等待你去進(jìn)行嚴(yán)肅地分析。當(dāng)然,最好的辦法還是通過試用它來更好地理解.NET 3.0并進(jìn)而確定如何使用它來構(gòu)建更佳的方案。
關(guān)鍵詞:dotnet