快捷搜索:

详解Visual Studio顺序型工作流的创建

  【IT168 技术文档】方便起见,许多在本次练习中将用到的代码段可以通过Visual Studio代码段得到. 这次实验所需要的安装将会安装这些代码段。需要作如下步骤:

  1. 运行位于本次实验Setup 目录下的IntroToWF4Lab.vsi安装文件。

  2. 根据向导的指示完成代码段安装。

  本次实验包括以下练习。这些练习按顺序进行。每个练习下的Begin文件夹里有一个解决方案。你可以通过打开这个解决方案开始特定的练习。

  初始化

  • Visual Studio解决方案。 根据不同的练习,你可以找到相应的Visual Studio C#和Visual Basic解决方案。这个解决方案是练习的起点。

  如果我遇到困难怎么办?

  在每个练习中,你都能找到一个能够正确运行的最终方案,它可以帮助你找到完成练习的正确步骤。

  记得在打开任何使用工作流设计器的文件前编译解决方案。

  工作流执行一个业务流程。流程的每一步用一个活动来实现。在这个练习中,你将用Windows Workflow Foundation创建和测试一个简单的“Hello Workflow” 流程。

  创建一个简单的“Hello Workflow” 应用程序

  在这个任务中你将 创建一个很简单的工作流对应于以下代码:

  privatestaticvoid SayHello()
  {
  Console.WriteLine(
"Hello Workflow 4");
  }
  Visual Basic
  Private Shared Sub SayHello()
  Console.WriteLine(
"Hello Workflow 4")
  End Sub

  1. 从Start | All Programs | Microsoft Visual Studio 2010 启动 Microsoft Visual Studio 2010.

  2. 选择 File / New Project Ctrl+Shift+N 并设置项目如下:

  ·Installed Templates: 选择 Visual C# 或 Visual Basic。 然后在所选语言下选 Workflow

  ·Template: Workflow Console Application

  ·Name: HelloWorkflow.

  ·Location: %TrainingKitInstallFolder%\Labs\IntroToWF\Ex1-HelloWorkflow\Begin

  ·Solution: HelloWorkflow

详解Visual Studio顺序型工作流的创建

  创建一个新的 Workflow Console Application (C#)

详解Visual Studio顺序型工作流的创建

  创建一个新的Workflow Console Application (Visual Basic)

  3. 由于我们的业务流程是一个单阶段流程,我们可仅加一个WriteLine 活动来实施这个流程。从 Toolbox, 拖一个 WriteLine 活动放在设计图面.

详解Visual Studio顺序型工作流的创建

  加 WriteLine 活动

  注意:如Toolbox窗口未出现,从View菜单选Toolbox。

  4. 把 WriteLine Text 属性设成"Hello Workflow 4".

  设置Text 属性

  WriteLine 活动

  WriteLine 活动是一个简单的活动在控制台显示一个消息。它的Text属性是一个表达式,可以是一个函数的结果或一个目标的属性值。在本例中,表达式是一个字符串,所以需加引号。

  验证

  为了验证你已完成练习1的所有阶段,执行以下步骤:

  1. 按 CTRL+F5 编译并无调试运行。你的应用程序应在控制台运行并打印消息“Hello Workflow 4”.

详解Visual Studio顺序型工作流的创建

  完成的 HelloWorkflow 应用程序

  The CodeActivity

  至此我们已经看到,WF4是由一个编辑.xaml文件的设计器和一个执行活动的运行时组成。当你写一个工作流时,你实际上是编译成一种新的活动。而活动只不过是从System.Activities.Activity或它的子类继承下来的类,所以你也可以用C#, VB或XAML来写工作流。在这个练习中,我们将用C#或VB来编写活动,用于实现我们的“问候”商务流程。

  之前我们说活动是用于实现商务流程的。有些活动通过调用其它活动来实现流程。比如我们的SayHello活动没有直接向控制台写文字,而是通过调用WriteLine活动来达到目的。我们也可以用C#或VB来继承System.Activities.Activity, 然后向如下代码一样给Implemenantation赋值,来实现同样的SayHello活动:

  publicsealedclass SayHelloActivity : Activity
  {
  WriteLine writeLine
=new WriteLine() { Text ="Hello Workflow 4" };
  
public SayHelloActivity()
  {
  Implementation
= () => { return writeLine; };
  }
  }
  Visual Basic
  Public NotInheritable Class SayHelloActivity
  Inherits Activity
  Private writeLine As New WriteLine With {.Text
="Hello Workflow 4"}
  Public Sub New()
  Implementation
= Function()
  Return writeLine
  End Function
  End Sub
  End Class

您可能还会对下面的文章感兴趣: