过年了向所有学习WF,关注我的博客的朋友们问个好,发布一个我用WF开发的工作流平台,供大家参考
这个平台适合于以审批为主业务的工作环境,可以做为一个产品直接使用(已有公司在项目中直接使用了这个平台).
这个平台的特点是我对子流程的支持做得比较满意
WF对子流程支持很弱,我没用
这个平台支持静态调用多个子流程,动态调用多个子流程,
支持并发调多个不同类型的子流程
支持并发多个子流程的等待
支持数据表单从主流程分单入子流程,子流程再入子流程,最后再回到主流程
支持可用不同分支并发的会签
支持将现有的正在运行的流程挂接到其它流程
支持流程自身的递归调用
从来不在代码中加注解,我写代码的方式是先写文档,然后按文档去写代码.
所以,要看代吗要先打开文档
(这是文档中的一个抓图,[1.1],[1.2],[1.3]都是方法变号,方法前有[√]表示该方法有对应的单元测试)
打开代吗,你在代码中会看到编号,所有的编号在文档中都有详细目的,实现方式,调用,算法说明
服务以EXE程序的方式运行
提供了权限,流程操作,报表的WCF提口,
服务写的非常稳定,所的能判断的都判断了,基本没用 try { } catch { },客户端的不正确操作服务都会有说明值返回,压力测试不会拖垮服务
系统级问题会写入系统日志,业务级问题会写入业务日志,logo文件中会记录所有操作的流水账.
服务的所的参数在config文件中配置,服务的主程序是[BPM.Foundation.Server.exe]
计时,自动处理,可以管理工作日
打开数据库中的流程
将流程发布到数据库中
只使用了Reporting 客户端控件,不需要Reporting Services服务
最后说明
这个平台是去年年初用空余时间写的,每天5个小时用了一个半月.
一般我前半夜写服务部分,思路还算清晰,所以写的还可以,文档也比效认真.
后半夜累的时候就用WPF写客户端,那时基本处于半睡眠状态,所以实现的方式很乱,风格也不统一,而且没文档(^_^)
所以要直接使用这个平台,服务部分没什么问题,前台UI建议重写,可以用WPF,Winform,ASPNET,Silverlight,
如果用Silverlight写,无法直接访问我的WCF服务,有个Silverlight跨域安全问题,有这方面需求的,我可以给你提供一个独立的跨域验证服务,加载到这个平台中
[流程监控器]部分,我有点偷懒,把以前项目的UI直接用上了,有的地方好像有连接服务或数据库代码写死的情况,使用时注意一下,自已改过来就行了.
平台使用的是Net 3.5
数据库是Sql Server 2008 任意版本都行,操作系统可用win XP ,win 2003 , win 2008 , (vista 我没试过)
有的盗版Win xp /2003 将系统中的一些服务去掉了,如DTC,这样在运行时WF的持久化由于要跨库操作,会报错,报的不是数据库错误,而是队列错误.这个错误我捕获了,如果大家看到这个错误注意一下系统服务,我的队列处理的很好,不会出错
所有的数据库与网络配置都在对应的Config文件中,根据自已的情况改一下就可已了.默认是全在本运行.
如要地网络中运行,注意一下防火墙
表单设计器做的一般,好多人没用我的表单设计器,有用Infopath的,有用ASPNET动态页的.
郁闷中,下个版本我一定写一个像样的表单设计器
系统中已初始化了一个用于练习的组织结构,与一组各种业务主题的流程
这个平台的思想就是[基于WF设计业务流程平台]这系列的讲的,只不过有些内容在这个平台上只做了后台,前台UI中没有体现.
好了,更多的内容我会在[基于WF设计业务流程平台]这系列中详细讲的
代码下载:
http://cid-c36588978afc344a.skydrive.live.com/browse.aspx/WF (已无效)
(修改为)
BPM.Foundation.rar 服务
BPM.Foundation.Designer.rar 流程设计器(专业版)
BPM.Foundation.WorkflowMonitor.rar 流程监控器
BPM.Client.rar 客户端,流程设计器(用户简洁版),表单设计器报表
DB.rar 数据库
Help.rar 开发文档
流程设计(VS2008版).rar 用VS设计流程的说明
流程设计(设计器版).rar 用流程设计设计流程的说明