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