WF之基本概念

2022-01-30 06:52:41 字數 2047 閱讀 3258

本文知識點

工作流的基本概念

wf的概念及特點

wf工作流的型別及特點

wf工作流的建立模式及特點

wf的架構

什麼是工作流?

工作流,是對工作流程及其各操作步驟之間業務規則的抽象、概括、描述。

wf是什麼?它有什麼特點?

wf的全稱是windows workflow foundation,它是微軟在.net3.0之後推出的一套工作流開發框架。

wf不是乙個獨立的工作流應用程式,它提供了一些類庫用於輔助工作流應用程式的開發,因此wf是一套用於輔助工作流開發的框架;

wf只是乙個框架,因此需要宿主到其它應用程式中才能執行;

wf提供了實現工作流應用程式時所需要實現的一些機制,比如持久化、跟蹤機制等。

wf工作流的型別有哪些?它們的特點是什麼?實際開發中應當如何選擇?

wf工作流的型別有兩種,一種是順序工作流,一種是狀態機工作流。

順序工作流:定義了一系列按照指定順序執行的步驟。

狀態機工作流:沒有固定順序,執行順序依賴於外部資料和外部條件。

實際開發中究竟是採用順序工作流還是狀態機工作流還要看實際情況根據兩者特點的不同而進行選擇。

wf工作流的建立模式有哪些?他們的特點是什麼?

wf工作流的建立模式有三種:僅限**、**分離、無**。

僅限**:這是wf預設的建立模式,該模式下wf會自動生成乙個workflow1.cs的**檔案,在該檔案中,我們可以通過c#或vb**來宣告工作流的結構,在這種模式下必須進行編譯。參見下圖

**分離:使用xaml與.cs**檔案組合來定義工作流。**檔案必須經過編譯。參見下圖

無**:使用工作流標記來建立工作流,然後使用wf命令列工作流編譯器來編譯工作流,通過宿主應用程式將工作流標記檔案載入到工作流執行時引擎。

wf的架構是怎樣的?

wf的架構總共分三層分別是:宿主程式層(hosting process)、wf執行時層(workflowruntime)、wf服務層。

宿主程式層(hosting process):前面我們提到,wf只是乙個框架,因此需要宿主到其它應用程式中才能執行,宿主程式層就是wf宿主的應用程式的層。wf可以宿主在windows控制台應用程式、windows服務、windows froms應用程式、asp.net web應用程式、webservices等等。目前應用最廣泛的是宿主在wpf、wcf、asp.net web應用程式中。

wf執行時層(workflowruntime):workflowruntime本身提供了一些屬性和方法用來控制wf的執行時環境,開發人員也可以相應workflowruntime的各種事件來監控工作流引擎的執行。

wf服務層:wf服務層內建了4種服務,分別是:排程服務(scheduling services)、事務服務(transaction services)、持久化服務(persistence services)、跟蹤服務(tracking services)。

四種內建服務的作用分別是:

排程服務(scheduling services):排程服務用來控制runtime執行工作流所需要的執行緒。

事務服務(transaction services):事務服務允許runtime保持位於工作流內部和持久儲存器(durable store)中的狀態的一致性。

持久化服務(persistence services):持久化服務負責把工作流狀態儲存到持久儲存器。

跟蹤服務(tracking services):跟蹤服務使用tracking profile來通知runtime它需要的工作流資訊的型別。

wf的架構圖如下

基本概念 C 基本概念

由於工作中需要用到c 編寫的一些工具,有時候需要根據需求修改或者定製工具,所以現在不得不學習一下c 的基礎語法,此為筆記,不成章法!機器語言 組合語言 高階語言 面向過程的程式設計方法 物件導向的程式設計方法 泛型程式設計方法 1 演算法設計 2 源程式編輯 3 編譯 4 連線 5 執行除錯 輸入裝...

Storm系列之 基本概念

寫在前面的話 請允許我廢話幾句。這個系列的文章發布的時間是在我完成了storm的專案開發之後才找出來時間寫的,在研究storm過程中,國內較好的參考文章實在有限,大多是入門和概念剖析。storm的googlegroup對於新手來說實在不友好。有經驗人士都不願意回答新手的一些 愚蠢 的問題。現在因為s...

EFI基本概念之Event

1 基本概念及函式 最近在幫公司弄乙個alpha架構的efi bios,在調dxe core的時候,發現必須要裝幾個cpu架構相關的協議。如果這幾個協議不去安裝,就不會執行bds階段。偵測協議有沒有安裝,是通過coreregisterprotocolnotify 函式實現的,這個函式在未安裝協議之前...