WWF简介
Windows Workflow Foundation (WWF)是编程模型,引擎和工具,用于在Windows上快速生成启动工作流的应用程序.它包括一个命名空间、一个进程内工作流引擎和多个Visual Studio 2005设计器。Windows Workflow Foundation是一个框架,让用户可以在其为Windows Vista、Windows XP和Windows Server 2003系列编写的应用程序中创建系统或人工工作流。
Windows Workflow Foundation可以处理的方案包括:
l 在业务线应用程序中启用工作流
l 在用户界面页流
l 以文档为中心的工作流
l 人工工作流
l 面向服务应用程序的复合工作流
l 业务规则驱动的工作流
l 系统管理的工作流
第一个简单的WWF程序
介绍完WWF到底是什么,它能做什么的之后。让我们开始创建一个简单的WWF程序,来简要描述WWF应用程序的创建步骤。
第一步:创建工作流项目
打开Visual Studio 2008,文件à新建à项目。出现新建项目对话框,如图1-1-1.
图1-1-1
在左侧【项目类型】区域中选择Workflow,右侧【模版】区域显示可以创建的工作流项目模版,在这里我们选择“空工作流项目”。输入名称,选择位置,点【确定】按钮。成功创建工作流项目.
第二步:添加顺序工作流
在1-1FirstWorkflowApplication项目上”右击”à[添加]à顺序工作流,出现添加新项对话框,如图1-1-2.输入”名称”,点[添加]按钮.
图1-1-2
这时项目中会添加2个文件,如图1-1-3.
图1-1-3
第三步:添加Code Activity到顺序工作流
双击”HellowWorld.cs”文件,进入顺序工作流的设计视图界面.在工具箱中找到 ” Code ” 图标,拖动该图标到工作流的设计视图上,如图1-1-4.
图1-1-4
第四步:为Code Activity添加执行代码
点击添加到工作流上的Code Activity活动的符号,点击[未设置属性ExecuteCode],转向属性,在ExecuteCode属性处,输入SayHello.光标移开, 会在工作流文件的后台代码中添加SayHello函数.如图1-1-5和图1-1-6.
图1-1-5
图1-1-6
第五步:为SayHello函数编写代码.
private void SayHello(object sender, EventArgs e)
{
Console.Write("Hello World\r\n");
}
第六步:生成工作流项目
第七步:创建控制台项目,用于执行工作流.
右击解决方案à新建à项目,出现添加新项目对话框,如图1-1-7.
图1-1-7
选择控制台应用程序模版à确定.
第八步:为控制台项目添加引用
System.Workflow.Runtime
System.Workflow.Activities
System.Workflow.ComponentModel
为Program.cs添加命名空间
using System.Workflow.Runtime;
using System.Workflow.Runtime.Hosting;
第九步:创建WorkflowRuntime
using (WorkflowRuntime workflowRuntime = new WorkflowRuntime())
{
}
第十步:处理WorkflowRuntime事件
workflowRuntime.Started += delegate(object sender, WorkflowRuntimeEventArgs e)
{
Console.Write("WorkflowRuntime Started\r\n");
};
第十一步:运行工作流
using System.Threading;
声明线程异步变量:
AutoResetEvent waitHandle = new AutoResetEvent(false);
注册WorkflowCompleted事件:
workflowRuntime.WorkflowCompleted += delegate(object sender, WorkflowCompletedEventArgs e)
{
waitHandle.Set();
Console.Write("Workflow Completed\r\n ");
};
创建Workflow实例:
WorkflowInstance workflow = workflowRuntime.CreateWorkflow(typeof(_1_1FirstWorkflowApplication.HelloWorld));
workflow.Start();
waitHandle.WaitOne();
第十二步:编译生成,运行控制台应用程序
运行结果如图1-1-8
图1-1-8
结束语
回顾第一个工作流项目,大致了解了一个工作流项目的创建以及如何在应用程序中调用工作流的步骤.在工作流项目中创建了一个顺序工作流,为工作流添加CodeAcitivity活动.并为CodeAcitivity活动添加了SayHello的执行代码.在控制台项目中,使用WorkflowRuntime创建工作流实例并执行该工作流.为WorkflowRuntime添加事件处理程序,以监测工作流的执行.