程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> WF4.0基礎篇(一) 開始使用WF

WF4.0基礎篇(一) 開始使用WF

編輯:關於.NET

前言

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]運行程,會看到如下結果

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved