Windows Workflow Foundation之旅(六)——框架组成、工作流创作模式

吃可爱长大的小学妹 提交于 2020-03-23 02:33:46

翻译自:ms-help://MS.WinWF.v1.EN/WinWF_GettingStarted/html/68db11eb-3d20-41ca-90f7-ae635fd4e2a2.htm

 

这个专题前面的三个指南,介绍了WWF编程了三个大方面:顺序工作流状态机工作流和自定义活动。相信大家对WWF的编程模型已经有了一个初步的了解。从这次开始,我们就要深入WWF,全面的探究一下WWF

传统的编程语言是针对短期运行应用程序的,缺乏持久化抗中断的功能支持。WWF是一个框架,不是一种语言。他对工作流应用程序有深刻的认识,提供了各种手段来处理持久化,中断补偿,故障恢复等功能。

WWF同时具有灵活性可扩展性。你可以直接用代码定义工作流,也可以用外部的定义语言也定义,或同时使用两者。你可以用你自己的自定义活动来实现自定义的工作流模式,以到达可重用的目的。

WWF支持模型驱动的开发,提供了可视化的设计工具,并隐藏了一些系统级的功能,如事务、状态管理和并发控制,是开发者可以专注于业务模型。

 

WWF中的工作流和活动

 

工作流是一组相关的活动的集合。

活动WWF中可建模、可编程、可重用、可执行的原子单位。WWF提供了一组丰富的活动库,来构建你的工作流。

 

WWF的工作流应用程序

 

一个应用程序必须做以下步骤,才能使用WWF

1.  创建一个WorkflowRuntime的实例。它代表了工作流引擎。

2.  为运行时引擎配置服务

3.  启动引擎。

4.  使用引擎来创建和管理工作流。

当工作流运行时, 引擎使用大量的可插拔的服务来处理持久化、事务、线程、跟踪和计时器等任务。

你可以通过配置这些服务来扩展和修改运行时引擎的行为,也可以创建自定义的服务来提供另外的功能。

 

(译者)很多朋友在回复中提了几个方面的疑问。这里我统一解答下:

n         WWF支持以编程方式,固化的定义工作流,也支持以XML文件形式定义工作流。

n         WWF可以以编码的方式来创建工作流,也可以用工作流模型设计工具来定义,这些工具集成在了vs2005中。我会在以后的随笔中介绍设计工具。用设计工具创作的工作流也可以导出为XML定义。

n         WWF目前也处于测试阶段,不太适合于商用。

n         WWF目前版本仅支持.NET Framework 2.0。而vs2005又不支持1.1,所以,vs.net2003下不能开发WWF应用。

 

下面列出的是你在创建工作流中会用到的一些概念。

 

Ø         顺序工作流

Ø         状态机工作流

Ø         工作流创作模式

Ø         使用活动控制流程

Ø         在工作流中使用条件

Ø         在工作流中使用事务

Ø         获得工作流中的状态信息

Ø         在工作流中使用异常

Ø         在工作流中使用补偿?(Compensation

Ø         使用时间处理活动

Ø         在工作流中使用代码

Ø         在工作流中使用动态更新

Ø         在工作流中使用数据

Ø         在工作流中使用角色

Ø         在工作流中使用XML支持

Ø         编译工作流

Ø         序列化工作流

 

之后的篇章中,我讲详细解释以上的概念。



工作流创作模式
               

ms-help://MS.WinWF.v1.EN/WinWF_GettingStarted/html/aacf4ec6-da05-4974-958a-974769dda739.htm

 

WWF支持两种不用的工作流创作风格:顺序工作流和状态机工作流。顺序工作流只向前运行的,它也用于那些重复的,流程相对固定的场景中。状态机工作流讲工作流设计为一个状态机。工作流本身包含了一组状态。

默认情况下,WWF将工作流定义与业务逻辑分隔开。在一个典型的创作场景中,设计着使用设计器来设计工作流定义,然后使用C#或其他.NET语言也编写业务逻辑。这种创作模式叫代码分隔(code-separation)。

WWF支持以下创作模型:

l         Code-only  这是WWF默认的创作模式。在这种模式下,你需要使用WWFAPI,以编程的方式用代码来定义工作流。工作流定义代码和业务逻辑代码将混合在一起。

l         Code-separation  这种模式可以同时使用设计器和代码。

l         No-code  这种方式下,你可以使用任何的文本编辑器来定义工作流,然后使用WWF命令行编译器来编译文本工作流定义。

 

想了解更多工作流创作模式的信息,请看 顺序工作流,状态机工作流,在工作流中使用代码,编译工作流(没有链接的章节在将写好后加上链接)。

待续...

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!