跟我一起学Windows Workflow Foundation(5)-----使用activity设计器创建一个整合的定制activity

原创 2007年09月17日 09:51:00

Lab01已经完了,lab02中说的是创建自定义的Activity

Activities是工作流模型的一个可执行单元,它可以被重用,也可以把多个Activities整合成一个Activities。一个工作流可以由多个Activities组成,一个Activities也可以由其他的Activities构成,最终,每个Activities都作为一个可执行单元的形式表现出来。这次,我们来学习创建一个简单的Activity。

Activities是一个其实类,我们可以为其编写属性,方法和事件----这些属性方法和事件引用自workflow。我们还可以创建Activity并部署到.net程序集中来重用。

先看第一个:

使用activity设计器创建一个合成的定制activity

在这个练习里,我们将创建一个有两个分开的代码段组成的activity,然后我们将在一个工作流项目中使用这个activity,运行这个工作流察看运行结果。

创建一个新的WF项目

1. 创建一个名称为CompositeActivitySample顺序工作流控制台应用程序。

2.

New Picture (8)

3. 打开Program.cs查看其代码。

4. Program.csMain()方法包含了启动,加载和执行和等待工作流完成的示例代码。

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. 如图:

CropperCapture[2]

CropperCapture[3]

6. 修改起(Name)属性为writeHello

CropperCapture[4]

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

New Picture (10)

6. 现在我们把CompositeActivitySample作为启动项目按ctrl+f5查看运行结果吧。

7. .

8. 这里我们创建的这个activity按照顺序工作流的形式进行了执行。打印出“Hello,World”

9. 现在我们应该已经知道怎样创建一个简单的合成的activity了吧 :)

 

现在可用:Workflow Foundation Activity Pack for Windows Azure CTP 1

我们很高兴地宣布:Workflow Foundation (WF) Activity Pack for Windows Azure发布了!请参阅我们的CodePlex 页面来查看下载信息。也可以通过N...

和我一起学Windows Workflow Foundation(微软工作流)

和我一起学Windows Workflow Foundation(微软工作流)
  • mq0036
  • mq0036
  • 2011年04月20日 10:00
  • 2194

跟我一起学extjs5(07--继承自定义一个控件)

跟我一起学extjs5(07--继承自定义一个控件)         Extjs的开发都可以遵循OOP的原则,其对类的封装也很完善了。自定义一个控件最简单的办法就是继承一个已有的控件...
  • jfok
  • jfok
  • 2014年07月01日 14:01
  • 19484

跟我一起学extjs5(41--增加一个自定义模块(源码下载)[2销售合同加入菜单和模块展示])

跟我一起学extjs5(41--增加一个自定义模块[2销售合同加入菜单和模块展示])         在前面一节销售合同模块的信息导入系统后,需要在菜单中加入这个模块,但是现在菜单模块没法利用此系...
  • jfok
  • jfok
  • 2014年10月17日 08:56
  • 8617

跟我一起学extjs5(36--单个模块的设计[4根据菜单建立相应的模块])

跟我一起学extjs5(36--单个模块的设计[4根据菜单建立相应的模块])         前几节处理好了后台,现在又要处理前台了。首先是要修改菜单的选择事件,在创建一个module的时候将 m...
  • jfok
  • jfok
  • 2014年10月11日 11:55
  • 4832

跟我一起学extjs5(25--模块Form的自定义的设计[3])

跟我一起学extjs5(25--模块Form的自定义的设计[3])         自定义的Form已经可以运行了,下面改一下配置,把Form里面的FieldSet放在Tab之下。修改一下Module...
  • jfok
  • jfok
  • 2014年07月30日 09:34
  • 6593

跟我一起学extjs5(35--单个模块的设计[3根据类的标注自动生成数据])

跟我一起学extjs5(34--单个模块的设计[2根据类的标注自动生成数据])         然后在hibernate.cfg.xml中加入:         至此这...
  • jfok
  • jfok
  • 2014年10月10日 15:13
  • 4143

跟我一起学extjs5(38--单个模块的设计[6取得模块列表数据])

跟我一起学extjs5(38--单个模块的设计[6取得模块列表数据])         上一节中做好了前后台的程序,现在来看看取得数据的运行过程。在菜单中选择 “系统管理”--“模块分组”。就可以...
  • jfok
  • jfok
  • 2014年10月13日 09:45
  • 4124

跟我一起学extjs5(22--模块Form的自定义的设计)

跟我一起学extjs5(22--模块Form的自定义的设计)         前面几节完成了模块Grid的自定义,模块Form自定义的过程和Grid的过程类似,但是要更复杂一些。先来设计一下要完成...
  • jfok
  • jfok
  • 2014年07月28日 09:08
  • 6432
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:跟我一起学Windows Workflow Foundation(5)-----使用activity设计器创建一个整合的定制activity
举报原因:
原因补充:

(最多只允许输入30个字)