@font-face { font-family: 宋体 }
@font-face { font-family: "Cambria Math" }
@font-face { font-family: Calibri }
@font-face { font-family: "@宋体" }
p.MsoNormal, li.MsoNormal, div.MsoNormal { margin: 0 0 0.0001pt; text-align: justify; text-justify: inter-ideograph; font-size: 10.5pt; font-family: "Calibri", "sans-serif" }
p.MsoHeader, li.MsoHeader, div.MsoHeader { mso-style-link: "页眉 Char"; margin: 0 0 0.0001pt; text-align: center; layout-grid-mode: char; border: none; padding: 0; font-size: 9pt; font-family: "Calibri", "sans-serif" }
p.MsoFooter, li.MsoFooter, div.MsoFooter { mso-style-link: "页脚 Char"; margin: 0 0 0.0001pt; layout-grid-mode: char; font-size: 9pt; font-family: "Calibri", "sans-serif" }
a:link, span.MsoHyperlink { color: rgba(0, 0, 255, 1); text-decoration: underline }
a:visited, span.MsoHyperlinkFollowed { color: rgba(128, 0, 128, 1); text-decoration: underline }
span.Char { mso-style-name: "页眉 Char"; mso-style-link: 页眉 }
span.Char0 { mso-style-name: "页脚 Char"; mso-style-link: 页脚 }
@page Section1 { size: 595.3pt 841.9pt margin-top: 72pt margin-right: 90pt margin-bottom: 72pt margin-left: 90pt layout-grid: 15.6pt }
div.Section1 { page: Section1 }

免费开源工作流Smartflow-Sharp v2.0

Smartflow-Sharp工作流组件从去年6月起开源,截止到今天已经一年有余。在这期间我已经将组件从1.0版本升级到2.0版本,可能有的人还不清楚,我稍作简单介绍,这是一款基于.net平台下研发的工作流组件,该组件由流程设计器和流程引擎两个部件构成,历经一年时间的调整与完善,已经日益成熟稳定,主要适用于各种文件审批流转等场景。

项目开源地址:https://github.com/chengderen/Smartflow-Sharp

相比1.0版本,2.0这个版本对性能以及流程设计器上,有较大的调整与完善。去掉1.0中一些定制化的功能,使其更加注重业务流程,以业务流程为核心。对流程设计器和工作流引擎的核心代码进行梳理和重写,使其更具有可读性和维护性。从现在看1.0的代码有点惨不忍睹,刚开始考虑的是如何更加快速完成功能开发。这点可能跟平时工作习惯有点关系,造成这种情况。

在使用的过程中也有网友向我反眏,流程初始化的很影响性能,其实我以前发现过这个问题,这是微软在将XML序列化为对象的时候,会动态创建程序集和对象所致,动态创建的方式导致性能方面有所下降,XML的文件越大,所耗时间就会越长。为解决这个问题,我决定放弃使用XmlSerializer方式解析流程文件, 其实有网友也提出使用的缓存的方式,避免动态重复创建对象,将创建的对象放进缓存,可以解决此问题。但是由于个人对代码有点洁癖,并不太喜欢加特性方式来解析XML文件,所以我重新设计XML 的解析接口,经过测试,我已经彻底解决业务流程初始化的问题,且代码更加干净整洁。在此,感谢各位的网友参与和反馈。

工作流组件技术含量并高,但是,要想做得非常好还是很有难度。在这个过程中开发流程设计器是最让我头疼的事情,刚开始也考虑过用canvas,但是在使用开发过程中明显没有SVG编码方便,而且各种元素事件绑定方式有点不习惯,所以最终选择SVG画图技术。目前感觉流程设计器细节没有处理到位,后续还有待继续完善。

未来计划推出以业务流程为核心,将表单与业务流程结合起来,形成整体解决方案。在这个过程中,工作流组件将逐渐与BPM标准进行对接,使其更加标准化。后续也会推出.net core版本的工作流组件,为大家多提供一种选择,敬请关注。

最新文章

  1. 从is(":checked")说起
  2. 常用邮箱的服务器(SMTP/POP3)地址和端口总结
  3. codeforces195a
  4. Ms sql pivot unpivot
  5. 初学Hibernate主键生成策略
  6. php5全版本绕过open_basedir读文件脚本
  7. Notepad++前端开发常用插件介绍 - BorisHuai前端修炼 - 博客频道 - CSDN
  8. NavigationDrawer+Fragment实现侧滑菜单效果
  9. CURL传输与获取功能
  10. T-Sql中的pivot和unpivot
  11. apns关于APP数字角标的理解
  12. 设计模式的征途—10.装饰(Decorator)模式
  13. 【java】io流之字节输入流:java.io.InputStream类及子类java.io.FileInputStream
  14. 记录一则ASM实例阻塞,rbal进程异常的案例
  15. TestFlight 测试
  16. 使用opencv库编译代码并运行
  17. springboot 整合 redis
  18. IntelliJ IDEA(2017)安装和破解
  19. react-native 获取组件的宽度和高度
  20. Device Tree常用方法解析【转】

热门文章

  1. go语言基础实例
  2. DJL 之 Java 玩转多维数组,就像 NumPy 一样
  3. JAVA中 错误代码是 the public type must be defined in its own file 解决方法 android开发 java编程
  4. Volatile关键字&&DCL单例模式,volatile 和 synchronized 的区别
  5. spring中bean初始化执行顺序
  6. 剑指 Offer 56 - II. 数组中数字出现的次数 II
  7. Activiti7 提交任务
  8. 关于Vue的那些事儿
  9. mac如何安装YaPi
  10. 传值&传值引用