工作流系统之二十五 .net工作流系统开发体会_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > 工作流系统之二十五 .net工作流系统开发体会

工作流系统之二十五 .net工作流系统开发体会

 2010/9/19 23:39:58  eworkflow  http://eworkflow.javaeye.com  我要评论(0)
  • 摘要:.net工作流系统开发体会公司的eworkflow自定义工作流系统,最初是开发了java版的。待java版的功能稳定后,就开始开发.net版的。java版的eworkflow工作流系统,我们没有依赖于任何框架,如struts,spring等,也没有用hibernate,ibatis等orm映射工具。在支持web方面也有一套自己的mvc框架,都是纯java的代码。因为工作流系统,比较注重的是工作流引擎核心的实现,其他的表现形式,人机交互等都相对不是工作流系统的重要部分
  • 标签:工作流系统 二十五 .net工作流系统开发体会

.net工作流系统开发体会
公司的eworkflow自定义工作流系统,最初是开发了java版的。待java版的功能稳定后,就开始开发.net版的。

java版的eworkflow工作流系统,我们没有依赖于任何框架,如struts,spring等,也没有用hibernate,ibatis等orm映射工具。在支持web方面也有一套自己的mvc框架,都是纯java的代码。因为工作流系统,比较注重的是工作流引擎核心的实现,其他的表现形式,人机交互等都相对不是工作流系统的重要部分,并且业务模块的自定义表单采用的是eform自定义表单,所以在mvc的框架中,我们只需要注重M部分的流程引擎的开发。

?

在用.net实现工作流系统的时候,只需要将java版的后台纯java的代码,用.net的c#来实现。java和c#就象孪生兄弟,长的太象了。都是纯面向对象的,有类,接口,继承,多态等。只是关键字的写法不一样。我们只需一点一点的将java实现的流程引擎代码用c#翻译过来即可,保留所有的java设计思路,设计模式,包名类路径等。为实现同样的功能,c#的语法有的更简单、方便一些。因为java版的eworkflow 没有依赖于任何开源的框架,所以在实现上少了这些开源框架代码的移植。

工作流系统框架图

?


用c#实现eworkflow工作流系统主要需要修改如下方面的代码。
java版:
基本的语法,类定义,包名等
c#版:
改用c#的语法,关键字等。c#的命名空间比java的package更灵活。

?

java版:
数组,集合等方面的实现
c#版:
翻译成对等的 数组,集合等。

?

java版:
xml的实现采用jdk1.4自带的包
c# :
xml的实现采用System.xml
在所有涉及xml节点部分的代码全部转换过来。

?

java版:
数据库操作采用jdbc
c#:
数据库的实现比较麻烦。有oledb,sqlclient,oracleclient。
这部分的实现与java版的不同,但仅限于实现方面不同,.net工作流系统的数据库实现采用了工厂模式封装了oledb,sqlclient,oracleClient的不同,对外表现形式和java工作流系统一样,在所有涉及数据库操作的部分代码逻辑还是一样。(.net工作流系统的数据库实现见上一篇文章:如何构建支持多数据库的.net工作流系统 http://eworkflow.javaeye.com/admin/blogs/736714

?

java版:
反射部分有反射包
c#:
翻译成c#的反射实现。

?

java版:
流程定义时自定义脚本,采用了beanshell。
c#:
.net方面没有类似的软件,自己开发了一个支持自定义脚本功能,脚本语法是c#(和java版的一样,java版的beanshell脚本语法是java),实现动态编译和加载。


还有很多细节方面的修改,散布在各处。总之,java版的eworkflow工作流系统和.net工作流系统也象孪生兄弟一样,功能是一样的,只是实现方式不同。

?

Tag标签: java工作流,自定义工作流,工作流引擎,dotnet工作流引擎,.net工作流,.net工作流系统
发表评论
用户名: 匿名