Gemini.Workflow 双子工作流正式上线(支持.NET Core)
接触工作流:
最早接触工作流,是在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 中,两者结合,成为更加强大的业务系统基础开发框架。
框架地址:https://github.com/cyq1162/Aries
Gemini.Workflow 双子工作流正式上线(支持.NET Core)的更多相关文章
- Gemini.Workflow 双子工作流入门教程四:流程应用
简介: Gemini.Workflow 双子工作流,是一套功能强大,使用简单的工作流,简称双子流,目前配套集成在Aries框架中. 下面介绍本篇教程:定义流程:流程应用. 流程应用: 流程图设计好后, ...
- Gemini.Workflow 双子工作流入门教程五:业务表单开发
简介: Gemini.Workflow 双子工作流,是一套功能强大,使用简单的工作流,简称双子流,目前配套集成在Aries框架中. 下面介绍本篇教程:业务表单开发. 业务表单开发 业务表单的开发,和在 ...
- Gemini.Workflow 双子工作流入门教程三:定义流程:流程节点、迁移条件参数配置
简介: Gemini.Workflow 双子工作流,是一套功能强大,使用简单的工作流,简称双子流,目前配套集成在Aries框架中. 下面介绍本篇教程:定义流程:流程节点.迁移条件参数配置. 一.普通节 ...
- Gemini.Workflow 双子工作流入门教程二:定义流程:流程节点介绍
简介: Gemini.Workflow 双子工作流,是一套功能强大,使用简单的工作流,简称双子流,目前配套集成在Aries框架中. 下面介绍本篇教程:流程定义:流程节点属性. 流程节点: 左侧是节点工 ...
- Gemini.Workflow 双子工作流入门教程一:定义流程:流程图属性
简介: Gemini.Workflow 双子工作流,是一套功能强大,使用简单的工作流,简称双子流,目前配套集成在Aries框架中. 下面介绍本篇教程:流程定义:流程图属性. 步骤一:在流程管理的流程定 ...
- Gemini.Workflow 双子工作流高级教程:数据库设计及各表作用说明
整体数据库设计,可见这一篇:Gemini.Workflow 双子工作流高级教程:数据库-设计文档 这里对各数据表进行介绍: 工作流里的设计表并不多,核心只有以下8个: 下面按照流程的顺序来介绍一下表的 ...
- Gemini.Workflow 双子工作流高级教程:对外API控制引擎:总述
前言: 双子工作流提供了一套对外的API,用于控制整体系统运转,下面就来看看介绍,其实很简单的. 对外API控制引擎总介: Gemini.Workflow 双子工作流,对外提供的API,都在Gemin ...
- Gemini.Workflow 双子工作流高级教程:数据库-设计文档
数据库设计文档 数据库名:Workflow_New 序号 表名 说明 1 WF_Activity wf_Activity 2 WF_ActivityInstance wf_ActivityInstan ...
- Azure CDN Smart Routing 功能正式上线
经过Azure中国CDN产品团队的不懈努力,融合CDN服务的一个重要功能 Smart Routing目前已经正式上线.在接下来的一段时间该功能将逐步开放给所有客户.本文主要对Smart Routing ...
随机推荐
- 队列容易queue
/*先进先出*/#include<iostream>#include<queue> //使用队列必须包含头文件using namespace std;int main(){ q ...
- RPM命令使用
RPM是RedHat Package Manager(RedHat软件包管理工具)的缩写 •rpm的常用参数 i:安装应用程序(install) e:卸载应用程序(erase) vh:显示安装进度:( ...
- 2017.2.21 Java中正则表达式的学习及示例
学习网站:菜鸟教程 http://www.runoob.com/java/java-regular-expressions.html 1 正则表达式的基本使用 (1)类 正则表达式并不仅限于某一种语言 ...
- JavDroider的作品展示
好久没有写博客了,很懊悔,尽管说实习和项目那边的任务有点多,可是我想每天抽出时间出来写一篇文章总结一下当天所习所得并不困难! 好了,今天以一篇个人作品介绍来又一次开启我的博客~ 实习单位的门户站点 一 ...
- struts2获取文件真实路径
CreateTime--2017年8月25日15:59:33 Author:Marydon struts2获取文件真实路径 需要导入: import java.io.FileNotFoundExc ...
- 撸代码--linux进程通信(基于共享内存)
1.实现亲缘关系进程的通信,父写子读 思路分析:1)首先我们须要创建一个共享内存. 2)父子进程的创建要用到fork函数.fork函数创建后,两个进程分别独立的执行. 3)父进程完毕写的内容.同一时候 ...
- 【深入JAVA EE】Spring配置文件解析
在阅读的过程中有不论什么问题,欢迎一起交流 邮箱:1494713801@qq.com QQ:1494713801 一.Spring头信息 Spring配置文件的头部信息通常是固定不变的.但每个标 ...
- 京东2015年应届生招聘笔试题(A)卷答案选择题部分
1.操作系统死锁的必要条件(多选题):() A.相互排斥条件 B.系统资源有限 C.进程调度不合理 D.环路等待条件 答:A,C,D 參考资料:http://blog.sina.com ...
- 【7.1.1】ELK集群搭建 之 ES集群
写在前边 昨天晚上就已经完成这篇博客了,就是在测试这块是否正常跑起来,晚上没搞完,上班前把电脑关机带着,结果没保存!基本上昨天写的东西都丢了,好在博客园的图片url还在. 为了让大家都轻松些,我轻松写 ...
- c# .net Global.asax文件的作用
1 Global.asax文件的作用 先看看MSDN的解释,Global.asax 文件(也称为 ASP.NET 应用程序文件)是一个可选的文件,该文件包含响应 ASP.NET 或HTTP模块所引发的 ...