本文参考WF (Windows Workflow Foundation) 工作流学习(一)一个Asp.Net状态机验证程序 通过本文本文的介绍,我们主要了解wf中的状态机statemachine在asp.net下的运行机制。
开发环境:win7+vs2008 sp1
打开VS2008,创建一个解决方案WfAndAspNet,然后在该解决方案中添加一个Asp.net web应用程序WebApplication和状态机工作流库WorkflowLibrary。如下图所示。
完整的解决方案如图所示。
其中AspNet和SequenceWorkflowLibrary是第二个项目用到的,这个稍后再提。
为WorkflowLibray添加一个接口Interface1接口中只有一个方法:
string Validate(string Name);
打开WorkflowLibrary中的Workflow1.cs的设计视图,在其中添加两个状态stateActivity1和stateActivity2,然后在Workflow1InitialState中添加EventDriven活动eventDrivenActivity1,在stateAcitvity1状态中添加StateInitialzation活动stateInitialzationActivity1,如下图所示。
接着选中stateActivity2,右键以后会发现有“设置为初始状态”和“设置为已完成状态”,在这里我们选择“设置为已完成状态”,这时候stateActivity2右上角的图标会发生变化。
双击eventDrivenActivity1活动,进入如下编辑视图
在eventDrivenActivity1中添加WebServiceInput事件,将参数配置到活动中去,属性如下图所示。
其中属性中的参数,我是通过对话框创建的,点击参数后面的小按钮,会弹出下面的对话框,选择“绑定到新成员”选项卡,创建属性。配置方法如下图所示:
在stateInitialzationActivity1活动中添加WebServiceOutput活动,并配置属性。如下图所示
双击webServiceOutputActivity1为这个活动添加代码:
右键工作流项目WorkflowLibrary-->选择“作为Web 服务发布”,系统会自动生成一个Web Service。然后我们在asp.Net 程序中引用这个Web Service ,在Asp.Net 页面添加几个控件,再编写后台C#代码,就可以调用这个状态机中的方法。
Default.aspx.cs代码
前台代码:
参考WF (Windows Workflow Foundation) 工作流学习(二)一个Asp.Net与顺序工作流结合的例子
在WfAndAspNet解决方案中添加asp.net web应用程序AspNet以及一个顺序工作流库SequenceWorkflowLibrary
为AspNet应用程序添加顺序工作流库SequenceWorkflowLibrary的引用以及对workflow程序集的引用,如下图所示
向Web.Config 中加入WF的注册。
添加一个全局Global.asax 文件,添加如下代码
向SequenceWorkflowLibrary中的workflow1.cs中添加一个代码活动,如下图所示
双击代码活动,添加该活动所对应的代码
步骤6
前台代码Default.aspx
后台代码Default.aspx.cs
最后程序界面如下图所示: