WF框架编程(第二部分介绍)
第二部分:深入wf框架
二、Wf使用过程分析
Wf从使用过程来说可以分解为如下几个阶段:列出各个阶段并在后续部分将逐一论述。
1. 使用设计器定义工作流
安装完vs2008或者vs2005的扩展包后,Visual Stduio会集成wf的设计器。我们也可以利用wf框架开发制作自定义的工作流设计器,并且集成到自己的应用程序中。设计器的宿主可以是Wnform也可以是Webform。
利用设计器可以对已经运行的工作流实例动态更新(版本控制),修改流程规则。利用wf框架,也可以在程序运行时动态添加流程。
流程的控制流要不断查看条件、规则确定流程的运转方向,设计器可以非常方便的提供条件、规则的设置。
最后流程设计完毕,需要序列化设计器,目前可以序列化为代码和XAML两种形式。
2. 编译、验证
设计器定义流程后,首先编译为临时程序集,验证工作流后生成活动代码,再调用CLR自带的编译器编译成为常规的程序集。
3. 加载并运行工作流实例
通过使用Wf程序加载器的一种服务,Wf运行时首先获得流程的一份拷贝,拷贝以活动树的形式存在,也叫(WF program prototype)。这是工作流实例的模板。使用CreateWorkflow方法,多个工作流实例。
4. 调度运行工作流实例
这里会讲WF中基本的重要的一些概念,调度器,调度器队列,活动状态机,工作流宿主,WF线程模型。介绍WF已经定义好的Acitvity。对Wf工作流的调度执行就是建立在对这些概念的理解上。最后会讲叙取消、错误、补偿等特殊流程的实现。还会讨论事务和数据绑定。
5. 监控
Tracking服务分析,自定义的图形化监控(winform,webform)。
本着从易到难的思路,讲述顺序如下:
1) 调度运行
2) 监控
3) 设计器设计工作流,加载
4) 编译、验证