背景
毕业5年,做了4个版本的工作流框架,工作流几乎是每个企业应用开发人员必须跨过的门槛(我还没有跨过去),下面简要说一下之前的4个版本,然后重点介绍第5个版本选择的模型。
第一年
- 模型:顺序流。
- 设计器:不支持。
- 路由规则:不支持。
第二年
- 模型:WF3.5(顺序、判定)。
- 设计器:不支持。
- 路由规则:支持。
第三年
- 模型:WF4.0(顺序、判定)。
- 设计器:支持。
- 路由规则:支持。

第四年
- 模型:状态机(顺序、判定)。
- 设计器:支持。
- 路由规则:支持。

为什么我要第五个版本?
- 第一个版本太简单了,不能满足产品或项目需求。
- WF3.5已经过时了。
- WF4.0过于重量级了,我只需要支持人工审批流程。
- 经典的状态机不能支持并行节点。
第五个版本会是什么样子?
模型选择

计划支持的特性
- 会签、分流、合流、串行和条件支持。
- 动态路由规则。
- 基于WEB的流程设计器。
- 开源+无侵入性。
核心算法已经通过测试

流程设计器的原型也初步验证了

备注
今天算是个开篇,后面会详细介绍每个点的实现机制,着急看代码的朋友先去http://happy.codeplex.com/下载最新代码(直接下载代码,不要下载我上传的压缩文件)。