本文主要是介绍WF综合技术演示的例子,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
http://tech.ddvip.com/2009-02/1235816506110040.html(本文来自)
本文源代码下载地址:
http://flashview.ddvip.com/2009_02/WF0016.rar
发一个以WF为中心的综合技术演示的例子,在这个例子我分别用WPF,WinForm,ASP.NET,Silverlight实现了四个客户端,每个客户端的UI风格与功能完全一样,便于大家使用
WorkflowRuntime宿主使用WCF发布,提供了对Silverlight的跨域访问,提供了大字串传递的配置
如果你对WPF,WinForm,ASP.NET,Silverlight引用WCF不熟悉,需用先学习WCF的知识
WPF,WinForm,ASP.NET,Silverlight你只需用掌握一样就可以完成本例的客户端开发
对数据库的操作,本例使用Ling To SQL ,果你对Ling To SQL不熟悉,需用先学习Ling To SQL的知识,或将这部分改为你所熟悉的数据库操作方式
本例不太适合WF的初学者
为了让大家对WF有一个总体的认识,以下说明我用问答方式来写
问:如果我想让用户可以自定义流程,但用户不会写代码,该怎么做?
答:建议用XOML无代码格式的工作流,实现方式看本例
问:如果我流程分支的条件判断很复杂,而且总变,有什么方案?
答:建议用rule外置方式,实现方式看本例
问:WorkflowRuntime宿主用什么? [ IIS 加载项] , [Windows服务] , [Windows 应用程序], [ASP.NET 中Application 缓存] ,[COM+]
答:建议用 [Windows服务] ,本例为了演示方便,使用的是[Windows 应用程序],
问:如果使用[Windows 应用程序] 或 [Windows服务],使用什么方式与客户端通信
答:建议使用WCF
问:客户端使用什么?[WPF] ,[WinForm] ,[ASP.NET],[Silverlight]
答:都可以,本例[WPF] ,[WinForm] ,[ASP.NET],[Silverlight]的客户端都提供了
问:Silverlight如何访问 [Windows服务] , [Windows 应用程序]中的WCF服务
答:在WCF服务添加一个跨域访问的服务,,实现方式看本例
问:工作流模板提供方式? [DLL] ,[XOML文件] ,[数据库]
答::建议使用[数据库]
问:WF中有状态维护,有跟踪,还需要自已维护一个状态表吗?
答:强烈建议,本例就自已维护了一个状态表
问:关于流程设计器?
答:对于XOML来说,[记事本],就是一个流程设计器,如果要提供一个可视化的流程设计器,只需操XOML文件既可,XOML是一个XML格式文件.也可使用WF提供的设计器控件本例没有提供可视化的流程设计器,对这方面感兴趣可以看我关于这方面的文章
问:需要动态表单设计器吗?
答:建议提供,否则将无法真正实现"让用户自已做流程"的目的,本例没的提供流程设计器,对这方面感兴趣可以看我关于这方面的文章
问:如果不写代码,流程的具体结点功能如何实现?
答:封装成自定义Activty,实现方式看本例
问:如果不写代码,自定义Activty之间如何通信?
答:使用DependencyProperty,实现方式看本例
问:可以在工作流启动或运行环节中向流程传递数据吗?
答:可以,实现方式看本例
问:可以在工作流启动或运行环节中动态添加或删除节点吗?
答:可以,本例没的提供,对这方面感兴趣可以看我关于这方面的文章
目录说明
系统架构说明
图片看不清楚?请点击这里查看原图(大图)。
项目说明
数据库说明
wfTemplate 模板表
|
编号
|
字段
|
中文对照
|
数据类型
|
外创
|
模创
|
外改
|
模改
|
主键
|
外键
|
非空
|
唯一
|
字段值选项
|
选项代表含义
|
说明
|
|
templateID
|
模板编号
|
nvarchar(50)
|
√
|
|
|
|
|
|
√
|
|
|
| ||
|
templateEdition
|
模板版本
|
nvarchar(50)
|
√
|
|
|
|
|
|
√
|
|
|
| ||
|
xoml
|
模板数据
|
nvarchar(MAX)
|
√
|
|
|
|
|
|
√
|
|
|
|
<XML>
| |
|
rules
|
规则数据
|
nvarchar(MAX)
|
√
|
|
|
|
|
|
√
|
|
|
|
<XML>
|
wfTaskList 状态表
|
编号
|
字段
|
中文对照
|
数据类型
|
外创
|
模创
|
外改
|
模改
|
主键
|
外键
|
非空
|
唯一
|
字段值选项
|
选项代表含义
|
说明
|
|
instanceID
|
nvarchar(50)
|
√
|
√
| |||||||||||
|
state
|
int
|
√
|
√
|
√
|
0,1
|
0活动,1完成
| ||||||||
|
token
|
nvarchar(50)
|
√
|
√
| |||||||||||
|
stateContent
|
nvarchar(MAX)
|
√
| ||||||||||||
result
|
nvarchar(50)
|
√
| |||||||||||||
value
|
nvarchar(MAX)
|
√
| |||||||||||||
|
客户端说明
WPF
图片看不清楚?请点击这里查看原图(大图)。
WinForm
图片看不清楚?请点击这里查看原图(大图)。
ASP.NET
图片看不清楚?请点击这里查看原图(大图)。
Silverlight
图片看不清楚?请点击这里查看原图(大图)。
附一个测试例子
场景
流程
图片看不清楚?请点击这里查看原图(大图)。
测试
本演示使用Silverlight客户端,其它客户端使用方式与本演示一样,同一流程可使用不同客户配合完成
启动服务
发布流程
图片看不清楚?请点击这里查看原图(大图)。
图片看不清楚?请点击这里查看原图(大图)。
(1)001申请
(2)002驳回
图片看不清楚?请点击这里查看原图(大图)。
图片看不清楚?请点击这里查看原图(大图)。
(3)001再申请
图片看不清楚?请点击这里查看原图(大图)。
图片看不清楚?请点击这里查看原图(大图)。
(4)002同意
图片看不清楚?请点击这里查看原图(大图)。
图片看不清楚?请点击这里查看原图(大图)。
(5)003实施
图片看不清楚?请点击这里查看原图(大图)。
状态表信息
图片看不清楚?请点击这里查看原图(大图)。
这篇关于WF综合技术演示的例子的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!