再发一个WF综合技术演示的例子
再发一个WF综合技术演示的例子
例子下载:
http://cid-c36588978afc344a.skydrive.live.com/self.aspx/temp/WF0016.rar
(说明:由于在博客园的文件空间满了,以后我的例子只能放到MS的网盘上了,有朋友说下载慢,我也没办法)
这个也可以用了
https://files.cnblogs.com/foundation/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实施