一步一步学WF系列(一)——Hello world开始

1. 什么是工作流

我给工作流下了这样的定义,工作流就是一个过程,这个过程会产生一定的结果。

其实,在OA系统中,审批流就是我们最常见的工作流之一。

另外,简单了说,其实我们所画的流程图就是一种最简单的工作流,工作流最大的特点就是图形化。工作流是按照顺序驱动或者事件驱动去触发下一步操作,从而最终得到一个结果。

其实,我们也可以把他理解为一个过程化的职责链。

2. 工作流的类型

工作流大致分为两类,顺序工作流和事件驱动工作流。

顺序工作流是我们很常见的工作流,这个工作流是由我们事先规定好的顺序一步步地走下去,他们执行的步骤是不可以改变的。

事件驱动工作流,我们也称之为有限状态机,他状态的变更是犹由于特定的事件而触发的。

举例如下:

顺序工作流:审批流其实就是典型的顺序工作流,一个审批对象一步步地层层审批,拿一次面试过程来说,首先人事部简历筛选,然后是技术经理面试,然后是总经理面试,这都是按照流程来的。

事件驱动工作流:想想我们的软件工程流程,是不是这样的:

3. 第一个实例:Hello world

学任何程序,第一个例子往往都是Hello world,这次也不例外。

让我们先来构建一个简单的WF小程序。

我所使用的环境是Visual Studio 2008 + .NET Framework 3.5 sp1来搭建项目:

首先让我们来熟悉环境:

打开VS2008,选择新建——> 项目:

然后选择Workflow——>顺序工作流控制台应用程序。然后点击确定就进入了我们的WF项目中。

在项目中,我们可以看到Program.cs和Workflow1.cs。Workflow1我不多说,这个当然是我们的工作流程序。

那来看一下Program.cs:

4. 宿主

Windows workflow foundation不是一个独立的产品,他需要在一个宿主的环境下才能运行。

这个宿主可以是控制台应用程序,Winform程序,也可以是ASP.NET程序。

WF的运行是通过工作流的运行时引擎来实现的。实际上,工作流运行时引擎和宿主的应用程序在同一进程中。

5. 继续Hello world

在工具箱中,拖出一个Code控件。

然后为codeActivity1起一个有意义的Name为codeActivityHello。

然后去实现ExcuteCode事件,实现这个事件,运行库将自动调用这个方法。

实现如下:

private void codeActivityHello_ExecuteCode(object sender, EventArgs e)

{

Console.WriteLine("Hello world");

}

好了,让我们运行这段程序:

继续>>下一页[第1页][第2页]

时间: 2024-09-04 21:14:45

一步一步学WF系列(一)——Hello world开始的相关文章

艾伟:一步一步学WF系列(三)

1. 写在前面 原本计划从这篇文章开始,开始介绍活动的使用方式,但是考虑到很多在WF中,重要的类和概念都没有清晰,所以还是在本文中继续明确一下WF中重要的类的用法. 这节是纯粹的理论知识,只是为你的后续学习打下一个基础,如果您不敢兴趣,可以略过. 2. WorkflowRuntime类 WorkflowRuntime:工作流运行时. 这个类有四个作用: <1> 管理工作流运行时 <2> 启动和管理工作流实例 <3> 管理运行时服务 <4> 处理运行时事件 A

一步一步学WF系列(三)

1. 写在前面 原本计划从这篇文章开始,开始介绍活动的使用方式,但是考虑到很多在WF中,重要的类和概念都没有清晰,所以还是在本文中继续明确一下WF中重要的类的用法. 这节是纯粹的理论知识,只是为你的后续学习打下一个基础,如果您不敢兴趣,可以略过. 2. WorkflowRuntime类 WorkflowRuntime:工作流运行时. 这个类有四个作用: <1> 管理工作流运行时 <2> 启动和管理工作流实例 <3> 管理运行时服务 <4> 处理运行时事件 A

一步一步学WF系列(二)工作流与Visual Studio

1. 工作流的开发风格 在WF中,有三种开发工作流的方式. <1> Markup-only <2> Code-and-MarkUp <3> Code-only 在这里,我就不想再去花时间去举例子,我们长话短说. 工作流的布局方式是XAML格式,相信了解WPF和Sivlerlight的人对这点都比较清楚.其实这个和WF是一样的.这个就是所谓的Markup-only模式. 而另一个极端是Code-only.我们还是去想WPF中的例子,如果WPF不熟悉我们去想想Winform

一步一步学WF系列(四)工作流模拟登陆

1. 摘要 我们之前已经熟悉了关于WF的基本概念,相信各位也都跃跃欲试.想步入真正的WF开发. 从本文开始,我们就先来熟悉在WF中的活动. 2. 活动 WF的核心就是一系列的活动. 而工作流就是多个活动通过某种控制模组合起来形成一个连续有序的,通过工作流引擎并且根据业务需要自定义和自流转的系统. 通过以上的两个定义,相信我们都应该了解活动之于工作流意味着什么. 3. CodeActivity Code控件是我们在WF中算是使用率最高的控件了.用户通过Code控件执行完成某项功能. Code控件常

一步一步学Silverlight :使用样式封装控件观感

概述 Silverlight 2 Beta 1版本发布了,无论从Runtime还是Tools都给我们带来了很多的惊喜,如支持框架语言Visual Basic, Visual C#, IronRuby, Ironpython,对JSON.Web Service.WCF以及Sockets的支持等一系列新的特性.<一步一步学Silverlight 2系列>文章带您快速进入Silverlight 2开发. 本文为系列文章第八篇,主要介绍在Silverlight中使用Style元素封装控件观感 Silv

一步一步学Silverlight :在Silverlight中如何用JavaScript调用.NET代码

概述 Silverlight 2 Beta 1版本发布了,无论从Runtime还是Tools都给我们带来了很多的惊喜,如支持框架语言Visual Basic, Visual C#, IronRuby, Ironpython,对JSON.Web Service.WCF以及Sockets的支持等一系列新的特性.<一步一步学Silverlight 2系列>文章将从Silverlight 2基础知识.数据与通信.自定义控件.动画.图形图像等几个方面带您快速进入Silverlight 2开发. Silv

一步一步学Silverlight :基本控件

概述 Silverlight 2 Beta 1版本发布了,无论从Runtime还是Tools都给我们带来了很多的惊喜,如支持框架语言Visual Basic, Visual C#, IronRuby, Ironpython,对JSON.Web Service.WCF以及Sockets的支持等一系列新的特性.<一步一步学Silverlight 2系列>文章带您快速进入Silverlight 2开发. 本文为系列文章第二篇学习几个基本的控件. 在Silverlight 2中,提供了大量的控件,包括

一步一步学Silverlight :数据与通信之WebClient

概述 Silverlight 2 Beta 1版本发布了,无论从Runtime还是Tools都给我们带来了很多的惊喜,如支持框架语言Visual Basic, Visual C#, IronRuby, Ironpython,对JSON.Web Service.WCF以及Sockets的支持等一系列新的特性.<一步一步学Silverlight 2系列>文章带您快速进入Silverlight 2开发. 本文将介绍如何在Silverlight 2中使用Web Client进行通信. 简单示例 编写一

一步一步学Silverlight :使用控件模板

概述 Silverlight 2 Beta 1版本发布了,无论从Runtime还是Tools都给我们带来了很多的惊喜,如支持框架语言Visual Basic, Visual C#, IronRuby, Ironpython,对JSON.Web Service.WCF以及Sockets的支持等一系列新的特性.<一步一步学Silverlight 2系列>文章带您快速进入Silverlight 2开发. 本文为系列文章第九篇,主要介绍如何使用控件模板定制控件的观感.Silverlight提供了极其强