微軟.NET的最新版本,.NET Framework 3.0,為開發(fā)下一代業(yè)務(wù)解決方案軟件系統(tǒng)開啟了新的可能。它的設(shè)計(jì)目標(biāo)是:提高生產(chǎn)力,降低基礎(chǔ)設(shè)施復(fù)雜性,提供一個(gè)一致的元系統(tǒng),讓企業(yè)級(jí)服務(wù)、工作流解決方案和用戶體驗(yàn)軟件系統(tǒng)的開發(fā)更容易。 在我和大量的構(gòu)架師討論的過程中,我聽到解決方案構(gòu)架師非常關(guān)心安全、開放的標(biāo)準(zhǔn)、互操作性、面向服務(wù)的構(gòu)架、關(guān)鍵技術(shù)間的關(guān)系(例如Workflow Foundation和Biztalk)和生產(chǎn)力。在這篇文章當(dāng)中,我將按照構(gòu)架師社區(qū)最感興趣的領(lǐng)域來逐一介紹.NET 3.0。 .NET的相關(guān)版本 自從微軟推出第一個(gè)版本的.NET Framework,已經(jīng)過去差不多6年了。3.0 是第一個(gè)隨操作系統(tǒng)發(fā)布的框架,它附帶在每個(gè)Windows Vista中,也可以支持Windows XP SP2 和 Windows Server 2003。直到.NET 3.0,以前的每個(gè)版本的.NET Framework都會(huì)伴隨著一個(gè)新的通用語言運(yùn)行時(shí)(Common Language Runtime),后面將簡稱為CLR。但這次,微軟沒有修改.NET Framework 3.0 版本中的CLR(譯者注:而是基于.NET 2.0的CLR),這一點(diǎn)需要重點(diǎn)注意。
由于.NET 2.0和3.0共享同樣的CLR,在.NET 2.0中編寫的任何程序都可以運(yùn)行于.NET 3.0中,這是和以前版本的一個(gè)重要而顯著的區(qū)別。以改變來看,對(duì)于那些喜歡代數(shù)方程的人來說,它們之間的關(guān)系可以總結(jié)為下面的公式: .NET 3.0 = .NET 2.0 + WCF + WPF + WCS + WF 我會(huì)為每個(gè)縮寫提供一個(gè)定義,不過當(dāng)你任何時(shí)候?qū)?NET 2.0和3.0之間的關(guān)系感到困惑時(shí),只要記住上面的這個(gè)方程式就好了。.NET 3.0其后的哲學(xué)之一就是提供一些功能讓“基礎(chǔ)設(shè)施結(jié)構(gòu)”成為框架的一部分。它讓你可以只關(guān)注你的關(guān)鍵的業(yè)務(wù)問題。 .NET Framework 3.0通過4個(gè)關(guān)鍵的、以標(biāo)準(zhǔn)為基礎(chǔ)的支柱來對(duì)應(yīng)我們客戶要求和驗(yàn)證的領(lǐng)域,以達(dá)成上述目標(biāo)。它也包含了一個(gè)重要的叫做XAML的新語言。XAML是一個(gè)基于XML的聲明性語言,通過XML定義對(duì)象和它們的屬性,允許客戶聲明性地開發(fā)工作流(WF)和身臨其境的用戶體驗(yàn)(WPF)。讓我們來瀏覽一下.NET 3.0框架中關(guān)鍵支柱的更詳細(xì)內(nèi)容。 Windows Communication Foundation (WCF) WCF允許你通過提供一個(gè)基于標(biāo)準(zhǔn)的框架和一個(gè)組合的架構(gòu)來構(gòu)建服務(wù)。WCF的3個(gè)關(guān)鍵設(shè)計(jì)理念是互操作性、生產(chǎn)力和面向服務(wù)的開發(fā)。
微軟提供了若干個(gè)可以輕易添加和刪除的消息層通道和服務(wù)模型層行為。你也可以定義自己的自定義實(shí)例,比如你能編寫或者購買一個(gè)自定義ASCII編碼器,把它作為可重用通道插入到消息層中,讓多個(gè)系統(tǒng)都能使用。WCF可以和現(xiàn)有的投資互操作,并結(jié)合和擴(kuò)展現(xiàn)存的微軟分布式系統(tǒng)技術(shù),如:Enterprise Services、System.Messaging、Microsoft .NET Remoting、ASMX和Web Services Extensions (WSE)。這樣的改變預(yù)示著,你能使用單一的模型來處理不同類型的應(yīng)用程序行為,這將顯著降低應(yīng)用程序開發(fā)的復(fù)雜性。通過支持WS-I 基本概要(WS-I Basic Profile)和大量的額外WS-*標(biāo)準(zhǔn),WCF也提供和非微軟應(yīng)用程序的互操作能力。 最后,從生產(chǎn)力來看,使用WCF來開發(fā)安全的事務(wù)性網(wǎng)絡(luò)服務(wù),你將獲得生產(chǎn)力在級(jí)別上的顯著提高。想想看,要實(shí)現(xiàn)類似WCF的功能你需要開發(fā)、生成和維護(hù)上萬行代碼,而現(xiàn)在WCF卻已經(jīng)作為基礎(chǔ)框架的一部分提供給你了。WCF已經(jīng)為你提供了一個(gè)首要的核心編程框架,以應(yīng)付逐步增長的面向服務(wù)的開發(fā)。 Windows Workflow (WF)
Workflow Foundation是一個(gè)企業(yè)級(jí)工作流開發(fā)框架和引擎,它首次把聲明性工作流引向主流。WF支持有人參與的(Human)、系統(tǒng)的(System)、連續(xù)的(Sequential )和狀態(tài)機(jī)(State-Machine)工作流。它提供了運(yùn)行時(shí)基礎(chǔ)、靈活的工作流控制機(jī)制、長時(shí)間運(yùn)行和狀態(tài)化工作流、對(duì)用戶而言運(yùn)行時(shí)和設(shè)計(jì)時(shí)的透明性,以及用于規(guī)則遵從和記錄管理過程的審核能力。 Workflow Foundation允許你把一個(gè)工作流定義為一系列的活動(dòng)。活動(dòng)即是執(zhí)行的單元,并被允許輕易地進(jìn)行重用和組合?;净顒?dòng)是在一個(gè)工作流里面的一些步驟,而組合活動(dòng)可以包含其他活動(dòng)。你甚至可以在工作流已經(jīng)處于運(yùn)行過程中時(shí)添加和刪除活動(dòng),這將使你在面對(duì)改變的時(shí)候具有巨大的靈活性。Workflow Foundation提供了一個(gè)開箱即用的基礎(chǔ)活動(dòng)庫,以及一個(gè)讓合作伙伴和客戶容易創(chuàng)建自定義活動(dòng)的框架。 在創(chuàng)建方式的選擇方面,你可以用純XAML標(biāo)記、標(biāo)記加代碼或者純代碼。Visual Studio 2005 Designer for Workflow Foundation作為一個(gè)插件程序已經(jīng)可以下載了,它提供了一個(gè)拖拽方式(drag-and-drop )的設(shè)計(jì)界面、直觀的圖形工具、并集成了屬性(Properties)窗口、調(diào)試和圖形注釋功能。
許多構(gòu)架師曾向我詢問關(guān)于Workflow Foundation、Biztalk、Microsoft Office SharePoint Server 2007(MOSS 2007)和Windows SharePoint Services (WSS)之間關(guān)系的問題。 Workflow Foundation(WF),是由微軟開發(fā)Biztalk工作流引擎的同一個(gè)團(tuán)隊(duì)開發(fā)的,它傾向于被未來版本的Biztalk Server使用。 WF提供了一個(gè)基礎(chǔ),用于實(shí)現(xiàn)在一個(gè)應(yīng)用程序和在特定的情況下多個(gè)應(yīng)用程序間的大部分工作流場(chǎng)景。Biztalk允許你自動(dòng)化你的業(yè)務(wù)過程,通過適配器來編排由不同技術(shù)實(shí)現(xiàn)的系統(tǒng)所混合而成的過程,并提供了高級(jí)的業(yè)務(wù)活動(dòng)監(jiān)控能力。 對(duì)于MOSS 2007和WSS,MOSS 2007構(gòu)建于WF之上并使用WF作為基礎(chǔ)功能提供了額外的功能和特性。Windows SharePoint Services作為Windows Server的添加項(xiàng)提供了一個(gè)MOSS 2007的功能子集。簡言之,WSS提供了簡單的文檔管理和工作流能力。
Windows Presentation Foundation試圖彌合在游戲和娛樂產(chǎn)業(yè)中常見的身臨其境的用戶體驗(yàn)和在業(yè)務(wù)軟件世界中靜態(tài)又難用的界面之間的差距。WPF利用XAML讓你無需成為圖形設(shè)計(jì)師就能盡情地開發(fā)下一代界面。 我建議你去看一個(gè)WPF應(yīng)用程序的演示,來理解我指的下一代用戶界面是什么意思。例如,你可以查看一下收藏于不列顛圖書館里面的15大最珍貴圖書,其中包括了莫扎特和達(dá)芬奇的手稿。這個(gè)閱讀器是一個(gè)基于WPF的應(yīng)用程序,運(yùn)行在Internet Explorer瀏覽器中,就是指所謂的XBAP(可擴(kuò)展瀏覽器應(yīng)用程序)——這是一個(gè)用于代替瀏覽器中的ActiveX功能的技術(shù)。WPF的重要不同之處是,它不是一個(gè)最終產(chǎn)品,或者一個(gè)美妙的豐富界面,而是一種開發(fā)和維護(hù)應(yīng)用程序代碼的方式。 從構(gòu)架的角度看,WPF通過分離圖形元素和業(yè)務(wù)邏輯來保持一個(gè)非常清晰的劃分。一個(gè)設(shè)計(jì)師可以使用Expression產(chǎn)品線和XAML來創(chuàng)建視圖,而開發(fā)人員可以使用Visual Studio和VB.NET或C#來編寫代碼。 近來另外一個(gè)需要更多關(guān)注的技術(shù)是WPF Everywhere(WPF/E),它現(xiàn)在的官方名字叫SilverLight。請(qǐng)記住,SilverLight不是.NET 3.0框架的一部分。SilverLight是一個(gè)具有自己運(yùn)行時(shí)的跨瀏覽器、跨平臺(tái)的插件,它用于開發(fā)下一代微軟基于.NET的多媒體程序和豐富交互的Web應(yīng)用程序。你能在http://www.microsoft.com/silverlight中找到更多信息并觀看一些演示。 Windows Card Spaces (WCS) 在今天的世界中,每個(gè)人都攜帶著大量的自我聲明和第三方頒發(fā)的身份標(biāo)識(shí)。身份標(biāo)識(shí)的例子包括駕駛證、信用卡、電影卡和其他類似的卡。 我們把這些由自己控制的信息提供給請(qǐng)求方來證明我們的身份。Windows Card Spaces把用戶控制的這個(gè)概念擴(kuò)展到了數(shù)字世界。WCS創(chuàng)建了一個(gè)身份標(biāo)識(shí)元系統(tǒng),能顯著改善在組織內(nèi)部和組織之間的企業(yè)身份管理的方式。為了理解它的潛力,一位微軟著名的評(píng)論家指出“這是自加密技術(shù)出現(xiàn)以來對(duì)計(jì)算機(jī)安全最重要的貢獻(xiàn)之一”。 在數(shù)字世界,身份標(biāo)識(shí)被表述為對(duì)象(誰)、身份要求和安全令牌(對(duì)象和要求的數(shù)字表示)。WCS使用自我聲明和托管兩種概念的身份標(biāo)識(shí),一個(gè)自我聲明的數(shù)字身份標(biāo)識(shí)卡可以用于登陸類似Hotmail這樣的服務(wù),而托管的身份標(biāo)識(shí)可能是一個(gè)由銀行頒發(fā)的信用卡。 下面的圖片描述了被用于在不同的實(shí)體當(dāng)中交換信息的協(xié)議。請(qǐng)記住在這個(gè)例子當(dāng)中,身份提供者能使用Kerberos、X509或一個(gè)自定義的機(jī)制。類似的,中轉(zhuǎn)方可以用SAML或者使用HTTPS post來發(fā)送安全令牌。 WCS為不同的身份標(biāo)識(shí)管理技術(shù)實(shí)現(xiàn)提供了一個(gè)總體的框架,以讓它們共同工作。在Java One(世界上最大的Java會(huì)議)上,Sun和微軟做了一個(gè)聯(lián)合主題,演示了基于WS-*標(biāo)準(zhǔn)的互操作機(jī)制。我會(huì)把這個(gè)演示的鏈接和工具包貼到我在此文結(jié)束時(shí)提到的博客中。
結(jié)論 .NET 3.0 Framework為構(gòu)架師和開發(fā)人員開啟了一個(gè)具有無限可能的新世界。它旨在讓你開發(fā)、集成和維護(hù)應(yīng)用程序更加容易。微軟計(jì)劃在.NET Framework未來的版本中繼續(xù)推行這樣的理念,來降低基礎(chǔ)設(shè)施結(jié)構(gòu)復(fù)雜性,并同時(shí)提高互操作性和標(biāo)準(zhǔn)支持。關(guān)于支持標(biāo)準(zhǔn)的完整列表和本文中描述的各個(gè)主題的詳細(xì)資源,可以訪問http://blogs./mohammadakif和點(diǎn)擊.NET 3.0分類來獲取。 |
|