[转]WF4.0 基础篇 (一)开始使用WF
本文轉自:http://www.cnblogs.com/foundation/archive/2009/10/26/1589993.html
來博客園寫WF主題博客已經3年了, 在園子里認識了很多朋友,也學了很多知識.看到園子現在的氣氛不太好,我很著急,但唯一能做的就是寫點技術文章以感謝博客園為我們提供這么好的交流環境
從WinFX到NET3.x再到NET4.0 ,WPF,WCF,WF 始終是放在一起的,WPF(silverlight)用于程序UI的展現,WCF用于程序通信,WF用于程序的邏輯控制,這種思想在微軟提出WinFX到現在的NET3.x再到NET4.0都是十分明確的. WPF(silverlight)與WCF現在已被大家熟知,并已廣泛使用.但關注WF的人卻還不是很多.現在我準備從寫幾個WF4.0系列的文章,大家可以通過這幾個系列的文章了解一下WF
?
目錄
1????開始使用WF4.0????1
1.1????前言????1
1.2????創建WF4.0項目????1
1.3????創建一個"hello wxwinter"屏幕的輸出的工作流????2
1.4????程序結構說明????2
1.4.1????XAML流程結構描述文件????3
1.4.2????宿主程序????3
1.5代碼方式創建WF4.0工作流????3
?
開始使用WF4.0
?
前言
WF的全稱是Windows Workflow Foundation ,
最早接觸WF是在2004年的時候,那時微軟推出了一個CTP版的開發包,WinFX.
在WinFX中提供了三個內容: Avalon, Indigo, WinOE當時這三方面的內容我都有涉及
與微軟很多的技術一樣,WinFX在Bata2后就沒有后續了.然而幸運的是我的這次長達一年的技術投入并沒有浪費,WinFX在2006年以Net 3.0 的方式正式發布了(其實就算WinFX沒有下文,我也沒有什么遺憾,在學習WinFX的日子里,我理解了很多全新的設計思想)
在NET 3.0 中,
Avalon成為了Windows Presentation Foundation 簡稱為WPF
Indigo成為了 Windows Communication Foundation 簡稱為WCF
WinOE 成為了 Windows Workflow Foundation 簡稱為WWF
后來, 微軟基于WPF推出了WFP/E, WFP/E就是silverlight的前身.
?
WPF,WCF,WWF從一開始就是綁在一起的,為什么WWF現在叫WF,少了一個"W",那是因為WWF與另一個縮寫重名了 World Wild Fund for Nature"世界自然基金會"
| 世界自然基金會 |
?
那么WF到底是什么,在這里我先不做具體介紹,但WF絕對不是傳統"工作流"層面的東西.
從WinFX到NET3.x再到NET4.0 ,WPF,WCF,WF 始終是放在一起的,
WPF(silverlight)用于程序UI的展現,WCF用于程序通信,WF用于程序的邏輯控制,這種思想在微軟提出WinFX到現在的NET3.x再到NET4.0都是十分明確的.
WPF(silverlight)與WCF現在已被大家熟知,并已廣泛使用.但關注WF的人卻還不是很多.
為此,我準備寫三個系列的文章: WF4.0 基礎篇, WF4.0 應用篇, WF4.0設計篇,主要內容如下:
| WF4.0 基礎篇 | WF4.0 中各類Activity與功能類的詳細使用說明 |
| WF4.0 應用篇 | WF4.0的架構,Activity設計,流程設計器開發 |
| WF4.0設計篇 | 如何將WF4.0應用到項目中,如何基于WF4.0設計項目 |
?
如果你對WF3.x或WF4 Bata 1有一定了解,可以看一下我寫的這篇文章
| WF4Bate 2與前版本的比較 http://www.cnblogs.com/foundation/archive/2009/10/22/1587798.html |
?
如果你對WF3.X不了解,那也不用去了解WF3.X
本系列將從最基礎的內容開始講解WF4.0
?
創建WF4.0項目
1.打開VS2010 ,[File] -> [New] -> [Project]
2.在出現的[New Project]對話框的[Installed Templates]樹上選[Workflow],在出現的模板列表框中選[Workflow Console Application]項
在[Name]框中輸入[helloWorkflow],點擊[OK]進入WF4.0項目的設計界面
?
創建一個"hello wxwinter"屏幕的輸出的工作流
?
按[F5]運行程,會看到如下結果
?
程序結構說明
本例子包括兩部分,用于描述流程結構的一個XAML文件與調用流程的宿主程序
?
XAML流程結構描述文件
WF4.0 的流程結構描述文件是一個XML格式的文件,其格式如下
(關于WF4.0的XAML文件格式,會在以后的文章中做具體介紹,在這里做一個基本說明)
| <Activity x:Class="helloWorkflow.Workflow1" .... > <WriteLine Text="hello wxwinter " .... /> </Activity> |
?
WF4.0的流程是由一組[活動]組成的,當流程運行時,流程內的[活動]按一定的規則依次執行
其中<Activity> </Activity> 是這個流程的根[活動]
<WriteLine /> 是WF4.0 的一個自帶的一個[活動],其功能就是在屏幕打印[Text屬性]的內容
x:Class="helloWorkflow.Workflow1" 則是將XOML文件編譯成NET類時所對應的類名
?
宿主程序
在使用[Workflow Console Application]模板創建時,會自動創建一個用于測試流程的控制臺宿主程序,內容如下
| class Program { static void Main(string[] args) { WorkflowInvoker.Invoke(new Workflow1()); } } |
其中,[ WorkflowInvoker]是一個用于調用工作流的功能類,可以使用該類的[Invoke 靜態方法]調用流程.在本例中[Invoke(new Workflow1())]所使用的類就是XOML文件中 x:Class="helloWorkflow.Workflow1" 所定義的類名
?
?
代碼方式創建WF4.0工作流
?
| class Program { static void Main(string[] args) { WorkflowInvoker.Invoke(codeCreateWorkflow()); } ? // 代碼方式創建WF4.0工作流 static Activity codeCreateWorkflow() { WriteLine writeLineActivity = new WriteLine() { Text = "hello wxwinter" }; ? Sequence wxwinterWorkflow = new Sequence(); ? wxwinterWorkflow.Activities.Add(writeLineActivity); ? return wxwinterWorkflow; } } |
?
按[F5]運行程,會看到如下結果
?
轉載于:https://www.cnblogs.com/freeliver54/archive/2013/02/17/2914501.html
總結
以上是生活随笔為你收集整理的[转]WF4.0 基础篇 (一)开始使用WF的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: libklel 1.1.0 发布,表达式
- 下一篇: 因为疫情花呗还不上怎么办