Microsoft Windows Workflow Foundation (WF) 是一个可扩展框架,用于在 Windows 平台上开发工作流解决方案,是.NET 3.0中新增的一部分,最近开始学习WF,在此做个记录和大家一起学习。
我们就从Helloworld开始吧,我使用是Visual Studio 2008中文版。我们先来新建一个“顺序工作流控制台应用程序”项目,如下图:
项目建立完成后默认会包括以下几部分(如下图)
1.引用中包含的:
System.Workflow.Activities
System.Workflow.ComponentModel
System.Workflow.Runtime
System.WorkflowServices
这些是.Net Framework中WF的一些类库。
2.可视化的工作流设计器
Workflow1.cs是可视化的workflow工作流设计器,你可以将工具箱里的活动控件拖到该设计器中,这里是你定义工作流的主要地方,该可视化的设计器有自动检测功能,没有通过检测会有叹号做相应提示。
3.Program.cs中包括工作流的宿主程序,本例中工作流的宿主是控制台应用程序,还可以是其他类型的程序,windows form,ASP.NET等。
4.活动
WF主要的组成部件是活动(Activity),活动组成了工作流中的步骤(或任务),也可以说活动定义了工作流.我们按顺序和层次组织活动,然后这些活动将作为指令供工作流引擎执行.WF中所有的活动都继承一个基类-Activity,WF就运作在这些基本活动库中的现成活动之上.Windows Workflow允许开发人员扩展基本活动库的功能,通过创建自定义活动来解决特定领域的问题.
下图是微软已经提供的一些活动。
下面开始我们的任务:
1. 我们往Workflow1.cs中拖入一个CodeActivity,你会发现有个感叹号,这里就是工作流设计器的检测功能,如下图:
我们设置CodeActivity活动的ExecuteCode属性为Helloworld,设置后VS会自动帮我们生成事件处理程序,我们只需要写上我们的代码,如下
{
System.Console.WriteLine("Hello world");
}
2.宿主的实现:
在Program.cs中系统已经为我们生成了我们需要的代码
{
AutoResetEvent waitHandle = new AutoResetEvent(false);
workflowRuntime.WorkflowCompleted += delegate(object sender, WorkflowCompletedEventArgs e) {waitHandle.Set();};
workflowRuntime.WorkflowTerminated += delegate(object sender, WorkflowTerminatedEventArgs e)
{
Console.WriteLine(e.Exception.Message);
waitHandle.Set();
};
WorkflowInstance instance = workflowRuntime.CreateWorkflow(typeof(HelloWorld.Workflow1));
instance.Start();
waitHandle.WaitOne();
Console.WriteLine("Press any key to exit");
Console.ReadLine();
WorkflowRuntime:在工作流的运行环境(宿主)中,为工作流提供运行的引擎。
WorkflowInstance:WorkflowInstance是指在工作流引擎中运行的工作流实例。
WorkflowCompleted和WorkflowTerminated是引擎中的某个实例完成后和终止后的事件,WorkflowRuntime还有其他的事件,在次暂不做介绍,以后详细说明。
3.现在我们可以运行看看效果了
这些可能太简单了,那我们来让我们的工作流接受外部的参数。
1.在Workflow1.cs中定义属性
public string Name
{
get { return name; }
set { name = value; }
}
2.将CodeActivity的ExecuteCode事件的代码做下调整
{
System.Console.WriteLine("{0}:Hello world",name);
}
3.在工作流的宿主程序中来定义Dictionary,并用Add方法添加参数
dictionary.Add("Name","Cary");
注意add里的属性名字要和定义的一样。
4.使用CreateWorkflow的重载方法来产生工作流实例
5.现在我们在运行,看看最终的效果
代码下载:HelloWorld
下一篇:坚持学习WF(2):WF创作模式和设计时工具
发表评论
-
平淡的2007
2007-12-24 08:04 816早上起来,送女朋友去公交车站,然后回来赶紧打开电脑,先 ... -
DreamSpark发布,高校学生免费使用Visual Studio 2008 Professional Edition 等微软软件
2008-02-20 13:23 1414今天上网无意中搜索到学生可以免费使用VS2008专业版,后来又 ... -
坚持学习WF(2):WF创作模式和设计时工具
2008-04-05 17:19 639[置顶]坚持学习WF文章索 ... -
坚持学习WF(3):WF框架概览
2008-04-08 07:27 783[置顶]坚持学习WF文章索 ... -
坚持学习WF(4):活动(Activity)和依赖属性(DependencyProperty)
2008-04-12 00:01 1147[置顶]坚持学习WF文章索引 活动(Activity) 活动 ... -
坚持学习WF(5):自定义活动(CustomActivity)
2008-04-13 15:25 928当WF提供的标准活动不能满足我们的需求的时候,我们就需要定义自 ... -
MOSS点滴(1):如何开发和部署feature
2008-04-16 21:35 835Features 是MOSS 2007以开箱即用的一套新功能, ... -
MOSS点滴(2):自定义Application Page
2008-04-19 20:07 844在MOSS中后台管理的页面都是Application Pag ... -
坚持学习WF(6):开发可复用的宿主程序
2008-04-21 21:45 695我们之前写工作流宿主 ... -
MOSS点滴(3):说说MOSS中的母版页
2008-04-25 21:15 1187MOSS中有两种页面:Site P ... -
MOSS点滴(4):实现Form认证
2008-04-29 21:12 704本文主要参考了网上的一些文章,但有些文章有些地方说的不是很明确 ... -
坚持学习WF(7):流程控制(Flow Control)
2008-04-30 18:10 837本文主要说说WF中和流 ... -
坚持学习WF(8):本地服务之调用外部方法
2008-05-09 08:17 761WF提供了一组核心服务 ... -
MOSS中的WebPart开发
2008-05-10 13:53 1060由于在asp.net1.1的时候asp.net中还没有webp ... -
坚持学习WF(9):本地服务之事件处理
2008-05-28 07:49 799[置顶]坚持学习WF文章索引 一:先来介绍两个活动 Even ... -
坚持学习WF(10):在工作流中使用关联
2008-06-01 13:03 691[置顶]坚持学习WF文章索 ... -
坚持学习WF(11):工作流通信与队列
2008-06-07 15:45 735[置顶]坚持学习WF文章索引 WF 提供的通信模型是构建于 ... -
MOSS中创建自定义内容类型
2008-06-12 20:23 1106一:简要介绍 某类内容 ... -
.NET中IDisposable接口的基本使用
2008-06-15 12:01 950首先来看MSDN中关于这个接口的说明: [ComVisible ... -
坚持学习WF(12):使用EventHandlingScopeActivity活动
2008-06-18 22:46 684[置顶]坚持学习WF文章索引 EventHandlingSco ...
相关推荐
在本篇“坚持学习WF(1):从HelloWorld开始”的源码分析中,我们将深入理解WF的基础知识和创建第一个工作流的步骤。 首先,让我们了解WF的基本概念。WF提供了一种模型化业务流程的方式,通过活动(Activities)来表示...
坚持学习WF(1):从HelloWorld开始 本文主要通过实现了一个可以接受参数的HelloWorld程序来了解WF。 坚持学习WF(2):WF创作模式和设计时工具 坚持学习WF(3):WF框架概览 2.3两篇主要全面的阐述了WF框架和Visual ...
坚持学习WF(1):从HelloWorld开始 本文主要通过实现了一个可以接受参数的HelloWorld程序来了解WF。 坚持学习WF(2):WF创作模式和设计时工具 坚持学习WF(3):WF框架概览 2.3两篇主要全面的阐述了WF框架和Visual ...
坚持学习WF(1):从HelloWorld开始 本文主要通过实现了一个可以接受参数的HelloWorld程序来了解WF。 坚持学习WF(2):WF创作模式和设计时工具 坚持学习WF(3):WF框架概览 2.3两篇主要全面的阐述了WF框架和Visual Studio...
我们将深入探讨如何使用Windows Presentation Foundation (WPF)、Windows Communication Foundation (WCF)和Windows Workflow Foundation (WF)这三种微软.NET框架的重要技术,来构建一个基础的"Hello World"应用程序...
在Windows Workflow Foundation (WF)中,自定义活动(CustomActivity)是开发人员根据特定业务需求创建的自定义...通过对`CaryActivity`源码的学习和分析,我们可以更好地理解WF的工作原理,提高我们的工作流开发能力。
首先,"坚持学习WF(1)从HelloWorld开始"引导读者入门,通过一个简单的示例介绍如何创建和运行WF工作流。此部分会解释WF的基本概念,如活动(Activity)、工作流实例(Workflow Instance)和执行生命周期。 接着,...
在这个黄金周系列课程的第九部分,我们将深入探讨如何在WF中实现“Hello World”示例,以帮助初学者快速理解这个强大的技术。 **WF的核心概念** 1. **活动(Activity)**:WF的基础单元是活动,它代表了工作流中的...
在这个场景下,"LE55AL88U52 101程序DH1WF0A0303 DH1WF0A0301 DH1WF0A0302 DH1WF0A0304.rar" 是一个压缩包,其中包含了针对特定型号智能电视的固件更新文件。 "LE55AL88U52" 可能是电视的型号,这通常由制造商定义...
"WF学习从入门到提高"的主题涵盖了从基础知识到高级技巧的全面学习路径,适合对WF感兴趣或需要在工作中应用WF技术的初学者和进阶者。 在WF的学习过程中,首先要理解的是WF的基本概念。WF提供了一种模型化的方式来...
1. **WF概念**:WF是基于事件驱动的编程模型,它允许开发者将业务逻辑分解为一系列可重用的工作流活动。这些活动可以是简单的任务,如发送电子邮件,也可以是复杂的业务逻辑序列。WF通过工作流服务(Workflow ...
在本学习笔记中,我们将探讨WF4.0的基础知识,包括如何开始使用WF4.0、活动(Activity)的介绍以及`WriteLine`活动的使用。 首先,创建一个WF4.0的工作流控制台应用程序涉及两个关键部分:XAML文件和宿主程序。XAML...
- **第1章:构建简单的工作流**:从零开始介绍如何构建第一个工作流项目,包括工作流的基本概念、设计模式和开发工具。 - **第2章:编码工作流**:进一步介绍如何通过编程方式创建工作流,包括状态管理、活动调度...
本章将带你入门WF,了解其基本概念、设计原则以及如何通过源代码下载进行学习。 WF的核心概念包括活动(Activity)、工作流(Workflow)、运行时(Runtime)和持久化(Persistence)。活动是WF中最基本的构建块,它...
- **示例1:订单处理**:使用WF设计一个订单处理工作流,包括接收订单、库存检查、发货通知等多个步骤。 - **示例2:请假申请审批**:构建一个请假申请的审批流程,涉及提交申请、部门经理审批、人力资源审核等环节...
为了演示如何使用WF 4.0创建一个简单的工作流,我们将创建一个简单的 "helloworld" 工作流,该工作流将在控制台窗口中输出 "helloworld"。 1. 在工作流编辑器中添加一个 `WriteLine` 活动。 2. 设置 `WriteLine` ...
Beginning WF: Windows Workflow in .NET 4.0 By Mark Collins Publisher: Apress 2010 | 500 Pages | ISBN: 1430224851 | PDF | 4 MB Windows Workflow Foundation is a ground-breaking addition to the core ...
《在.NET 4.0中开始使用WF Windows工作流》一书由Mark J. Collins撰写,深入探讨了在.NET框架4.0版本中如何利用Windows Workflow(WF)技术来构建和管理复杂的工作流程。该书作为一本入门指南,旨在帮助读者理解和...
这个源码库应该是为了帮助开发者逐步理解WF的工作原理和实际应用,通过一系列的示例代码来实现从基础到高级的进阶学习。 WF的核心概念包括活动(Activity)、工作流(Workflow)和执行引擎(Runtime)。活动是WF的...