接触工作流:

最早接触工作流,是在04年左右,那年,我创造了 Aries 框架的前身第一版框架,另一个同事,创造了工作流的第一版框架。

只是那时候,我并未参与工作流的核心设计,仅仅是帮写了个流程设计器,就是下图这个怀旧的样子:

然后提供一些(撤回、退回)回收算法的意见。

并提供:CYQ.Data 的源码作为底层数据层,那时候还没开源 CYQ.Data。

悲催的是,同事拿到 CYQ.Data 框架的源码,却把它打散了,没用MAction,只用MProc,并来了个二次封装,把sql语句搞了一堆配置的xml文件,估计是被mybatis毒害了。

以至于后来,有一个项目要用到oracle时,呵呵就两个字:

好在手头上还有旧版本的源码,把报错的xml配置Sql文件重写,把相关调用视图语句也重写,勉强在当时的项目流程里不报错。

配置的xml语句太多,全部检测和重写不现实,毕竟对工作流框架一丁点都不熟。

估计那时候的人年轻啊,所谓的支持多数据库,都是喜欢这么坑人的,

就像现在,喜欢用Dapper的,玩玩支持单数据库还可以,若是支持多数据库,那也是一个大坑。

了解工作流:

说起来,当年,那么多项目都用到工作流,我却没有涉入,连怎么使用都没学,更别说了解工作流框架的核心思想了。

只是后来,那个oracle项目,让我不得不接触工作流,因为报错啊!

那时候的我还在全力重写Aries,作为技术支持,我只好稍为了解下工作流。

不了解还好,一了解就头大,这代码,这命名,这逻辑,我槽,跟我高中时读英文作文有啥区别,一圈下来,就三字:看不懂。

好在,有时候解决问题,并不需要你懂它,只要运行,看到哪里报错,把报错相关的地方,修改一下就可以了。

后来,Aries上线了,不过却没有配套工作流,因为机制不一样,Aries的纯天然html,和早期工作流的aspx,ascx不协调。

重构或重写工作流?

开始想重构,不过在前前后后看了一个多月的源码后,就放弃了,旧同事能把代码写的天然带混淆效果,我也是服了。

放弃了重构,按自己的思维,重写吧,新重写的工作流初命名是叫:Scorpio(天蝎座)才刚设计好数据库,写了个开头,就被各种事情打断了,然后妖折了。

这重构和重写是有区别的:

重构,是需要了解原作者的思路,并逐步进行改进,或重写。

重写:不需要了解原作者的思路。

后来,工作流这事就放下了,放下了好几年。

直到去年,老东家让我帮解决工作流上的一个问题,

毕竟当年框架的原始作者已经离开了,二次接手维护的人,也离开了,估计也没人敢三次接手维护了。

因此又让我重拾了工作流了:

又看那天书般的工作流代码,唉,好在一周后,感觉好像看懂了一些,问题也帮解决了〜

掐指一算:是时候为 Aries 配上工作流了

前前后后,接触和了解工作流也好几年了。

Aries也出来很多年了,是时候配上工作流了。

于是,动手了,只是没想到,两个多月,无眠不休,才重写完。

除了流程图的样式有所保留,其它代码全部重写了: 

关于框架取名:Gemini.Workflow,简称:双子流

终于,十二宫,迎来了新的成员:Gemini(双子座)

嗯,现在已经集齐四个,还差八个就可以招唤雅典娜了:

Aries(白羊座):.NET Develop Framework(适合场景:业务系统、内部信息系统、后台管理系统、ERP,支持.NET Core)

Taurus(金年座):Taurus.Mvc(适合场景:对性能和并发有较高要求的电商、站点、WebAPI等系统,支持.Net Core)

Gemini(双子座):Gemini.Workflow 使用简单,功能强大的工作流框架。

Sagit(射手座,Sagittarius):IOS Develop Framework(Sagittarius 射手座:IOS下的一套基础快速开发框架)

入门教程:

1、Gemini.Workflow 双子工作流入门教程一:定义流程:流程图属性

2、Gemini.Workflow 双子工作流入门教程二:定义流程:流程节点介绍

3、Gemini.Workflow 双子工作流入门教程三:定义流程:流程节点、迁移条件参数配置

4、Gemini.Workflow 双子工作流入门教程四:流程应用

5、Gemini.Workflow 双子工作流入门教程五:业务表单开发

API文档:

后端:Gemini.Workflow API 文档和 前端: Gemini.Workflow.js API 文档:

https://github.com/cyq1162/Aries/tree/master/Aries.Document

总结:

目前 Gemini.Workflow 双子流是配套在 Aries 中,两者结合,成为更加强大的业务系统基础开发框架。

演示地址:http://aries.cyqdata.com

框架地址:https://github.com/cyq1162/Aries

Gemini.Workflow 双子工作流正式上线(支持.NET Core)的更多相关文章

  1. Gemini.Workflow 双子工作流入门教程四:流程应用

    简介: Gemini.Workflow 双子工作流,是一套功能强大,使用简单的工作流,简称双子流,目前配套集成在Aries框架中. 下面介绍本篇教程:定义流程:流程应用. 流程应用: 流程图设计好后, ...

  2. Gemini.Workflow 双子工作流入门教程五:业务表单开发

    简介: Gemini.Workflow 双子工作流,是一套功能强大,使用简单的工作流,简称双子流,目前配套集成在Aries框架中. 下面介绍本篇教程:业务表单开发. 业务表单开发 业务表单的开发,和在 ...

  3. Gemini.Workflow 双子工作流入门教程三:定义流程:流程节点、迁移条件参数配置

    简介: Gemini.Workflow 双子工作流,是一套功能强大,使用简单的工作流,简称双子流,目前配套集成在Aries框架中. 下面介绍本篇教程:定义流程:流程节点.迁移条件参数配置. 一.普通节 ...

  4. Gemini.Workflow 双子工作流入门教程二:定义流程:流程节点介绍

    简介: Gemini.Workflow 双子工作流,是一套功能强大,使用简单的工作流,简称双子流,目前配套集成在Aries框架中. 下面介绍本篇教程:流程定义:流程节点属性. 流程节点: 左侧是节点工 ...

  5. Gemini.Workflow 双子工作流入门教程一:定义流程:流程图属性

    简介: Gemini.Workflow 双子工作流,是一套功能强大,使用简单的工作流,简称双子流,目前配套集成在Aries框架中. 下面介绍本篇教程:流程定义:流程图属性. 步骤一:在流程管理的流程定 ...

  6. Gemini.Workflow 双子工作流高级教程:数据库设计及各表作用说明

    整体数据库设计,可见这一篇:Gemini.Workflow 双子工作流高级教程:数据库-设计文档 这里对各数据表进行介绍: 工作流里的设计表并不多,核心只有以下8个: 下面按照流程的顺序来介绍一下表的 ...

  7. Gemini.Workflow 双子工作流高级教程:对外API控制引擎:总述

    前言: 双子工作流提供了一套对外的API,用于控制整体系统运转,下面就来看看介绍,其实很简单的. 对外API控制引擎总介: Gemini.Workflow 双子工作流,对外提供的API,都在Gemin ...

  8. Gemini.Workflow 双子工作流高级教程:数据库-设计文档

    数据库设计文档 数据库名:Workflow_New 序号 表名 说明 1 WF_Activity wf_Activity 2 WF_ActivityInstance wf_ActivityInstan ...

  9. Azure CDN Smart Routing 功能正式上线

    经过Azure中国CDN产品团队的不懈努力,融合CDN服务的一个重要功能 Smart Routing目前已经正式上线.在接下来的一段时间该功能将逐步开放给所有客户.本文主要对Smart Routing ...

随机推荐

  1. ALBB 找公共最长连续字母序列的长度

    问题描写叙述 给定一个 query 和一个 text .均由小写字母组成.要求在 text 中找出以相同的顺序连续出如今 query 中的最长连续字母序列的长度. 比如, query为"ac ...

  2. 传输层:TCP 协议

    传输层:TCP 协议 一.概述 TCP 和 UDP 处在同一层——运输层,但是它们有很多的不同.TCP 是 TCP/IP 系列协议中最复杂的部分,它具有以下特点: (1) TCP 提供 可靠的 数据传 ...

  3. (原创)lightgbm 一些错误情况处理

    1.做多分类问题时候(mutticlass),如果遇到 lightgbm.basic.LightGBMError: b'Number of classes should be specified an ...

  4. 【MVC2】发布到IIS7.5上后Session为null

    MVC2代码「Session.IsNewSession」在VS中可以正常执行,发布到IIS7.5上之后Session为null导致出错. if (Session.IsNewSession) { ... ...

  5. .NET C#生成随机颜色,可以控制亮度,生成暗色或者亮色 基于YUV模式判断颜色明亮度

    .NET C#生成随机颜色,可以控制亮度,生成暗色或者亮色 基于YUV模式判断颜色明亮度   随机颜色在日常开发中很常用到,有时候要控制颜色明亮度,比如在白色背景网页上的随机颜色,一般要求颜色稍微暗一 ...

  6. 基于JQuery实现表单元素值的回写

    form.jsp: <%@ page language="java" import="java.util.*" pageEncoding="GB ...

  7. 开发ActiveX控件调用另一个ActiveX系列3——ActiveX调用另一个ActiveX

    终于进入正题了,怎样在ActiveX中调用另一个ActiveX.我们的项目需要调用华视电子身份证识别仪的ActiveX控件 在这里有很多识别仪ActiveX插件下载:http://www.idukaq ...

  8. JAVA中两个Set比较找出交集、差集、并集

    当做到某些功能的时候,使用Set能够快速方便地将需要的类型以集合类型保存在一个变量中,Set是最简单的一种集合,集合中的对象不按特定的方式排序,并且没有重复对象. //两个Set比较找出交集.差集.并 ...

  9. PowerBuilder -- 未公开函数

    原文:http://blog.csdn.net/happymagic/article/details/51077322 @.已知一个DW中的某列的列名(在字符串变量中),以获得这个列对象的DWO 方法 ...

  10. 【剑指Offer学习】【面试题58:二叉树的下一个结点】

    题目:给定一棵二叉树和当中的一个结点.怎样找出中序遍历顺序的下一个结点?树中的结点除了有两个分别指向左右子结点的指针以外,另一个指向父节点的指针. 解题思路 假设一个结点有右子树.那么它的下一个结点就 ...