WF(Workflow foundation)与Asp.net结合

案例1

本文参考WF (Windows Workflow Foundation) 工作流学习(一)一个Asp.Net状态机验证程序 通过本文本文的介绍,我们主要了解wf中的状态机statemachine在asp.net下的运行机制。

开发环境:win7+vs2008 sp1

步骤1

打开VS2008,创建一个解决方案WfAndAspNet,然后在该解决方案中添加一个Asp.net web应用程序WebApplication和状态机工作流库WorkflowLibrary。如下图所示。

clip_image002clip_image004

完整的解决方案如图所示。

clip_image005

其中AspNet和SequenceWorkflowLibrary是第二个项目用到的,这个稍后再提。

步骤2

为WorkflowLibray添加一个接口Interface1接口中只有一个方法:

string Validate(string Name);

步骤3

打开WorkflowLibrary中的Workflow1.cs的设计视图,在其中添加两个状态stateActivity1和stateActivity2,然后在Workflow1InitialState中添加EventDriven活动eventDrivenActivity1,在stateAcitvity1状态中添加StateInitialzation活动stateInitialzationActivity1,如下图所示。

clip_image007

接着选中stateActivity2,右键以后会发现有“设置为初始状态”和“设置为已完成状态”,在这里我们选择“设置为已完成状态”,这时候stateActivity2右上角的图标会发生变化。

步骤4

双击eventDrivenActivity1活动,进入如下编辑视图

clip_image008

在eventDrivenActivity1中添加WebServiceInput事件,将参数配置到活动中去,属性如下图所示。

clip_image009

其中属性中的参数,我是通过对话框创建的,点击参数后面的小按钮,会弹出下面的对话框,选择“绑定到新成员”选项卡,创建属性。配置方法如下图所示:

clip_image011

在stateInitialzationActivity1活动中添加WebServiceOutput活动,并配置属性。如下图所示

clip_image012clip_image013clip_image015

双击webServiceOutputActivity1为这个活动添加代码:

步骤5

右键工作流项目WorkflowLibrary-->选择“作为Web 服务发布”,系统会自动生成一个Web Service。然后我们在asp.Net 程序中引用这个Web Service ,在Asp.Net 页面添加几个控件,再编写后台C#代码,就可以调用这个状态机中的方法。

Default.aspx.cs代码

前台代码:

运行结果如下图所示

3

4

案例2

参考WF (Windows Workflow Foundation) 工作流学习(二)一个Asp.Net与顺序工作流结合的例子

步骤1

在WfAndAspNet解决方案中添加asp.net web应用程序AspNet以及一个顺序工作流库SequenceWorkflowLibrary

步骤2

为AspNet应用程序添加顺序工作流库SequenceWorkflowLibrary的引用以及对workflow程序集的引用,如下图所示

1

步骤3

向Web.Config 中加入WF的注册。

 

步骤4

添加一个全局Global.asax 文件,添加如下代码

 

步骤5

向SequenceWorkflowLibrary中的workflow1.cs中添加一个代码活动,如下图所示

2

双击代码活动,添加该活动所对应的代码

 

 

步骤6

前台代码Default.aspx

 

后台代码Default.aspx.cs

 

最后程序界面如下图所示: 

 

posted @ 2011-05-09 11:03  xwdreamer  阅读(1055)  评论(0编辑  收藏  举报