`
longlongriver
  • 浏览: 9893 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

忘掉普元EOS、构建自己的企业级快速应用开发平台

阅读更多

希望这篇文章能够对那些正在或即将开发自己团队的J2EE应用快速开发平台的个人或公司能有所启发!    

      像EOS这样动辄几十上百万的平台不是每个公司都愿意花钱去买的!因此构建一套穷人级的企业快速开发平台成了很多团队的首选,而对于小团队来说,构建一套自己可以维护的开发平台才是最重要的。下面,我将以我的平台的开发过程为例来详细解析这个过程!  

“如果能把项目中大量的代码编写工作变得轻松,是多好的一件事!  "

        在使用了AppFuse之后,我有个想法,能不能利用velocity这个优秀的模板引擎,用一种更加直观的模式,把开发项目中的重复代码让它自动生成, 生成之后的基础代码,按照实际的需求稍作修改便可以运行,极大的提高工作效率。这样的话,程序员就可以从大量的重复劳动中解放出来,将精力更多的投入到业 务分析及学习中。

        这个想法一直在我的脑海里横亘不去,尤其在做了大量的重复模块后,深刻体会了重复Coding的那种浪费生命的痛苦后,这种冲动尤为强烈。

         离开旧公司,到了新公司之后,由于职位和公司定位的不同,让我有时间开始把快速开发平台和自动代码生成器的开发真正的摆上开发日程上了。

          第一步 ,自动代码生成器生成 的是业务模块,那么底层必须有一套框架能够为它提供支撑,而且这套基础框架要足够灵活,并且和单个模块的耦合性要比较弱。要解耦模块之间的联系,势必要用 到MVC分层设计。感谢Java的开放性,使它有这么许许多多的MVC框架可以使用。我采用的当然是目前最流行的 SSH(Struts+Spring+Hibernate)的组合(以前项目一直在用,也有些成熟的积累),花了三个月的时间,通过一个项目的实际应用来 使这个框架基本成型。其目前功能包括:

        1:灵活完善的权限管理功能(包括用户管理、角色管理、组织机构管理、资源管理、资源角色映射管理...)。原来计划采用开源的JGuard来托管这部分 的功能,因为一些特殊的原因放弃了(考虑要和工作流引擎的权限部分做集成),只采用了其权限管理的一些设计思想。

        2:基于Spring的AOP实现的日志和权限管理(通过Spring的代理也将Struts的Action托管了,使的对Action的调用也能被 AOP侦测到),这样对每个功能的调用,如果需要日志纪录的话,之间将其配置到Spring的配置文件中就可以了。

        3:UI上实现了类似.NET的Validation验证,这点很重要,想必大家都深刻体会到利用JavaScript或Struts的验证机制来实现前端页面数据验证的痛苦了吧:),我们实现的功能如下图所示:

       

        4、多套UI风格样式。这个不是很必须,但是作为一套成功的系统,良好的用户体验也是必不可少的。

        5、支撑模块:2套报表引擎(一个是基于JasperReport实现的B/S版本报表;另外一个是类Excel的报表引擎),流程引擎(其实就我个人来看,工作流引擎才是这套系统的灵魂 ,有了它,所有流程性应用包括表单、业务流、权限都可以通过配置并结合Beanshell脚本来获得 ,以下是我们报表和流程设计器的一些截图:

 

 

工作流引擎截图

 

报表截图

 

        6、i18n的支持,由于我们有很多国外的客户,这块是必须的。

 

有了这个基础支撑平台之后,就可以开始着手开放我们的代码生成器了。

        第二步 :开发代码生成器。 AppFuse基于Ant的自动代码生成模式让我深恶痛绝,究其原因,一句话--“不够人性化”,我们做的首先必须考虑可用性,因此决定采用可视化的UI 模式。由于我用的是NetBean编辑器,做可视化的Swing开发不成问题(这点要感谢SUN啊,出了个和VB一样简单的IDE)。我实现的代码生成器 的界面如下:

  

 

怎么样?是不是够傻瓜化啊?呵呵,是个人都能用啊!

       从上面大家可以看到,我们这个代码生成器和Hibernate的POJO对象生成工具类似,也是基于数据库的模型来生成代码的,不同的是,我们生成的代码 范围更广,不仅包括了POJO对象暨相应的hbm.xml文件,另外还包括相应的DAO(Server层)、相应的Action、Form类、相关的 JSP文件(list页面、edit页面、Excel导出页面等等)、资源文件及相关的Struts和Spring的配置子文件(Struts和 Spring均支撑将配置拆分成多个配置,我们利用这种特性来减低模块之间的耦合性。)

        至于数据库模型的获得,可以利用JDBC的MetaData(元数据模型) 的功能来获得,我们目前维护了表的完整的主键、外键关系(父子表)

 第三步:配置模板。有了可视化的数据库表映射模型,也获得了数据库表及其主外键关系的详细信息,接下来当然是根据这些信息来生成代码了。这里我们用了强大的Velocity模板 技术,这样不仅可以灵活的处理复杂的表映射对象之间的关系,也能够灵活的进行变更升级。而且我们能够通过所获得的数据库模型,在页面上自动实现基于Javascript的数据验证“非空验证、字符长度验证、数字验证,日期验证”。

          呵呵,通过以上3个步骤的工作,我们的基础开发平台和自动代码生成器就大功告成了!目前我们生成的代码可以直接编译通过,通过简单的系统配置后,可以直接在服务器上跑! 由于模板种类多,而且模板中自动实现的代码功能已经非常完善了,所以一些特殊的业务需求只需要在自动生成的代码基础上做简单修改就可以了!

         基础开发平台和代码生成器投入使用后,对我们项目开发的资源投入的改善是非常明细的,目前基于基础平台和代码生成器的配合,我们已经做了6、7个系统了,平均每个系统的 开发时间至少要比以前节约40%,有的项目甚至达到了80%以上(我们最高的一天,处理了40多个表的增、删、该、查的功能,及中文本地化)。而且,另外 很重要的一点,生成的代码无形中统一了程序员的设计风格,我们通过这套开发机制,能够最大限度的保证我们开发的系统质量,保证模块可以在不同系统之间的自 由迁移,最大限度的实现复用!在项目开发中节省出来的大量时间,也让我们可以去研究更多的开源中间件和系统,来增强我们的基础平台,从而形成一个良性的循 环!

 我们做了多套模板,能够针对单表操作,及父子表操作来自由组合搭配。以下就是我们系统的一些功能截图,除了中文化之外,基本上没有修改:

单表操作:

父子表关联操作:

 

 

================================================================

呵呵,这么长时间了,还有人关注这个帖子,谢谢大家的捧场了!
顺便通报一下我们平台目前的状况:
1、增加了Web Service接口功能,基于spring-xfire实现的,目前基于server这一层的所有接口,在代码生成器生成代码(或手工添加接口) 时,xfire会对其自动封装并对外暴露。并同时集成访问接口。程序员不用直接接触wsdl了(安全方面目前只是通过IP过滤来简单实现)。
   这样的话,同样基于平台的A、B两个独立系统,可以通过WebService进行相互调用,同时,从本地调用变更为webService调用不需要修改任何代码,只要修改配置文件的一行定义就可以了!
   这个应该算是我们平台的一个标志性的里程碑了吧!从一定意义上来说,这才真正成为一个开放的平台,算SOA化了,呵呵!

2、模板更加丰富了,基于工作流应用我们目前已经有了一套通用模式,可以和流程引擎进行无缝结合!针对流程应用的模板可以生成绝大部分引擎相关部 分的代码,程序员只需要修改流程定义模板的名称就可以了!同时针对一对多,一对一关系的模板进行了大量优化,能够适应更多的企业应用场景了!

  目前的平台还是主要针对开发人员,是企业应用快速开发 平台,我们后续规划将其和我们已经有的一套应用快速搭建 平台进行整合,以使其能够同时被业务人员和开发人员使用。简单业务就由业务人员通过搭建平台的可视化的流程和表单配置来实现,复杂业务再由技术人员通过开发平台来实现。
   最后再谈一下应用快速开发平台的定位吧,相信这也是大家最近争论的一个焦点,说有用的有之,说用处不大的也有之。我个人的观点是:只要你的平台够灵活,模 板够多、够复杂、兼容的业务场景越多,它就有用,而且很有用;反之,如果平台底层呆板,模板简单,它的用处就不大。至于其它的什么维护的便利性什么的我就 不再多说了,免得有吹嘘之嫌了,反正大家仁者见仁,智者见智!套用一句常话就是---寒天饮冰水,冷暖自知!
  我个人目前的工作重点已经转移到企业应用快速搭建(配置)平台上来,目前也有些心得,将其和应用快速开发平台的整合也颇有些成效,后续得空将续开些新博文,和大家共享,希望各位继续赏脸捧场!!!!

  • 大小: 56.4 KB
分享到:
评论
22 楼 hetylei 2008-08-26  
abcx 写道
既然是穷人了,还需要平台吗? 有人说楼主的这个东西太初级,的确是,我以前也见过类似的东西,说实话,最终的结果很可能就是一大堆难以维护的代码,因为你是用一种简单的逻辑对复杂的现实问题领域做一种简单的映射,现在可能觉得好,是因为可能还没进入复杂的需求变更维护阶段,或者说还没遇到复杂的问题。

对需求变更及复杂的问题,正常的情况下是怎么处理?
怎么处理就把解决方案放到模板里生成。
但是一定要记住,所有根据模板生成的代码只是一个业务模板,并不是完全拿来就能用的。
程序员无论如何必须了解框架的结构,知道在哪里响应需求变更, 在哪里解决复杂问题
21 楼 abcx 2008-08-26  
既然是穷人了,还需要平台吗? 有人说楼主的这个东西太初级,的确是,我以前也见过类似的东西,说实话,最终的结果很可能就是一大堆难以维护的代码,因为你是用一种简单的逻辑对复杂的现实问题领域做一种简单的映射,现在可能觉得好,是因为可能还没进入复杂的需求变更维护阶段,或者说还没遇到复杂的问题。
20 楼 hackang 2008-08-26  
HibernateSynchronizer比lz的强大多了
19 楼 cdxuyi 2008-08-26  
eos 承载的是软件工程的思想 ,studio及工作流 ,无出其右
18 楼 longlongriver 2008-08-26  
ltian 写道
EOS产品定位和发展方向完全不对。

这个我赞成,不应该去试图隔离代码,应该给程序员更大的自由度
17 楼 hetylei 2008-08-26  
别把EOS说得那么神秘 谁用过谁知道有多烂(当前的版本5.X)

codecreator现在成了每套框架必备的东西了
16 楼 magicdoom 2008-08-25  
呵呵  那个工作流引擎的截图看起来好熟悉
15 楼 badqiu 2008-08-25  
<div class='quote_title'>longlongriver 写道</div>
<div class='quote_div'>
<div class='quote_title'>pconline900 写道</div>
<div class='quote_div'>楼主没有考虑到使用velocity不支持多次代码生成么,生成代码后开发人员修改了代码(这个肯定不可避免的),下次领域模型修改重新生成代码,就会覆盖开发人员的工作。这个问题不解决,工具就难以适应变化,你的代码永远只能生成一次,也后若业务需求修改,领域模型不断变化,以后的代码工作就只能靠人工写代码的方式支持了,这就要求开发人员很熟悉你的目标代码框架,代码之间的关系等等,知道该修改哪些代码或者配置文件。<br/><br/><br/>偶之前也做过类似的工具,基于MDA的思想,实现从PIM到PSM的转换。目标代码是JSF+Spring+Hiberate的,包括所有的页面 代码和配置文件等,选择模板引擎的时候也比较过velocity,最终由于它不支持代码反复生成给否决了。最后采用了JET+JMerge的方式,可以通过代码中特定注释的方式来识别是否需要覆盖目标代码,生成出来的代码可以由开发人员反复发修改反复生成,而不会丢失内容。<br/>建议楼主改版的时候可以考虑JET JMerge组合的方式。<br/><br/>建模的时候元数据模型参考了普元和楼上平台的元数据模型内容,采用Eclipse EMF进行建模,抽象了一套pim. SWT+JFace做工具的界面,基于Eclipse平台做了一个Eclipse的代码自动生成插件,可以直接产生完整的Eclipse工程。<br/><br/>可扩展性方面,插件还对外提供了扩展的Extention point,可以供第三方基于我们的插件开发新的插件,以适合不同技术的项目(如struts+ibatis)等。<br/><br/>工具再代码生成这一块和普元的Eclipse插件很类似,呵呵,开发中项目50%以上的代码都可以自动生成,效果还很不错。<br/><br/><br/>前面一位老兄写的三点基本上都能支持<br/>-----------------------<br/>惊鸿逝水 写道<br/>业务流程设计也不是什么新东西,关键是能定义一个好的业务流程Schema,拖拽爱怎么实现都行。 <br/>平台级的代码生成器,需要考虑: <br/>1、正向向导生成代码 <br/><span style='color: #ff0000;'>支持</span><br/>2、代码逆向生成向导<br/><span style='color: #ff0000;'>使用了Jmerge,所以支持 </span><br/>3、必要的编译检查。 <br/><span style='color: #ff0000;'>由于是Eclipse插件,自动产生的J2EE工程,会自动编译,所以支持</span><br/><br/>以上不是一个简单模板可以实现</div>
<p> </p>
<p>我不是很清楚“velocity不支持多次代码生成”是什么意思?用代码生成器第一次基于数据库元模型生成代码的时候,我们一般指定生成到项目开发路径(IDE)中,这不会对之前已经生成的别的实体的代码产生任何影响,如果针对已生成过代码的数据库表需要再次生成的话,可以在代码生成器中指定别的“项目路径”把新的代码指定到别的地方,然后再进行人工合并。</p>
<p>当然,利用平台进行开发的人员需要清楚生成的代码格式,因为针对特殊的业务逻辑是需要在此基础上进行修改的,我们不会像EOS那样去试图隔离程序员和代码,毕竟来说,代码还是最灵活的。</p>
<p>针对楼上的改版建议,我个人很感谢,但对于我们这种规模的团队来说,花大力气去将其做的大而全并不是我们的目标,花几个月做出这套东西对我们来说已经达到目的了,够用就行!写这篇文章的目的也是想将平台开发的一些经验和大家分享</p>
<p>最后说一点:我们的平台和东方易维的很类似,他们有的我们都有,如果大家对东方易维的产品有了解的话,可以做个比较</p>
</div>
<p><br/>pconline900 的合并这部分没有必要搞的这么复杂,代码生成只是初始时生成一个基础结构文件,后续在此基础上增加业务逻辑代码,字段的增加可手工修改代码即可.</p>
<p>而我个人很厌恶的一点就是很多平台妄图将程序员与代码隔离,全部傻瓜式的,编写配置文件就可以实现某些功能,但这种做法又没有代码灵活.而且平台实现复杂.</p>
<p>而使用这种平台的更加郁闷,完全不了解平台,只知道使用这种工具.</p>
<p> </p>
14 楼 yongtree 2008-08-25  
很好,学习了
13 楼 longlongriver 2008-08-25  
<div class='quote_title'>pconline900 写道</div>
<div class='quote_div'>楼主没有考虑到使用velocity不支持多次代码生成么,生成代码后开发人员修改了代码(这个肯定不可避免的),下次领域模型修改重新生成代码,就会覆盖开发人员的工作。这个问题不解决,工具就难以适应变化,你的代码永远只能生成一次,也后若业务需求修改,领域模型不断变化,以后的代码工作就只能靠人工写代码的方式支持了,这就要求开发人员很熟悉你的目标代码框架,代码之间的关系等等,知道该修改哪些代码或者配置文件。<br/><br/><br/>偶之前也做过类似的工具,基于MDA的思想,实现从PIM到PSM的转换。目标代码是JSF+Spring+Hiberate的,包括所有的页面 代码和配置文件等,选择模板引擎的时候也比较过velocity,最终由于它不支持代码反复生成给否决了。最后采用了JET+JMerge的方式,可以通过代码中特定注释的方式来识别是否需要覆盖目标代码,生成出来的代码可以由开发人员反复发修改反复生成,而不会丢失内容。<br/>建议楼主改版的时候可以考虑JET JMerge组合的方式。<br/><br/>建模的时候元数据模型参考了普元和楼上平台的元数据模型内容,采用Eclipse EMF进行建模,抽象了一套pim.  SWT+JFace做工具的界面,基于Eclipse平台做了一个Eclipse的代码自动生成插件,可以直接产生完整的Eclipse工程。<br/><br/>可扩展性方面,插件还对外提供了扩展的Extention point,可以供第三方基于我们的插件开发新的插件,以适合不同技术的项目(如struts+ibatis)等。<br/><br/>工具再代码生成这一块和普元的Eclipse插件很类似,呵呵,开发中项目50%以上的代码都可以自动生成,效果还很不错。<br/><br/><br/>前面一位老兄写的三点基本上都能支持<br/>-----------------------<br/>惊鸿逝水 写道<br/>业务流程设计也不是什么新东西,关键是能定义一个好的业务流程Schema,拖拽爱怎么实现都行。 <br/>平台级的代码生成器,需要考虑: <br/>1、正向向导生成代码 <br/><span style='color: red;'>支持</span><br/>2、代码逆向生成向导<br/><span style='color: red;'>使用了Jmerge,所以支持 </span><br/>3、必要的编译检查。 <br/><span style='color: red;'>由于是Eclipse插件,自动产生的J2EE工程,会自动编译,所以支持</span><br/><br/>以上不是一个简单模板可以实现</div>
<p> </p>
<p>我不是很清楚“velocity不支持多次代码生成”是什么意思?用代码生成器第一次基于数据库元模型生成代码的时候,我们一般指定生成到项目开发路径(IDE)中,这不会对之前已经生成的别的实体的代码产生任何影响,如果针对已生成过代码的数据库表需要再次生成的话,可以在代码生成器中指定别的“项目路径”把新的代码指定到别的地方,然后再进行人工合并。</p>
<p>当然,利用平台进行开发的人员需要清楚生成的代码格式,因为针对特殊的业务逻辑是需要在此基础上进行修改的,我们不会像EOS那样去试图隔离程序员和代码,毕竟来说,代码还是最灵活的。</p>
<p>针对楼上的改版建议,我个人很感谢,但对于我们这种规模的团队来说,花大力气去将其做的大而全并不是我们的目标,花几个月做出这套东西对我们来说已经达到目的了,够用就行!写这篇文章的目的也是想将平台开发的一些经验和大家分享</p>
<p>最后说一点:我们的平台和东方易维的很类似,他们有的我们都有,如果大家对东方易维的产品有了解的话,可以做个比较</p>
12 楼 KKFC 2008-08-25  
这样的模型耦合度太高,还是EOS的老样子,建议从“数据、行为、样式”的基础划分开来 最清晰
11 楼 pconline900 2008-08-25  
楼主没有考虑到使用velocity不支持多次代码生成么,生成代码后开发人员修改了代码(这个肯定不可避免的),下次领域模型修改重新生成代码,就会覆盖开发人员的工作。这个问题不解决,工具就难以适应变化,你的代码永远只能生成一次,也后若业务需求修改,领域模型不断变化,以后的代码工作就只能靠人工写代码的方式支持了,这就要求开发人员很熟悉你的目标代码框架,代码之间的关系等等,知道该修改哪些代码或者配置文件。


偶之前也做过类似的工具,基于MDA的思想,实现从PIM到PSM的转换。目标代码是JSF+Spring+Hiberate的,包括所有的页面 代码和配置文件等,选择模板引擎的时候也比较过velocity,最终由于它不支持代码反复生成给否决了。最后采用了JET+JMerge的方式,可以通过代码中特定注释的方式来识别是否需要覆盖目标代码,生成出来的代码可以由开发人员反复发修改反复生成,而不会丢失内容。
建议楼主改版的时候可以考虑JET JMerge组合的方式。

建模的时候元数据模型参考了普元和楼上平台的元数据模型内容,采用Eclipse EMF进行建模,抽象了一套pim.  SWT+JFace做工具的界面,基于Eclipse平台做了一个Eclipse的代码自动生成插件,可以直接产生完整的Eclipse工程。

可扩展性方面,插件还对外提供了扩展的Extention point,可以供第三方基于我们的插件开发新的插件,以适合不同技术的项目(如struts+ibatis)等。

工具再代码生成这一块和普元的Eclipse插件很类似,呵呵,开发中项目50%以上的代码都可以自动生成,效果还很不错。


前面一位老兄写的三点基本上都能支持
-----------------------
惊鸿逝水 写道
业务流程设计也不是什么新东西,关键是能定义一个好的业务流程Schema,拖拽爱怎么实现都行。
平台级的代码生成器,需要考虑:
1、正向向导生成代码
支持
2、代码逆向生成向导
使用了Jmerge,所以支持
3、必要的编译检查。
由于是Eclipse插件,自动产生的J2EE工程,会自动编译,所以支持

以上不是一个简单模板可以实现
10 楼 longlongriver 2008-08-25  
呵呵,看来文章的标题还是给大家造成一定的歧义了,其实我个人的意思是构建一套穷人级的企业快速开发平台,毕竟像EOS这样动辄几十万的平台不是每个公司都愿意花钱去买的!而且对于小团队来说,构建一套自己可以维护的开发平台才是最重要的。
另外,此平台真正的业务构建是基于流程引擎+代码生成器来共同完成流程业务和非流程业务的快速开发的,针对这部分内容我已经重新修改文章,大家如果有兴趣,可以重新再浏览一遍,相信能减少一些理解上的歧义!
9 楼 badqiu 2008-08-25  
lszwycn 写道
badqiu 写道
惊鸿逝水 写道
业务流程设计也不是什么新东西,关键是能定义一个好的业务流程Schema,拖拽爱怎么实现都行。
平台级的代码生成器,需要考虑:
1、正向向导生成代码
2、代码逆向生成向导
3、必要的编译检查。

以上不是一个简单模板可以实现


"逆向",服了,怎么生成? 基于Hibernate Model生成数据库表?
复杂化了,同学!!

另外在楼主的项目中又看到了我的表单验证框架的影子,

另外楼主可以看下我的项目,为代码生成器开发一套GUI,还是太麻烦了
http://code.google.com/p/rapid-framework


其实是看你的定位是什么,如果简单的定位于代码生成工具的话,那么基本上生成出来的代码还要经过大量的修改才能被项目开发人员所用
惊鸿逝水说的三点我认为说到了点子上,平台级的代码生成器确实要考虑这三点,也就是引导项目团队的开发方式


多表关联操作这部分也可以生成,但开源的话定位还是通用/易用,所以不想在模板文件上搞的过于复杂,难以二次修改,而且view这一层,要定制的东西实在太多.
而现在rapid上的模板文件已经满足普通的增删改查需要,简单修改就可以适应自己的项目.

并且rapid的野心并不只这些,以后的flex,ext2等view界面都会以插件的方式加入进来.
8 楼 lszwycn 2008-08-25  
badqiu 写道
惊鸿逝水 写道
业务流程设计也不是什么新东西,关键是能定义一个好的业务流程Schema,拖拽爱怎么实现都行。
平台级的代码生成器,需要考虑:
1、正向向导生成代码
2、代码逆向生成向导
3、必要的编译检查。

以上不是一个简单模板可以实现


"逆向",服了,怎么生成? 基于Hibernate Model生成数据库表?
复杂化了,同学!!

另外在楼主的项目中又看到了我的表单验证框架的影子,

另外楼主可以看下我的项目,为代码生成器开发一套GUI,还是太麻烦了
http://code.google.com/p/rapid-framework


其实是看你的定位是什么,如果简单的定位于代码生成工具的话,那么基本上生成出来的代码还要经过大量的修改才能被项目开发人员所用
惊鸿逝水说的三点我认为说到了点子上,平台级的代码生成器确实要考虑这三点,也就是引导项目团队的开发方式
7 楼 longlongriver 2008-08-25  
惊鸿逝水 写道
业务流程设计也不是什么新东西,关键是能定义一个好的业务流程Schema,拖拽爱怎么实现都行。
平台级的代码生成器,需要考虑:
1、正向向导生成代码
2、代码逆向生成向导
3、必要的编译检查。

以上不是一个简单模板可以实现

呵呵,要澄清一下,这里的流程引擎可以生成流程业务需要的表单和业务流控制,可以基于流程定义生成持久化对象和后台存储,其和这里的代码生成器完全没有关系,代码生成器是用来处理非流程应用的代码生成工作。
由于流程引擎我们用的是反编译重构的商用系统,这里就不便透露更多信息了。除此之外,其它用的基本上都是开源产品和组件

6 楼 lszwycn 2008-08-25  
说实话,楼主的代码生成器还是很简单的,有很多的问题没有考虑到,更不用提什么忘掉eos了,普元的eos还是很厉害的,非常佩服eos studio的开发团队,尽管是竞争对手...
帖一张我们团队实现的代码生成工具的结构图吧,惭愧的说对eos studio还是参考了一点点滴
哪位感兴趣我可以在下面详细解说

另:velocity是很强大,但是其有一个致命的缺点,我们都在搞代码生成,我们也都知道大部分代码生成完之后肯定会被开发人员修改,添加业务逻辑等等,那么如果重新生成呢,就会把开发人员修改的内容覆盖掉了,在这一点上eclipse jet就做的比较好了,我们也正在考虑从velocity迁移到jet上面
5 楼 badqiu 2008-08-25  
惊鸿逝水 写道
业务流程设计也不是什么新东西,关键是能定义一个好的业务流程Schema,拖拽爱怎么实现都行。
平台级的代码生成器,需要考虑:
1、正向向导生成代码
2、代码逆向生成向导
3、必要的编译检查。

以上不是一个简单模板可以实现


"逆向",服了,怎么生成? 基于Hibernate Model生成数据库表?
复杂化了,同学!!

另外在楼主的项目中又看到了我的表单验证框架的影子,

另外楼主可以看下我的项目,为代码生成器开发一套GUI,还是太麻烦了
http://code.google.com/p/rapid-framework

4 楼 惊鸿逝水 2008-08-25  
业务流程设计也不是什么新东西,关键是能定义一个好的业务流程Schema,拖拽爱怎么实现都行。
平台级的代码生成器,需要考虑:
1、正向向导生成代码
2、代码逆向生成向导
3、必要的编译检查。

以上不是一个简单模板可以实现
3 楼 longlongriver 2008-08-25  
<div class='quote_title'>惊鸿逝水 写道</div>
<div class='quote_div'>这种生成器太初级了,只能算工具级的</div>
<p>类似普元的可视化业务流设计实际上在我们的工作流引擎中也有体现,完全可视化的业务流程拖拽设计。</p>
<p>至于代码生成器,我的设计原则就是一定要尽量简单,其实其也不可能复杂,它无非就是维护一个数据库中表、主键、外键关联的一个映射而已,生成代码的复杂性其实都体现在代码模板中了!</p>
<p> </p>

相关推荐

    普元EOS开发帮助手册

    普元EOS开发帮助手册,普元EOS开发帮助手册,普元EOS开发帮助手册,普元EOS开发帮助手册

    EOS.rar_EOS_普元_普元EOS_普元EOS教程

    **EOS - 普元企业服务总线** EOS(Enterprise Service Bus),由普元公司...通过学习"EOS概览",开发者不仅能深入了解普元EOS的功能特性,还能掌握实际开发中的技巧和最佳实践,为构建高效、稳定的SOA体系奠定基础。

    普元eos7.5开发手册

    - EOS 7.5 是一个强大的企业级开发平台,掌握其关键知识点对于高效开发至关重要。 - 这些知识点包括但不限于:界面设计、数据绑定、流程管理等。 - **详细解析:** - **界面设计:** - 掌握NUI控件的使用方法,...

    普元EOS-Platform-7.0基础开发教程完整版

    普元EOS Platform 7.0是一款基于J2EE、Eclipse等开放技术和平台的产品,它通过配置化、组件化、图形化和一体化的方式,为企业提供了一个覆盖应用程序全生命周期的支持平台。该平台旨在帮助企业实现统一的SOA(面向...

    普元EOS nuiDemo示例

    普元EOS是一款基于Java的企业级应用开发平台,它为开发者提供了丰富的组件和工具,便于快速构建企业信息系统。nui是EOS的一个重要组成部分,专注于用户界面的设计与实现,提供了强大的可视化界面设计能力。对于初学...

    普元EOS开发平台

    **普元EOS开发平台**(Primeton EOS® Platform)是一款基于Java EE和Eclipse等开放技术构建的领先SOA(面向服务架构)应用平台。该平台采用先进的SOA架构和标准化规范,提供了一个涵盖SOA应用全生命周期的支持环境...

    普元eos帮助文档

    普元eos的帮助文档详细介绍了如何安装使用普元前端开发框架NUI,它是普元eos的前端技术组件,可以帮助开发者快速构建Web界面,提高开发效率,减少代码编写量。本篇文章将从普元eos帮助文档的内容出发,提取出以下几...

    普元eos跨域组件

    普元EOS,作为一款企业级的服务治理平台,提供了解决这一问题的组件——普元EOS跨域组件。这个组件的出现,旨在帮助开发者克服浏览器的安全限制,实现不同源之间数据的交互。 **一、什么是普元EOS?** 普元EOS...

    普元EOS7.5基础教程(官网版)

    普元EOS是一款国内知名的中间件平台,专注于企业级服务总线(Enterprise Service Bus, ESB)和应用服务器领域。EOS7.5版本是其一个重要的迭代,提供了更强大的功能和优化的性能。本教程将深入介绍如何使用普元EOS7.5...

    普元EOS基础开发指南

    无论你是要进行企业级应用开发,还是想要提升你的SOA设计技能,这本书都将是你不可或缺的参考资料。通过深入阅读并实践书中的内容,你将能够充分利用EOS的强大功能,构建出高效、稳定的企业信息系统。

    普元EOS程序员培训教程

    普元EOS是基于Java技术的企业软件基础设施,它提供了一个开放、灵活且可扩展的平台,帮助开发者快速构建SOA(面向服务架构)应用。该平台支持多种标准如J2EE、WS-*和OSGi,确保与现有的IT环境无缝集成。 ### 2. ...

    普元EOS培训资料 绝对好 初学者的好朋友

    【普元EOS培训资料】是一套专为初学者设计的学习资源,它包含了全面且深入的EOS相关知识,确保用户在完成学习后能够熟练掌握并...对于想要在IT行业中立足并专研企业级应用开发的朋友们,这是一份不容错过的宝贵资源。

    普元EOS平台业务开发指南

    普元EOS平台是一款企业级的应用开发和集成平台,它为企业提供了快速构建、部署和管理应用程序的能力。本指南将深入探讨如何在EOS平台上进行业务开发,帮助开发者充分利用该平台的功能,提升开发效率,实现高质量的...

    普元EOS开发向导

    【普元EOS开发向导】是一份针对普元EOS平台的开发指南,旨在帮助...通过这份开发向导,开发者能够逐步了解并掌握普元EOS平台的使用,从基础的CRUD操作到复杂的多表查询和模糊查询,从而提升在企业级应用开发中的技能。

    EOS5.0 EOSV5.0 上海 普元 EOS5.0应用指南

    根据提供的文件信息,本文将详细...通过这些示例,用户不仅能够了解EOS的基本功能,还能学习如何有效地使用该平台来开发高质量的企业级应用。无论是对初学者还是有经验的开发者来说,这份指南都是一份非常宝贵的资源。

    普元EOS7.6安装步骤.pdf

    普元EOSPlatform7.6是一款企业级软件开发与运行平台,它提供开发版、企业版等不同版本,满足不同用户的需求。安装该软件需要具备一定的软硬件配置,具体配置要求将在以下章节详细说明。 ### 2. 配置要求 #### 2.1 ...

    上海普元EOS6.0程序员教程

    【上海普元EOS6.0程序员教程】是针对软件开发者设计的一份详尽教程,旨在帮助读者理解并掌握面向服务架构(SOA)的核心理念,以及如何利用普元EOS这一全球领先的SOA应用平台进行实际开发。教程不仅理论与实践相结合...

    普元eos-springbean开发

    普元EOS平台是一款面向企业级应用的低代码开发平台,它集成了大量的开发工具和技术框架,帮助企业快速构建高质量的应用系统。本文将围绕“普元EOS-SpringBean开发”这一主题展开讨论,重点讲解SpringBean在普元EOS中...

    普元EOS基础开发教程

    ### 普元EOS基础开发教程知识点解析 #### 第1章 产品概述 - **产品简介** EOS Platform 7.2 GA是一款基于J2EE、Eclipse等开放式技术平台构建的应用支撑软件。该软件提供了配置化、组件化、图形化以及一体化的...

    普元EOS培训示例源码1

    普元EOS(Enterprise Open Service)是一款企业级服务开发与运行平台,它提供了一整套的服务构建、管理和服务治理工具,以支持企业的信息化建设。 在提供的压缩包文件中,我们可以看到以下几个关键部分: 1. **exf...

Global site tag (gtag.js) - Google Analytics