再发一个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实施

 

状态表信息

posted @ 2009-02-27 16:32  WXWinter(冬)  阅读(14027)  评论(63编辑  收藏  举报