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了吧 :)