《WF编程》系列之34 – 基本活动:状态活动
到目前为止,我们所讨论的工作流都是顺序工作流,而WF还支持另外一种工作流机制-状态机(State-Machine)工作流,本节就来介绍这些在状态机工作流中工作的活动.
到目前为止,我们所讨论的工作流都是顺序工作流,而WF还支持另外一种工作流机制-状态机(State-Machine)工作流,本节就来介绍这些在状态机工作流中工作的活动.
今时今日,一个完善的软件无可避免的需要发送或接受SOAP请求,WF也包含了一些围绕Web Services的客户端或者服务器端的活动.
WF中关于条件和规则的活动有两个: ConditionedActivityGroup(CAG) 活动和Policy活动.虽然我们也把CAG视作控制流的活动,但事实上CAG更加侧重于对条件和规则的控制.
在WF中,事务也遵从ACID(Atomic,原子性;Consistent,一致性;Isolated,不相关性;Durable,持久性)理论.也就是说,WF Runtime也会用到System.Transactions.Transaction类.Transaction类可以管理使用各种类型持久化存储的事务,例如Miscrosoft SQL Server和其它关系数据库.必要时,Transaction类还可以使用Microsoft Distributed Transaction Coordinator(MSDTC,微软分布式事务协调器)来协调两个相同重量级的事务.
Fault,故障,现在官方已经将其翻译为错误,那么以后的随笔中我也就采用官方的翻译吧.
错误处理也属于流程控制的一部分,这一节我来介绍一下有关错误处理的活动.错误是指在工作流执行期间发生的异常.我们可以使用错误处理程序来捕捉这些异常并尝试做一些”修复”工作.我们可以补偿提交的事务,或者发送Email来警告管理员并等待丢失的数据被修复.
像CallExternalMethod活动一样,HandleExternalEvent活动也有一个必须设置的InterfaceType属性。
让工作流和外部世界进行交互也并不是什么难事,因为WF本身就内置了一些活动来完成这样的工作.
这一节我们来讨论一下可以和宿主进程提供的本地服务进行通信的活动们
本文向大家介绍了EventHandlingScopeActivity、SynchronizationScopeActivity 和ReplicatorActivity这三个基本活动。
本文向大家介绍了ParallelActivity、DelayActivity和ListenActivity这三个基本活动。
InvokeWorkflow活动可以异步的执行另一个工作流.因为执行过程是异步的,所以我们无法获取另一个工作流的输出参数,但我们可以和宿主建立额外的通信机制来获取其输出.