.NET Framework 3.0框架功能特點概覽
.NET Framework推出至今,已經(jīng)更新了很多版本,在每一個版本出來的時候,都令開發(fā)人員萬分激動。因為每一新的版本都帶來了一個新的功能體驗。.NET Framework 3.0框架的推出也不例外。#t#
在2000年,微軟***發(fā)行了一個稱為.NET 1.0的產(chǎn)品的測試版本。其時.NET 1.0作為一個類框架,回答了開發(fā)者社區(qū)特別是Java社區(qū),向微軟提出的問題。當時,人們認為微軟已經(jīng)跟不上形勢甚至有些落后于時代了。結果,.NET框架的上市使許多人為之嘆服,如今大量的開發(fā)者都在積極地涌向.NET的懷抱。
現(xiàn)在,在幾年之后,.NET框架的第三個版本又要出現(xiàn)在眾人面前。這個緊緊與Windows Vista的發(fā)行綁定到一起的發(fā)行版本將是一個相當成熟的框架。這個新式框架的側(cè)重點在于,進一步拓寬.NET方案的應用范圍。但是,就象其前一個版本一樣,.NET 3.0仍然是龐大而復雜。
一、 .NET Framework 3.0框架與1.x及2.0版本的區(qū)別
.NET 3.0與1.x和2.0 .NET框架存在一些不同之處。前兩個框架專注于允許眾多不同的語言與同一類庫CLR進行通訊。CLR,從.NET 1.0中開始引入并在.NET 2.0中得到增強,它基于一個相對簡單的概念進行工作:通用語言運行時刻模型能夠執(zhí)行任何運行.NET框架的系統(tǒng)中的代碼。這對于每一位開發(fā)人員意味著,他們不再需要不斷地再學習針對不同技術的語言。例如,一個Windows表單應用程序的C#開發(fā)者可以把他的這種構建表單的知識用來編寫web頁面。同樣,一個Visual Basic.NET開發(fā)者能夠在編寫移動應用程序與編寫web服務之間順利切換。由CLR擔當一個"仲裁者"并實現(xiàn)相應的通訊。
.NET框架版本3.0在通用語言運行時刻方面并沒有改進。許多人對微軟在這方面進行指責,但是我認為,沒有必要在每次發(fā)行中都要對CLR進行改進。這個新發(fā)行的框架的重點在于,拓寬這種語言的技術吸引力。
有關擴展.NET框架方面已經(jīng)在以前的發(fā)行版本中進行演示了。前兩個框架發(fā)行中推出了使用ASP.NET構建web應用程序的新的方法。隨著1.1 .NET框架一同發(fā)行的移動.NET版本使得開發(fā)人員更為容易地構建智能手機及其它智能設備應用程序。這些框架的設計中總是提供給開發(fā)人員極大的可擴展性。圖1展示了.NET 3.0框架的棧式結構。
.NET Framework 3.0框架并沒有對現(xiàn)有技術作進一步的改進,而是引入了四種基本的新技術:
· Windows描述基礎(WPF)
· Windows通信基礎(WCF)
· Windows工作流基礎(WWF)
· Windows CardSpace(WCS)
這其中的每一種技術都將成為開發(fā)者用來實施新方案的奠基石。
二、 Windows描述基礎
Windows描述基礎(WPF)無可爭辯地成為以上四個新式基礎類集中最為有名的。這主要是由于下面兩點:
· 你最終只能看到一種WPF方案;
· 人們經(jīng)常把WPF與Adobe的Flash進行比較。
ASP.NET在.NET Framework 3.0框架之前的兩個版本發(fā)行期間引起了許多開發(fā)者的重視,因為你能夠清晰地了解你在使用什么工具進行開發(fā)。同樣,WPF也提供了一種一致的方案來構建編程模型,并且支持使用更為豐富的控件和設計技術來開發(fā)Windows程序。一個開發(fā)出來的WPF程序最終能夠被發(fā)行到桌面,Web以及智能設備上。
WPF的一個有趣的方面就是新式的名為XAML的XML標準編程語言,利用它能夠控制對象的布局。正是這種語言導致了與Flash之間的比較。從表面上看,二者極為相似,但是實際上WPF與Flash之間存在相當?shù)牟煌?。Flash是一個成熟的、可控制的、獨立于操作系統(tǒng)的封閉式框架。而相比之下,WPF允許你與操作系統(tǒng)及其它.NET框架技術進行集成。Flash和WPF其實是兩種非常不同的技術,二者服務于不同的市場需求但又存在一些"邊緣交叉"。
WPF已經(jīng)提供了一些工具使你用來構建方案。其中,微軟的Expression系列工具就包含了一些新的設計工具,它們允許你創(chuàng)建演示程序、網(wǎng)站以及交互式描述。
三、 Windows通信基礎
Windows通信基礎(WCF)的核心目的是,允許程序與同一臺計算機或網(wǎng)絡上的或跨越互聯(lián)網(wǎng)的其它程序?qū)崿F(xiàn)通訊。WCF編程模型把web服務,.NET遠程技術,分布式事務和消息隊列統(tǒng)一到單個面向服務的編程模型中,從而實現(xiàn)真正意義上的分布式計算。
WCF的設計在于順應面向服務的架構原則以支持分布式計算;在這種環(huán)境中,服務為消費者所使用,客戶可以同時消費多個服務,并且同一個服務能夠為多個客戶同時消費。典型地,服務都會提供一個WSDL接口,任何WCF客戶端都能夠使用該接口來消費該服務,而根本不用慮及該服務所宿主的平臺。WCF實現(xiàn)了許多高級web服務標準,例如WS-尋址,WS-可靠性和WS-安全性。盡管微軟是Web服務互操作性組織(WS-I)的成員之一,但是,問題至今還不明朗-到底微軟會全面支持多少WS-I規(guī)范。
四、 Windows工作流基礎
Windows工作流基礎(WWF)是一種定義、執(zhí)行和管理工作流的微軟技術。工作流由一系列的活動組成;開發(fā)者能夠編寫他們自己的域特定的活動,然后把它們應用于工作流中。.NET Framework 3.0框架/Windows工作流基礎還提供了一組涉及若干控制流構建方面的通用目的的活動。
Windows工作流基礎中還包括了Visual Studio 2005擴展。這些擴展包含一個允許用戶設計工作流的可視化工作流設計器,一個支持用戶調(diào)試工作流的可視化調(diào)試器,還有一個支持用戶在Visual Studio 2005內(nèi)編譯工作流的工程系統(tǒng)。
注意,你可以在Windows SharePoint Server 2007 Portal的發(fā)行中看到一個有關于WWF的早期的示例程序。
五、 Windows CardSpace
你是誰?這是一個經(jīng)常需要解決的問題-而且也是一個令開發(fā)者每天都頭疼的問題。當前,我們已經(jīng)擁有了例如活動目錄,通行證和Windows會員服務等方案;我們能夠通過這些技術并借助于用戶名和口令來標識某個人。目前,這些方案中存在的問題在于,它們實質(zhì)上相當松散而且安全性差。你會經(jīng)常聽到有人能夠共享用戶名和口令嗎?即使當這種情況發(fā)生時,你也根本不知道到底被認證的人是誰。
如今,新的Windows CardSpace在這個問題上提供了一種新的解決方案。不同于以前在管理安全方面的嘗試,現(xiàn)在,微軟使用CardSpace采取了一種大膽的步驟,從而實現(xiàn)了一種幾乎是全新的嘗試-向微軟以外的安全專家咨詢:"安全究竟是什么樣的?"
回答很簡單:任何用戶都能夠創(chuàng)建并且共享他的或她的唯一的身份。Windows CardSpace是這種新方案的微軟版本。好消息是,CardSpace工作在與其它公司所開發(fā)的相同的原則基礎上。微軟可能是***個,但是許多公司也都是基于這一技術的。例如,微軟已經(jīng)發(fā)行了展示把CardSpace集成到一個PHP應用程序中的示例代碼(僅有200行)。
CardSpace及相應的新式支持技術將改變你到一個應用程序的認證方式,不管這個程序是基于Web,你的手機或你的桌面程序。這一服務將會真正幫助弄清楚你是誰,而不是由你自己宣稱你是誰。在保護用戶數(shù)據(jù)的私有性方面,這的確是一個好東西。
六、 構建.NET 3.0解決方案
你可能已經(jīng)預料到,構建.NET 3.0解決方案的主要工具就是Visual Studio。Visual Studio的下一個發(fā)行版本,其當前相應的CTP代碼名為"Orcas",預計將于2007年發(fā)行。除了開發(fā)工具之外,一組新的支持Windows描述基礎的設計器工具(冠以名稱"Expression")正在發(fā)行中。
總的來看,微軟在.NET Framework 3.0框架背后儲存了"大量能量",我估計在2007年將會發(fā)行或宣布許多精品工具。
七、 集成Vista與Windows XP
請牢記這一點:.NET框架并非操作系統(tǒng)本身。這個看上去非常明顯的結論卻隨著Windows XP的發(fā)行被淡忘了許多。到目前為止,Windows XP已經(jīng)成為利用.NET框架技術的占優(yōu)勢的桌面OS。.NET 1.x和2.0都被設計可以運行于Windows XP之上。一個容易被人們忽視的一點就是,.NET框架并沒有被綁定到某一個操作系統(tǒng)。.NET 1.x和2.0都可以運行于Windows 2000和Windows 2003/R2之上。你所要做的就是利用該框架開發(fā)出一個能夠運行于多個系統(tǒng)上的應用程序。
挑戰(zhàn)在于,作為一個開發(fā)者,利用非特定于OS的框架類進行開發(fā)可能是***誘惑力的。這一點已經(jīng)從許多Windows應用程序中得到證實,這些程序宣稱支持.NET框架但是其實卻利用了Windows XP特定的工具,從而使其應用程序僅能運行于一個操作系統(tǒng)之上。事實證明,這里所推薦的許多混合方案無法運行于Windows 2000操作系統(tǒng)上。
.NET 3.0類似前一個框架的一個地方就是,它能夠運行于多個操作系統(tǒng),例如Windows XP,Windows 2003/R2和Windows Vista等之上。到目前為止,我還未曾聽到有關于針對Windows 2000或任何其它Windows操作系統(tǒng)發(fā)行.NET 3.0的任何討論。
八、 進一步挖掘.NET Framework 3.0框架寶藏
就象微軟所有以前的.NET框架發(fā)行版本一樣,當前發(fā)行的3.0版本也是重量級的。因此,界時市面上將會出現(xiàn)了許多的有關于介紹每一種基礎的書籍,當然還會伴隨成百上千篇的文章。這都是將來的事情。今天,有關這方面的消息仍然相當缺乏而且難于捕捉;不過,最值得參考的幾個地方有:MSDN, Channel9.com,http://www.netfx3.com,以及針對.NET 3.0.100的官方新聞站點。
Windows描述基礎***次為設計者提供了一種方案允許其直接與開發(fā)者進行交互。如以往一樣,開發(fā)者還是首先需要進一步學習大量的新技術。***,.NET 3.0提供了一組基礎類用于實現(xiàn)通信與工作流的集成。另外,Windows CardSpace所提供的新的認證方案還有待于商界通過顧客敏感的數(shù)據(jù)去進一步驗證。
請睜大你的眼睛用你的智慧去擁抱新的.NET Framework 3.0框架吧。其中存在許多十分緊迫的技術等待你去進行嚴肅地分析。當然,***的辦法還是通過試用它來更好地理解.NET 3.0并進而確定如何使用它來構建更佳的方案。