針對架構師的.NET 3.0架構介紹(1)

來源:互聯網
上載者:User

微軟.NET的最新版本,.NET Framework 3.0,為開發下一代業務解決方案軟體系統開啟了新的可能。它的設計目標是:提高生產力,降低基礎設施複雜性,提供一個一致的元系統,讓企業級服務、工作流程解決方案和使用者體驗軟體系統的開發更容易。

在我和大量的構架師討論的過程中,我聽到解決方案構架師非常關心安全、開放的標準、互通性、面向服務的構架、關鍵技術間的關係(例如Workflow Foundation和Biztalk)和生產力。在這篇文章當中,我將按照構架師社區最感興趣的領域來逐一介紹.NET 3.0。

.NET的相關版本

自從微軟推出第一個版本的.NET Framework,已經過去差不多6年了。3.0 是第一個隨作業系統發布的架構,它附帶在每個Windows Vista中,也可以支援Windows XP SP2 和 Windows Server 2003。直到.NET 3.0,以前的每個版本的.NET Framework都會伴隨著一個新的通用語言運行時(Common Language Runtime),後面將簡稱為CLR。但這次,微軟沒有修改.NET Framework 3.0 版本中的CLR(譯者註:而是基於.NET 2.0的CLR),這一點需要重點注意。

圖1

由於.NET 2.0和3.0共用同樣的CLR,在.NET 2.0中編寫的任何程式都可以運行於.NET 3.0中,這是和以前版本的一個重要而顯著的區別。以改變來看,對於那些喜歡代數方程的人來說,它們之間的關係可以總結為下面的公式:

.NET 3.0 = .NET 2.0 + WCF + WPF + WCS + WF

我會為每個縮寫提供一個定義,不過當你任何時候對.NET 2.0和3.0之間的關係感到困惑時,只要記住上面的這個方程式就好了。.NET 3.0其後的哲學之一就是提供一些功能讓“基礎設施結構”成為架構的一部分。它讓你可以只關注你的關鍵的業務問題。

.NET Framework 3.0通過4個關鍵的、以標準為基礎的支柱來對應我們客戶要求和驗證的領域,以達成上述目標。它也包含了一個重要的叫做XAML的新語言。XAML是一個基於XML的聲明性語言,通過XML定義對象和它們的屬性,允許客戶聲明性地開發工作流程(WF)和身臨其境的使用者體驗(WPF)。讓我們來瀏覽一下.NET 3.0架構中關鍵支柱的更詳細內容。

Windows Communication Foundation (WCF)

WCF允許你通過提供一個基於標準的架構和一個組合的架構來構建服務。WCF的3個關鍵設計理念是互通性、生產力和面向服務的開發。

圖2

微軟提供了若干個可以輕易添加和刪除的訊息層通道和服務模型層行為。你也可以定義自己的自訂執行個體,比如你能編寫或者購買一個自訂ASCII編碼器,把它作為可重用通道插入到訊息層中,讓多個系統都能使用。WCF可以和現有的投資互操作,並結合和擴充現存的微軟分布式系統技術,如:Enterprise Services、System.Messaging、Microsoft .NET Remoting、ASMX和Web Services Extensions (WSE)。這樣的改變預示著,你能使用單一的模型來處理不同類型的應用程式行為,這將顯著降低應用程式開發的複雜性。通過支援WS-I 基本概要(WS-I Basic Profile)和大量的額外WS-*標準,WCF也提供和非微軟應用程式的互操作能力。

最後,從生產力來看,使用WCF來開發安全的事務性網路服務,你將獲得生產力在層級上的顯著提高。想想看,要實作類別似WCF的功能你需要開發、產生和維護上萬行代碼,而現在WCF卻已經作為基礎架構的一部分提供給你了。WCF已經為你提供了一個首要的核心編程架構,以應付逐步增長的面向服務的開發。

Windows Workflow (WF)

圖3

Workflow Foundation是一個企業級工作流程開發架構和引擎,它首次把宣告式工作流程引向主流。WF支援有人蔘與的(Human)、系統的(System)、連續的(Sequential )和狀態機器(State-Machine)工作流程。它提供了運行時基礎、靈活的工作流程控制機制、長時間運行和狀態化工作流程、對使用者而言運行時和設計時的透明性,以及用於規則遵從和記錄管理過程的審核能力。

Workflow Foundation允許你把一個工作流程定義為一系列的活動。活動即是執行的單元,並被允許輕易地進行重用和組合。基本活動是在一個工作流程裡面的一些步驟,而組合活動可以包含其他活動。你甚至可以在工作流程已經處於運行過程中時添加和刪除活動,這將使你在面對改變的時候具有巨大的靈活性。Workflow Foundation提供了一個開箱即用的基礎活動庫,以及一個讓夥伴和客戶容易建立自訂活動的架構。

在建立方式的選擇方面,你可以用純XAML標記、標記加代碼或者純程式碼。Visual Studio 2005 Designer for Workflow Foundation作為一個外掛程式程式已經可以下載了,它提供了一個拖拽方式(drag-and-drop )的設計介面、直觀的圖形工具、並整合了屬性(Properties)視窗、調試和圖形注釋功能。

圖4

許多構架師曾向我詢問關於Workflow Foundation、Biztalk、Microsoft Office SharePoint Server 2007(MOSS 2007)和Windows SharePoint Services (WSS)之間關係的問題。

Workflow Foundation(WF),是由微軟開發Biztalk工作流程引擎的同一個團隊開發的,它傾向於被未來版本的Biztalk Server使用。

WF提供了一個基礎,用於實現在一個應用程式和在特定的情況下多個應用程式間的大部分工作流程情境。Biztalk允許你自動化你的業務過程,通過適配器來編排由不同技術實現的系統所混合而成的過程,並提供了進階的商務活動監控能力。

對於MOSS 2007和WSS,MOSS 2007構建於WF之上並使用WF作為基礎功能提供了額外的功能和特性。Windows SharePoint Services作為Windows Server的添加項提供了一個MOSS 2007的功能子集。簡言之,WSS提供了簡單的文件管理和工作流程能力。

圖5

Windows Presentation Foundation (WPF)

Windows Presentation Foundation試圖彌合在遊戲和娛樂產業中常見的身臨其境的使用者體驗和在業務軟體世界中靜態又難用的介面之間的差距。WPF利用XAML讓你無需成為圖形設計師就能盡情地開發下一代介面。

我建議你去看一個WPF應用程式的示範,來理解我指的下一代使用者介面是什麼意思。例如,你可以查看一下收藏於不列顛圖書館裡面的15大最珍貴圖書,其中包括了莫紮特和達芬奇的手稿。這個閱讀器是一個基於WPF的應用程式,運行在Internet Explorer瀏覽器中,就是指所謂的XBAP(可擴充瀏覽器應用程式)——這是一個用於代替瀏覽器中的ActiveX功能的技術。WPF的重要不同之處是,它不是一個最終產品,或者一個美妙的豐富介面,而是一種開發和維護應用程式代碼的方式。

從構架的角度看,WPF通過分離圖形元素和商務邏輯來保持一個非常清晰的劃分。一個設計師可以使用Expression產品線和XAML來建立視圖,而開發人員可以使用Visual Studio和VB.NET或C#來編寫代碼。

近來另外一個需要更多關注的技術是WPF Everywhere(WPF/E),它現在的官方名字叫SilverLight。請記住,SilverLight不是.NET 3.0架構的一部分。SilverLight是一個具有自己運行時的跨瀏覽器、跨平台的外掛程式,它用於開發下一代微軟基於.NET的多媒體程式和豐富互動的Web應用程式。你能在http://www.microsoft.com/silverlight中找到更多資訊並觀看一些示範。

Windows Card Spaces (WCS)

在今天的世界中,每個人都攜帶著大量的自我聲明和第三方頒發的身份標識。身份標識的例子包括駕駛證、信用卡、電影卡和其他類似的卡。

我們把這些由自己控制的資訊提供給請求方來證明我們的身份。Windows Card Spaces把使用者控制的這個概念擴充到了數字世界。WCS建立了一個身份標識元系統,能顯著改善在組織內部和組織之間的企業身份管理的方式。為了理解它的潛力,一位微軟著名的評論家指出“這是自加密技術出現以來對電腦安全最重要的貢獻之一”。

在數字世界,身份標識被表述為對象(誰)、身份要求和安全性權杖(對象和要求的數字表示)。WCS使用自我聲明和託管兩種概念的身份標識,一個自我聲明的數字身份標識卡可以用於登陸類似Hotmail這樣的服務,而託管的身份標識可能是一個由銀行頒發的信用卡。

下面的圖片描述了被用於在不同的實體當中交換資訊的協議。請記住在這個例子當中,身份提供者能使用Kerberos、X509或一個自訂的機制。類似的,中轉方可以用SAML或者使用HTTPS post來發送安全性權杖。

WCS為不同的身份標識管理技術實現提供了一個總體的架構,以讓它們共同工作。在Java One(世界上最大的Java會議)上,Sun和微軟做了一個聯合主題,示範了基於WS-*標準的互操作機制。我會把這個示範的連結和工具包貼到我在此文結束時提到的部落格中。

圖6

結論

.NET 3.0 Framework為構架師和開發人員開啟了一個具有無限可能的新世界。它旨在讓你開發、整合和維護應用程式更加容易。微軟計劃在.NET Framework未來的版本中繼續推行這樣的理念,來降低基礎設施結構複雜性,並同時提高互通性和標準支援。關於支援標準的完整列表和本文中描述的各個主題的詳細資源,可以訪問http://blogs.msdn.com/mohammadakif和點擊.NET 3.0分類來擷取。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.