標籤:
1.2 Windows Workflow概覽
微軟的Windows Workflow Foundation(簡稱WF)是.NET架構3.0版的一部分。.NET3.0其它主要部分是Windows Presentation Foundation(簡稱WPF)和Windows Communication Foundation(簡稱WCF)。微軟將在Windows XP,Windows Server 2003 和Windows Vista作業系統中提供對WF的支援。
WF在當前和未來都能夠得到微軟作業系統平台的支援,這樣很可能會造就出一個WF被持久而廣泛地應用的局面。我們可以在智能用戶端軟體和簡單的控制台程式中應用WF。我們也可以在伺服器端軟體中應用WF,這類軟體包括了Windows服務、ASP.NET的Web應用程式和Web服務。WF還將出現在微軟自行開發的幾款產品中,比如Windows SharePoint Services 和 Microsoft Biztalk Server。現在,我們來看看WF都有哪些本質特徵。
1.2.1 活動
活動(Activity)是WF中的基本構件。活動構成了一個工作流程中的各個步驟或任務,它們實現了對工作流程的定義。我們可以按層次把多個活動組織起來,然後把它們作為指令輸入給工作流程引擎去執行。活動能夠影響工作流程的執行路徑,而人和軟體系統都可以參與其中。
WF中的所有活動都繼承自Activity類。Activity類定義了工作流程中所有活動都要具備的通用操作,比如Execute和Cancel方法。這個類還包括了通用屬性的定義,比如Name和Parent屬性,以及通用事件的定義,比如Executing和Closed事件(當一個活動執行完畢,它會引發Closed事件)。下面的截屏圖顯示的是在Visual Studio 2005類別設計工具中看到的Activity類。
WF以“基本活動庫”的形式為使用者提供了一系列預製活動模組。在基本活動庫中有一些簡單活動,比如像IfElseActivity 和 WhileActivity這樣的控制流程操作活動,開發人員可以把它們作為構建複雜活動的基礎。基本活動庫還包括了更多的活動,它們當中有的能夠等待事件,有的能夠調用Web服務,有的能夠執行規則引擎,等等等等,不一而足。
1.2.1.1 自訂活動
Windows Workflow允許開發人員通過建立自訂活動的方式對基本活動庫的功能進行擴充,這樣就能夠解決特定領域的問題。例如,為了提高比薩餅送餐流程的效率,我們可以採用SendOrderToKitchen 或 NotifyCustomer之類的自訂活動。
所有的自訂活動最終都會繼承自Activity基類。工作流程引擎在執行一個活動時,不會區分它是由微軟,還是由第三方提供的。
我們可以用自訂活動構建出專門用於建立工作流程解決方案的特定領域語言。特定領域語言的應用可以極大地簡化問題空間。比如,我們可以自訂一個SendOrderToKitchen活動,用它把一個Web服務調用和其它處理邏輯封裝在一起。這個活動顯然是為餐廳問題域定製的。與使用基本類庫中的簡單活動相比,使用這個經過進階抽象的活動做開發必然會提高程式員的工作效率。即便是一位餐廳經理也會理解SendOrderToKitchen的含義,並且有可能在可視化工作流程設計工具中使用到它。如果你聽說某位餐廳經理更傾向於使用WhileActivity和InvokeWebServiceActivity活動,那才怪了!
|
|
C#,VB.NET和XML都是通用語言,能夠應用到眾多的領域中去解決不同類型的問題。因此,我們使用C#既能為比薩餅餐廳,也能為醫院編寫軟體,而且C#能夠同等地滿足這兩個領域對開發語言的要求。“域特定”語言可以為特定領域內的問題提供出色的解決方案。如果使用餐廳工作流程特定領域語言為一個餐廳編寫軟體,那麼這套軟體可能會提高餐廳的生產效率;如果還是用這門語言為醫院搞開發,那可就沒人敢為軟體的應用效果打包票了。 |
|
【翻譯習作】 Windows Workflow Foundation程式開發-第一章02