- 热门文章:
- · 用ASP实现开关IIS不重启电脑
- · 在ASP中优化数据库处理
- · 用InStr函数实现代码减肥
- · vbscript和javascript互相调用方法
- · ASP页面内VBScript和JScript的交互
- · 在ASP中优化数据库处理
- · 关于Adodb.Stream 的使用说明
- · ASP.NET中实现DataGrid数据排序(1)
- · ASP.NET中实现DataGrid数据排序(2)
- · ASP.NET中实现DataGrid数据排序(3)
- · ASP.NET中实现DataGrid数据排序(4)
- · 利用RowFilter属性,将一个DataSet绑定到两个DataGrid
上一篇:利用WWF进行ASP.NET程序开发(2) >>
利用WWF进行ASP.NET程序开发(3)
接下来,你需要以一个Http处理器来实现控制器逻辑。为了构建该控制器,所有你需要做的是创建一个称为WorkflowController处理器的类-它实现IHttp处理器接口。到目前为止,你还没有看到有关Windows WF的任何特别的东西-这是特别针对于ASP.net的功能(请继续往下读)。
在这个WorkflowController处理器类中,名为ProcessRequest的IHttp处理器接口方法处理一个来自于该ASP.NET应用程序的Web请求。这里,你需要获得到一个静态的工作流运行时刻实例的一个参考,为该工作流建立事件处理器,并且启动工作流的执行。在启动一个工作流实例之前,你需要检查是否该请求的查询串值包含一个代表一个工作流实例ID的GUID。如果存在这个ID,你就知道已经有一个实例正在运行,这样你可以得到一个到该实例的参考并继续执行。如果不存在这个ID,你需要通过调用工作流运行时刻Start Workflow方法来创建一个新的实例并且开始执行过程。
在启动一个实例后,事件处理器将管理进出工作流的通讯。因为本文的目的不是讨论本地通讯服务,所以在此我不会详细讨论这个主题,而是分析其高级的实现技术,并再次讨论这在一个ASP.NET应用程序中是如果工作的。为了便利通讯处理,你将需要若干.NET接口--用于描述出/入该工作流和宿主的信息。你会在本文所附WorkflowClassLibrary工程源码中找到这一些。你还会找到一些实现这些接口的类以及实现工作流机制所必须的相应功能。
让我们再简单地看一下web.config文件。注意,在早些时候讨论的ASPNetThreadingService元素附近,我们使用了三个元素来描述通讯服务类:
<add type="Workflow.RuntimeServices.GetNameService,
Workflow.Library, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=c4620ae819b5257e"/>
<add type="Workflow.RuntimeServices.GetEmailService,
Workflow.Library, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=c4620ae819b5257e"/>
<add type="Workflow.RuntimeServices.SendDataService,
Workflow.Library, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=c4620ae819b5257e"/>
这里还有一个元素,它指导工作流运行时刻库来使用SqlStatePersistenceService。这种另外的服务把一个工作流的状态持续性存储到一个在页面请求之间的SQL服务器数据库之中。你必须提前手工地创建这个数据库,但是微软提供了SQL脚本来做这件事情。你将会在C:\WINDOWS\Microsoft.NET\Framework\v2.0.50215\Windows Workflow Foundation\SQL文件夹下找到它们。就象模型服务一样,你可以编程地添加这些服务,但是你也可以在配置中实现它,这将会大大降低代码的编写量并且提供灵活性-甚至在代码生产之后。而且在web.config中有一行,它添加一个HttpModule-它支持在ASP.NET中的Windows WF运行时刻库;还有一行用于设置更早些时候讨论的Http处理器控制器。如你所见,在这个配置中存在许多的东西。
作为结论,Windows WF为开发者在其上开发基于工作流的应用程序提供了一个极其易用和可扩展的框架。实现商业过程已经并将继续成为一种重要的应用程序技术。除非你是一个技术服务公司或ISV,否则软件是一定要提供商业及其运行过程的。通过使用如Windows WF这样的工具,开发者可以使得开发过程容易且灵活。
下一篇:用ASP实现开关IIS不重启电脑 >>
相关文章:
- · 将ASP生成的内容写入响应流中最有效的方法是什么?(1)
- · 将ASP生成的内容写入响应流中最有效的方法是什么(2)?
- · 在asp中调用jsp
- · 用户状态维护
- · 用ASP创建多栏选项列表
- · 用ASP创建多栏选项列表(2)
- · ASP3.0中的流控制能力
- · 浅析数据完整性问题
- · 在ASP中改善动态分页的性能
- · 在你的ASP中使用类(class)
- · 一个在vbscript中读取cookie的程序函数
- · ASP.NET2.0应用中定制安全凭证之理论篇(1)
- · ASP.NET入门随想六之大航海家(1)
- · ASP.NET2.0应用中定制安全凭证之理论篇(2)
- · ASP.NET入门随想六之大航海家(2)
- · 用ASP.NET和XML做的新闻系统
- · 动态的管理ASP.NET DataGrid数据列
- · 在ASP.NET 2.0中实现数据的绑定(1)
- · 在ASP.NET 2.0中实现数据的绑定(2)
- · 在ASP.NET 2.0中实现数据的绑定(3)
- · 在ASP.NET 2.0中实现数据的绑定(4)
- · 在ASP.NET中动态创建柱状图和饼图(3)
- · DataList的分页技术
- · ASP.NET中在线用户统计
- · 把Excel文件中的数据读入到DataGrid中
- · 随机显示数据库记录
- · ASP.NET里的事务处理
- · 在ASP.NET页面中实现数据棒图(1)
- · 在ASP.NET页面中实现数据棒图(2)
- · 在ASP.NET页面中实现数据棒图(3)
- · ASP.NET如何存取SQL Server数据库图片
- · 实例演练ASP+XML编程(1)
- · 一个非常简单的将半角"转换为中文“的函数
- · 排序方式解决“上下主题”问题(2)
- · 显示左边的n个字符(自动识别汉字)函数
- · 关于页面和代码分离的
- · 一种效率极高的分类算法(1)
- · 一种效率极高的分类算法(2)
