代码改变世界

《WF编程》系列之2 - 漫游工作流:活动与自定义活动

2007-03-28 09:38  Windie Chai  阅读(7538)  评论(1编辑  收藏  举报

1.2 漫游工作流

Windows Workflow Foundation是.NET 3.0中新增的一部分,新的.NET 3.0还包括Windows Presentation  Foundation(WPF)和Windows Communication Foundation(WCF)这两项新技术.

支持Windows Workflow (WF)的操作系统包含Windows XP, Windows Server 2003和最新的Windows Vista.

WF的使用场景可以是智能客户端应用程序;可以是简单的控制台程序;也可以是包含Windows 服务,ASP.NET Web应用程序和Web Service的服务器端应用程序.WF还出现在微软自己的一些产品中,包括Windows SharePoint Services 和 Microsoft Biztalk Server.现在我们来简单的看看Windows Workflow的基本特点.

1.2.1 活动

Windows Workflow 主要的组成部件是活动(Activity),活动组成了工作流中的步骤(或任务),也可以说活动定义了工作流.我们按顺序和层次组织活动,然后这些活动将作为指令供工作流引擎执行.

WF中所有的活动都继承一个基类-Activity,Activity类定义了所有活动的公共方法(比如Execute和Cancel),公共属性(比如Name和Parent)和公共事件(如Executing和Closed).

WF就运作在这些基本活动库中的现成活动之上.基本活动库主要包括流程控制(如IfElseActivity和WhileActivity),等待事件,调用Web Service和执行规则引擎等等的活动.

1.2.1.1自定义活动

Windows Workflow允许开发人员扩展基本活动库的功能,通过创建自定义活动来解决特定领域的问题.例如,送餐工作流如果使用了SendOrderToKitchen 和NotifyCustomer这两个活动就会方便很多.

自定义活动也继承自Activity,工作流引擎并不会区别一个活动是Microsoft的活动还是第三方自定义活动.

我们可以使用自定义活动来创建应用于特定领域的工作流解决方案.这样做可以极大的简化问题.例如, SendOrderToKitchen活动调用Web Service并进行其他内部逻辑操作,而且很明显,这个活动只针对餐馆这个领域定制.开发人员使用这个自定义活动会比使用基本活动库中的活动更有效率.不仅开发人员,餐馆管理者也会很容易理解SendOrderToKitchen并会在可视化工作流设计器上设计工作流(但餐馆管理者不一定对WhileActivity和InvokeWebServiceActivity感兴趣).