Windows Workflow 4 基本上对原有的程序库进行了重写。虽然目标一样,都是为长时间运行的任务提供一种模型语言,但重写之后的程序库还是有很多与众不同的地方。
首先要说的是向后兼容性:完全没有。我们可以在 WF4 中通过 Interopt 活动来调用 WF3 工作流,但却有很多限制。比如说,我们无法使用 WF3 的 Send 和 Receive 活动,也无法暂停工作流或是调用其他工作流。
WF4 对 WF3 的重写是项浩大的工程,前者完全使用 XAML 来定义工作流,这么做的结果就是代码的生成更加容易,但也意味着我们无法再使用 Code 活动了。WF4 并不支持 State Machine 工作流,因此基于 State Machine 的所有内容都要重新设计了。WF4 处理错误的手段也发生了很大的变化,由于这个原因,Suspend 和 Terminate 活动也一去不复返了。还有很多其他的活动也发生了名称或是语义上的变化。Matt Milner 从去年 7 月起所维护的变化列表是最能反映这种变化的。
如果你还是一个Windows Workflow 菜鸟,没有使用过老版本,那么你是幸运的。WF4 极大地简化了工作流托管、数据管理以及客户化活动的创建。使用依赖属性(dependency properties)在活动间传递数据的时代已经过去了。
Windows Workflow 4 的一个主要卖点是与Windows Communication Foundation 和Windows AppFabric 的集成。微软设想的蓝图是:开发者通过外部的WCF 和内部的WF 构建消息应用,同时Windows Server AppFabric 为其提供托管服务。
评论