首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> C# >> 關於C#

WF 框架程式設計:基礎觀念與 WFMC 標準對照

     編輯:關於C#

1. 程式設計模型

以消化系統比喻:器官(類/元件)組成系統,功能實現為流程(過程控制)。結論:程式結構採 OO 組織,執行邏輯為過程導向。

1.1 過程控制模型

C# 陳述式、XAML、資料庫表、DSL、圖形工具皆可描述流程。

1.2 C# 控制流限制

交互式長時間流程(等待外部訊息數天)若用 C# 控制流,需長期佔用執行緒,擴展性差。WF 採書籤機制:持久化書籤釋放 CLR 資源,訊息到達續流程。WF 執行緒模型為天然非同步調用。

1.3 工作流模式 (21 種,基於 Petri Net)

  • 基本 (5):序列、並行分支、同步、單選、簡單合併
  • 進階分支/同步 (5):多選、同步合併、多合併、鑑別器、M-N 模式
  • 結構 (2):任意循環、隱含終止
  • 多實例 (4)、狀態基礎 (3):推遲選擇、交替並行、里程碑
  • 取消 (2):取消活動、取消流程

參考:工作流模式詳解

WF 對模式支援

圖基模式、導航器、狀態機。WF 僅提供引擎框架,非完整工作流管理系統(如 SharePoint/K2 以 WF 為引擎)。自行實作基礎功能可構建高度平台。需熟悉 WFMC 標準介面 1-5。

2. WFMC 標準架構與參考模型

2.1 標準架構三大組成

  1. 軟體元件:實現功能
  2. 系統控制資料:元件使用的資料
  3. 應用與應用資料:外部系統,被工作流系統呼叫

2.2 三大功能

  1. 建立階段:流程定義與建模
  2. 執行階段控制:執行、排程、調度
  3. 人機互動:使用者與 IT 工具互動

2.3 參考模型五大介面 (WAPI)

標準系統需實作:流程定義工具、引擎、任務管理器(客戶端)、使用者管理監控介面。

3. 認識 WF 定位

3.1 模型定義工具

VS 整合設計器,自建系統需自製設計器(WinForm/WebForm 皆可),支援圖形化除錯。角色/組織模型整合 Membership 但缺組織結構,Oracle 需自行實作。任務指派:設計時角色/人員、執行時指派。WF 無任務表概念,引擎不關心流轉細節,待辦查詢需自行實作(建議透過自訂 Activity 維護任務表)。

3.2 工作流引擎

WF 即引擎。WFMC 要求:解釋流程定義、控制實例、導航活動、參與者簽核、任務項目、維護控制/相關資料、外部程式呼叫、監控審查。版本控制需支援三種調整方式。異常處理、超時通知需自行編程。

3.3 工作流客戶端

WFMC 任務表由引擎分配、任務表處理器管理互動。WF 無任務表概念,宿主註冊服務(持久化、追蹤),Remoting/WCF 通訊,角色定義存 .rule 檔。

3.4 介面 3 (應用程式呼叫)

WF 對應:CallExternalMethod、CallWebService 活動。

3.5 介面 4 (分散式多引擎)

3.6 介面 5 (管理監控)

WF 僅提供流程/活動層級日誌 (TrackingService),預設僅存 SQL Server,介面需自行圖形化。實際需:即時追蹤、超時監控、歷史查詢/異常處理、任務改派、掛起/恢復/取消、動態流程調整。

結論與任務表議題

WF 僅供基礎框架,Activity 功能薄弱。無任務表導致待辦查詢效能差。自建任務表若在應用層維護等同繞過 WF;建議透過自訂 Activity 內部維護。問題:是否必要自建?若必要,自訂 Activity 法是否最佳?

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved