在.NET Framework 4版本中,对于前一个版本如.NET 3.0 和3.5, Windows Workflow Foundation 介绍了大量重大的改变针.事实上,团队已访问了编程对象,运行库和工具的核心,并已重构了每一项,目的不但是为了提高性能和效率,而且还记录了从使用早期版本的客户中获取的重要反馈.所做的重大改变,为开发人员采用WF提供了最好的经验,并且可以继续使用WF强大的基础组件构建应用程序.这里介绍了一些高级别的更改,通过这篇文章的每个主题更深的了解它.
在继续了解之前,我们需要重点了解的是当前这个版本向后兼容性是主要的目标.在System.Activities.* 程序集中有新的架构组件,而System.Workflow.*程序集可以在向后兼容的架构组件中找到.
System.Workflow.*程序集是.NET Framework 4其中的一部分,.NET Framework 4提供了完全向后兼容的功能,因此你可以把原来的工作流代码迁移到.NET 4中.在本文中,我使用WF4来引用System.Activities.*程序集的新组件,用WF3来引用System.Workflow.* 程序集的组件.
设计器
在工作流的设计器中是改善最明显的地方之一.易用和性能是VS2010Team版的主要目的.活动设计器全部是基于Windows Presentation Foundation (WPF),带给用户丰富的体验优势,可以构建声明性的用户界面架构.在可视化环境中活动的开发人员可以使用XAML定义他们活动的外观,与用户的交流.另外,重新将应用程序导入到工作流设计器中使非开发人员可以查看和沟通你的工作流变得很容易.
数据流
在WF3中,工作流的数据流比较难以理解.WF4为数据流和使用参数,变量的范围提供清晰,简洁的模型.所有开发人员都熟悉的这些概念,数据存储的定义还有工作流和活动的数据流的输入和输出变得更加简单易懂。数据流模型也使得给定的活动的预期输入输出数据更加明显,同时提高了运行时的性能,使管理数据更容易。
流程图
要使开发人员可以使用流程图模型定义工作流添加了一种新的名为流程图的活动控件。当创建解决方案或设计业务流程时,通过流程图更容易理解概念,很多分析师和开发人员通过流程图理解业务流程的过程。因此,创建一个活动控件来实现这些功能。流程图可执行回退上一步,拆分基于单一条件的逻辑或一个按钮或案例的逻辑的操作。
编程模型
WF编程模型已经发生了更改,使得它更简单,更强大。WorkflowElement 在编程模型中是核心基类表示工作流和活动。此外,当你不想通过复杂的设置指定环境时,无需再去创建WorkflowRuntime调用工作流,只需简单地创建流程实例和执行它,简化单元测试和应用程序方案。最后,工作流编程模型已经是全面声明性组成的活动,没有后台代码,简化了工作流创建活动的过程。
Windows Communication Foundation (WCF)集成
WF的优点应用到两个方面,一创建服务,二销毁或协调服务的交互。更大程度地增强了WCF与WF的集成。新邮件活动、消息的相关性、提高了宿主的支持和全面的声明性服务定义是改进的主要方面。