Lab01已经完了,lab02中说的是创建自定义的Activity Activities是工作流模型的一个可执行单元,它可以被重用,也可以把多个Activities整合成一个Activities。一个工作流可以由多个Activities组成,一个Activities也可以由其他的Activities构成,最终,每个Activities都作为一个可执行单元的形式表现出来。这次,我们来学习创建一个简单的Activity。 Activities是一个其实类,我们可以为其编写属性,方法和事件----这些属性方法和事件引用自workflow。我们还可以创建Activity并部署到.net程序集中来重用。 先看第一个: 使用activity设计器创建一个合成的定制activity 在这个练习里,我们将创建一个有两个分开的代码段组成的activity,然后我们将在一个工作流项目中使用这个activity,运行这个工作流察看运行结果。
创建一个新的WF项目 1. 创建一个名称为CompositeActivitySample的顺序工作流控制台应用程序。 2.
3. 打开Program.cs查看其代码。 4. Program.cs的Main()方法包含了启动,加载和执行和等待工作流完成的示例代码。 5. 将项目中的Workflow1.cs重命名为HelloWorldWorkflow.cs,并在弹出的提示对话框中选择时,修改所有代码引用。
创建一个Activity项目 现在我们已经创建了一个工作流项目,我们接下来要创建一个Activity项目来添加到解决方案。 在这个项目中我们去定制一个新的activity,这个新的activity中我们去添加两个基本的activity --- code的来整合成我们定制的新的activity 。 1. 新建一个项目,选择“工作流Activity库”,名称为HelloWorldActivityLibrary。 2. 重命名Activity1.cs为HelloWorldActivity.cs。同样在弹出的是否对起所有引用的项目执行重名名提示时选择是。 3. 打开HelloWorldActivity的设计视图。 4. 从工具箱中拖拽一个Code activity到我们的设计视图中。 5. 如图:
6. 修改起(Name)属性为writeHello
7. 双击设计视图中的writeHello activity创建一个writeHello_ExecuteCode方法。 8. 在writeHello_ExecuteCode 方法中输入如下代码: Console.Write("Hello, "); 9. 现在我们回到设计视图,再拖拽第二个Code activity到我们的设计视图中writeHello的下面,并修改(Name)属性为writeWorld。 10. 双击设计视图中的writeWorld activity创建一个writeWorld _ExecuteCode方法。 11. 在 writeWorld _ExecuteCode 方法中输入如下代码: Console.WriteLine("World"); 生成工作流解决方案 现在我们将刚刚创建的这个activity添加到工作流中,并运行察看效果。 1. 我们点“生成---生成解决方案”或者直接点F6来生成解决方案。 2. 选择CompositeActivitySample项目中的HelloWorldWorkflow.cs来打开设计视图。 3. 这时,我们可以看到工具箱中会出现新的组件栏: 4. 5. 拖拽HelloWorldActivity到我们HelloWorldWorkflow的工作流设计视图中,并且把这个activity的(Name)属性修改为helloWorld。
6. 现在我们把CompositeActivitySample作为启动项目按ctrl+f5查看运行结果吧。 7. 8. 这里我们创建的这个activity按照顺序工作流的形式进行了执行。打印出“Hello,World” 9. 现在我们应该已经知道怎样创建一个简单的合成的activity了吧。 |