Windows Workflow Foundation之旅(六)——架構組成 翻譯自:ms-help://MS.WinWF.v1.EN/WinWF_GettingStarted/html/68db11eb-3d20-41ca-90f7-ae635fd4e2a2.htm 這個專題前面的三個指南,介紹了WWF程式設計了三個大方面:順序工作流、狀态機工作流和自定義活動。相信大家對WWF的程式設計模型已經有了一個初步的了解。從這次開始,我們就要深入WWF,全面的探究一下WWF。 傳統的程式設計語言是針對短期運作應用程式的,缺乏持久化和抗中斷的功能支援。WWF是一個架構,不是一種語言。他對工作流應用程式有深刻的認識,提供了各種手段來處理持久化,中斷補償,故障恢複等功能。 WWF同時具有靈活性和可擴充性。你可以直接用代碼定義工作流,也可以用外部的定義語言也定義,或同時使用兩者。你可以用你自己的自定義活動來實作自定義的工作流模式,以到達可重用的目的。 WWF支援模型驅動的開發,提供了可視化的設計工具,并隐藏了一些系統級的功能,如事務、狀态管理和并發控制,是開發者可以專注于業務模型。 WWF中的工作流和活動 工作流是一組相關的活動的集合。 活動是WWF中可模組化、可程式設計、可重用、可執行的原子機關。WWF提供了一組豐富的活動庫,來建構你的工作流。 WWF的工作流應用程式 一個應用程式必須做以下步驟,才能使用WWF: 1. 建立一個WorkflowRuntime類的執行個體。它代表了工作流引擎。 2. 為運作時引擎配置服務。 3. 啟動引擎。 4. 使用引擎來建立和管理工作流。 當工作流運作時, 引擎使用大量的可插拔的服務來處理持久化、事務、線程、跟蹤和計時器等任務。 你可以通過配置這些服務來擴充和修改運作時引擎的行為,也可以建立自定義的服務來提供另外的功能。 (譯者)很多朋友在回複中提了幾個方面的疑問。這裡我統一解答下: n WWF支援以程式設計方式,固化的定義工作流,也支援以XML檔案形式定義工作流。 n WWF可以以編碼的方式來建立工作流,也可以用工作流模型設計工具來定義,這些工具內建在了vs2005中。我會在以後的随筆中介紹設計工具。用設計工具創作的工作流也可以導出為XML定義。 n WWF目前也處于測試階段,不太适合于商用。 n WWF目前版本僅支援.NET Framework 2.0。而vs2005又不支援1.1,是以,vs.net2003下不能開發WWF應用。 下面列出的是你在建立工作流中會用到的一些概念。 Ø 順序工作流 Ø 狀态機工作流 Ø 工作流創作模式 Ø 使用活動控制流程 Ø 在工作流中使用條件 Ø 在工作流中使用事務 Ø 獲得工作流中的狀态資訊 Ø 在工作流中使用異常 Ø 在工作流中使用補償?(Compensation) Ø 使用時間處理活動 Ø 在工作流中使用代碼 Ø 在工作流中使用動态更新 Ø 在工作流中使用資料 Ø 在工作流中使用角色 Ø 在工作流中使用XML支援 Ø 編譯工作流 Ø 序列化工作流 之後的篇章中,我講詳細解釋以上的概念。
工作流創作模式 ms-help://MS.WinWF.v1.EN/WinWF_GettingStarted/html/aacf4ec6-da05-4974-958a-974769dda739.htm WWF支援兩種不用的工作流創作風格:順序工作流和狀态機工作流。順序工作流隻向前運作的,它也用于那些重複的,流程相對固定的場景中。狀态機工作流講工作流設計為一個狀态機。工作流本身包含了一組狀态。 預設情況下,WWF将工作流定義與業務邏輯分隔開。在一個典型的創作場景中,設計着使用設計器來設計工作流定義,然後使用C#或其他.NET語言也編寫業務邏輯。這種創作模式叫代碼分隔(code-separation)。 WWF支援以下創作模型: l Code-only 這是WWF預設的創作模式。在這種模式下,你需要使用WWF的API,以程式設計的方式用代碼來定義工作流。工作流定義代碼和業務邏輯代碼将混合在一起。 l Code-separation 這種模式可以同時使用設計器和代碼。 l No-code 這種方式下,你可以使用任何的文本編輯器來定義工作流,然後使用WWF指令行編譯器來編譯文本工作流定義。 想了解更多工作流創作模式的資訊,請看 順序工作流,狀态機工作流,在工作流中使用代碼,編譯工作流(沒有連結的章節在将寫好後加上連結)。