WF 4.0 beta1活动概览(2):Flowchart、Messaging、PowerShell以及Migration
2009-06-11 08:20 Windie Chai 阅读(2276) 评论(4) 编辑 收藏 举报Flowchart
Flowchart是WF中新引进的一种模型。Flowchart是一种众所周之的、可以直观地表示业务过程的图表。业务分析师、架构师和开发人员都会将Flowchart作为一种共同的语言来来表示业务过程。
Flowchart是一种非常强大的结构,因为它提供了简单的顺序序列,并且还具有回滚到上一执行点的能力。 而且这种图表的概念在计算机学科之外的其他学科中也被广为接受。
活动 | 描述 | 设计器外观 |
Flowchart | 是Flowchart的根活动。由于Flowchart本身也是一个活动,所以它可以被添加到任何容器活动中。 例如,我们可以将Flowchart添加到Sequence中,也可以将其添加到另一个Flowchart中。 右图中的绿色圆球表示Flowchart的start node 。 | ![]() |
FlowDecision | FlowDecision在Flowchart中模拟了条件性分支。可以将它视为Procedual的If活动在Flowchart世界中的替身。 此活动包含一个Boolean类型的表达式Condition。如果该表达式计算为True,True分支就会被执行(否则计划执行False分支)。 | ![]()
|
FlowSwitch | FlowSwitch活动根据一个expression来选择下一个节点。可以将FlowSwitch视为Procedual的Switch在Flowchart世界中的替身。 | ![]() |
Messaging
WF 4.0的消息处理活动被设计为支持面向消息的工作流,并且能将消息处理更好地集成到工作流中。它们能够让工作流将数据发送到其他系统中,并从其他系统中接收数据。这些活动可以通过关联(Correlation)来组合在一起,藉此来模拟许多复杂的消息交换模式(Message Exchange Patterns)。
活动 | 描述 | 设计器外观 |
Receive | 模拟消息的单向接收。它可以接收下列类型的数据:Message、DataContract类型、XmlSerializable类型以及MessageContracts。 | ![]() |
ReceiveAndSendReply | 此活动模板表现为一对已关联的Receive 活动和SendReply 活动。 通过使用此模板,你可以等待消息进来,然后发送一个回复给发送者。 由于Receive和SendReply位于Sequence中,你就可以在它们之间添加其他活动。 | ![]() |
Send | 模拟消息的单向发送。 它可以接收下列类型的数据:Message、DataContract类型、XmlSerializable类型以及MessageContracts。 此活动可以以下列两种方式来使用:
| ![]()
|
SendAndReceiveReply | 此活动模板表现为一对已关联好的Send活动和ReceiveReply活动。 通过使用此模板,你可以发送一个消息,然后等待目标的回复。 由于Send和ReceiveReply位于Sequence中,你就可以在它们之间添加其他活动。 | ![]() |
PowerShell
PowerShell活动,顾名思意,在WF程序中允许调用PowerShell cmdlet和脚本。
请注意,这些活动目前出现在在beta1的工具栏中,但在发布RTM后将不再可用。这是因为.NET Framework不允许依赖于自身并没有提供的技术。目前之所以这么做,是因为有许多客户需要PowerShell活动。在RTM中,你会发现这些活动会在SDK中以示例的形式出现。
活动 | 描述 | 设计器外观 |
InvokePowerShell | 调用一个不包含返回值的PowerShell cmdlet。InvokePowerShell可以用来调用简单的cmdlets和脚本。我们还可以向cmdlet传递参数和输入对象。执行之后,此活动会提供一组错误信息(如果发生错误的话)。 | ![]()
|
InvokePowerShell<T> | 此活动调用PowerShell cmdlet,并接收返回的结果。这种类型的活动都要比非泛型版本多一个InitializationAction。 InitializationAction用来将cmdlet的执行结果隐射到工作流的变量。 | ![]()
|
Migration
WF 3.x 和4.0 可以并存,但我们只能使用Interop活动来在WF 4.0的工作流中使用WF 3.x的活动。
活动 | 描述 | 设计器外观 |
Interop | Interop是一个WF 4.0活动,它封装了WF 3.x的活动(从 System.Workflow.ComponentModel.Activity派生而来的非抽象CLR类型),于是便允许WF 3.x的活动是用在WF 4.0的工作六种。请注意,这里说的WF 3.x活动可以是一个叶活动,也可以是一个完整的已编译的工作流(活动树)。 Interop活动连接了WF 4.0和WF 3.x活动执行模型的桥梁,使数据流可以跨越Interop边界,并且在WF 4.0工作流实例中启用了WF 3.x活动的持久性和跟踪。 Interop活动允许WF开发人员逐步地转移到WF 4.0模型中:
| ![]()
|
请注意!
这是一个漫长的旅程,对吗?但这仅仅是开始。WF 4.0有着大量的新功能,我也热切地渴望在以后的文章中和大家一起分享。
本文简单的介绍了活动工具箱中提供的活动。如果你想要立即查看这些活动,可以下载WF samples。 查看位于%SamplesRoot%\WF\Built-InActivities文件夹中的示例是一个不错的出发点。
本文翻译自:http://blogs.msdn.com/endpoint/archive/2009/05/29/a-tour-on-the-wf4-activity-palette.aspx