堅持學習WF 2 WF創作模式和設計時工具

2021-09-22 12:10:32 字數 2889 閱讀 2512

[置頂]堅持學習wf文章索引

visual sudio提供了一系列的wf設計工具,這些可以讓你更方便更高效的開發你的工作流應用,主要包括以下幾部分:

1.visual studio專案模板

2.視覺化的工作流和活動設計器

3.規則條件設計器

4.工作流偵錯程式

5.命令列編譯工具(wfc.exe)

在說這些之前,我們先來說說工作流的型別和創作模式

順序工作流按逐個順序執行一組包含的活動,它有明確的開始和結束點,從始至終,一步接一步,沿著一條可能的線路執行,這種工作流適合於重複的,相對固定的操作。而在狀態機工作流中,工作流本身由一組狀態組成。 將乙個狀態指示為初始狀態。 每個狀態都可以接收一組特定事件。 視事件而定,可以轉換到另乙個狀態。 狀態機工作流可以有最終狀態。 當對最終狀態進行轉換時,工作流將完成。我們需要根據不同的情景選擇不同的工作流。

wf中的工作流有三種創作模式:僅限****分離無**

僅限**:這種是預設的創作模式。

**分離:這種方式的工作流序列化後儲存在乙個的以.xoml為副檔名的檔案中,它的**儲存在.xoml.cs中。.xoml是workflow的一種標記語言,和.xaml有著同樣的句法,有人可能會問既然是一樣的為什麼還要有兩個檔名,其實最開始的時候.xoml使用自己的句法,後來才和.xaml一樣的,由於歷史的原因就接著使用.xoml了,在wpf中是使用的是.xaml,你新增不同型別的檔案它會去呼叫不用的設計器,**分離的工作流必須進行編譯,並且無法直接載入到工作流執行時引擎。

無**:通過使用可擴充套件應用程式標記語言 (xaml) 建立標記原始檔從而建立工作流的宣告性方式,這種方式不被visual studio直接支援,你可以將**部分(.xoml.cs)刪除或直接建立xml檔案並更改擴充套件名為.xoml。這種方式可以讓你在執行期間直接載入到工作流執行時引擎中,增加了靈活性。這種方式可以使用x:code指令元素在工作流標記檔案中插入過程**。 **必須位於 cdata 節中,以使編譯器可以編譯**而非將其視為宣告性 xaml 標記。如下例:

<

sequentialworkflowactivity 

x:class

="helloworkflow.workflow2"

x:name

="workflow2"

xmlns:x

=" xmlns="

/workflow

>

<

codeactivity 

x:name

="codeactivity1"

executecode

="methodname1"

>

<

x:code

>

void methodname1(object sender, eventargs e) 

]]>

x:code

>

codeactivity

>

sequentialworkflowactivity

>

然後我們開始說我們的設計時工具

1.visual studio專案模板

型別說明

建立用於生成工作流的專案,該工作流包含乙個預設的順序工作流和乙個控制台測試宿主應用程式。

順序工作流庫 (sequential workflow library)

建立用於以庫的形式生成順序工作流的專案。

工作流活動庫 (workflow activity library)

建立乙個用來建立活動的庫的專案,以後可以將其作為工作流應用程式中的構造塊重用。

建立用於生成狀態機工作流和控制台宿主應用程式的專案。

狀態機工作流庫 (state machine workflow library)

建立用於以庫的形式生成狀態機工作流的專案。

空工作流 (empty workflow)

建立可以包含工作流和活動的空專案。

2.視覺化的工作流和活動設計器

主要有順序型工作流,狀態機工作流設計器。每種都有設計檢視,錯誤處理檢視,取消處理檢視.

3.規則條件設計器

在 wf 中,通過兩種主要方式公開規則技術:一種是作為活動上的條件,另一種是作為策略活動中的正向鏈結 ruleset。ifelsebranchactivity、conditionedactivitygroup、whileactivity 和 replicatoractivity 活動使用條件來控制活動的執行。 條件可以宣告方式表示,也可以在**中定義。 宣告性條件以** dom 語句的形式在規則的 xml 檔案中建立。 基於**的條件可引用工作流的**檔案中的乙個方法,該方法通過 result 屬性返回其結果。

與條件一樣,規則以** dom 語句的形式表示,並收集到規則的 xml 檔案中。 規則包含乙個條件語句和一些操作集合,這些集合中的操作是根據條件的結果來執行的。 規則將會收集到規則集中,規則集既支援規則的簡單依序執行,也支援規則的複雜正向鏈結。 規則集由 policyactivity 活動執行(摘自msdn)。看下下面的截圖:

有智慧型感知的,下面這張圖是規則集的設計器

4.工作流偵錯程式

除錯工作流應用程式也很容易,我們只需要放置斷點,你可以在工作的任何乙個活動上設定斷點,一旦**流到達設定了斷點的活動,visual studio 就會將控制權移交給工作流偵錯程式,如何下圖:

5.命令列編譯工具(wfc.exe)

堅持學習WF 2 WF創作模式和設計時工具

visual sudio提供了一系列的wf設計工具,這些可以讓你更方便更高效的開發你的工作流應用,主要包括以下幾部分 1.visual studio專案模板 2.視覺化的工作流和活動設計器 3.規則條件設計器 4.工作流偵錯程式 5.命令列編譯工具 wfc.exe 在說這些之前,我們先來說說工作流的...

堅持學習WF 6 開發可復用的宿主程式

我們之前寫工作流宿主程式一般都是直接寫在program.cs檔案裡,這樣復用性比較差。我們就簡單的寫兩個類,這兩個類主要實現的是對workflowinstance和workflowruntime的封裝。我們以後的例子都會使用這兩個類。serializable public class private...

循序漸進之WF 2 工作流的標準和規範

一 工作流管理聯盟 1993年,工作流管理聯盟 workflow management coalition,wfmc 成立並頒布了一系列相關的標準和規範,其中包括工作流模型和工作流模型各部分之間協作的五個介面規範 工作流術語表等內容。wfmc定義的xpdl xml process definitio...