代码改变世界

初窥WF 4.0 beta1

2009-05-20 02:04  Windie Chai  阅读(...)  评论(...编辑  收藏

微软终于发布了Visual Studio 2010 beta1,而在这个版本中,WF也终于以崭新的面貌出现,并且让我们大吃一惊。

和Visual Studio 2008一样,Visual Studio 2010在新建项目时也可以指定目标.NET Framework版本,并且可用的项目模板会根据选择的.NET Framework而发生变化。

当使用.NET Framework 3.5时,可创建如下工作流项目,着我们已经很熟悉了:

 image

而当使用.NET Framework 4.0时,可创建的工作流项目却和使用.NET Framework 3.5大为不同:

 image

最明显的变化莫过于取消了状态机工作流的项目模板,取而代之的是一种新的工作流类型:Flowchart。与状态机相比较,Flowchart更加灵活,也更符合人类的思维模式。而且Flowchart和Sequential之间是可以相互嵌套使用的,这使得我们在需求分析阶段画出的工作流草图几乎可以原封不动的转移到工作流设计器中。

2009-5-20 1-30-52

我简单用Flowchart画了一下那个古老的“多级审批工作流”,说实话,采用WPF的设计器并不是那么好用和高效。

不过还是可以看出Flowchart的强大和人性化,让我们放心地和状态机说再见吧。

此外,添加新项的项模板也有所不同:

image

在添加新项和新建项目中都有关于“Activity Designer ”的模板。这一类模板用于创建活动设计器,而且我们像设计WPF程序一样设计活动设计器,极为方便。

在Visual Studio 2010 beta1中,我们可以清楚地看到这些活动:

 2009-5-20 0-35-28

这一次我们看到的活动列表和我之前在《WF 4.0,迎接变化》一文中所披露的又有所不同,这一版提供的活动从功能上来说更为丰富,甚至可以通过活动来操作集合了(AddToCollection、ClearCollection、RemoveFromCollcetion、ExistInCollection、ForEach……)。

另外我们还注意到,WF 4.0中的工作流会以XAML为扩展名来保存(又绕回原来的扩展名了),并且没有了代码隐藏文件。因为WF 4.0的每一个活动都可以看做是一个作用域,在这个作用域里该活动可以维护自己的变量和输入输出参数,输入输出参数和变量之间可以进行松散的绑定,这里之所以说“松散的绑定”,是为了和以前的依赖项属性绑定方式相区别。依赖项属性的绑定基本上可以看做是变量和变量之间的绑定,而WF 4.0的绑定则可以是一个表达式,更加灵活。

也许WF产品组希望我们不再依赖于在工作流中编写代码来驱动工作流进行,而是采用活动和数据来驱动工作流。所以在WF 4.0中,自定义活动仍然是包含代码隐藏文件的,是可以自由编写代码的。

先暂时写到这里,简短的开个头,希望园子里的WF同好者能够一起来挖掘WF 4.0的新特性!