从目前国内主流的开发平台看,主要有两种实现模式:引擎模式及生成源代码模式。引擎模式比较有代表性的是方正飞鸿平台(http://www.founderfix.com),生成源代码模式比较有名是的普元平台(http://www.primeton.com)
首先说一下引擎模式,大家可能对报表工具都比较熟悉,目前见到的所有报表工具都是属于引擎模式的。也就是说,通过报表设计器设计出报表模板,发布到报表引擎中,在运行时,你向报表引擎里传递相关的参数,如报表条件,报表引擎负责查询数据库,加工数据,然后以各种方式展现出来。在这个过程中是不需要开发人员编写代码的,这就是引擎模式。
开发平台也是类似,也就是说,利用开发平台开发业务系统时,不需要编码,只需通过WEB页面进行参数定制即可,这些参数存放在系统数据库或XML文件中。系统运行时,由引擎调用这些参数进行页面展现及业务处理。
引擎模式是一种先进的模式,被广泛用于组件的编写中。
基于引擎模式的开发平台,目前见到的并不多,主要原因是这类平发平台本身实现要求的技术难度较大。方正飞鸿平台(http://www.founderfix.com)是这类平台比较具代表性的一个成功的产品。
说引擎模式开发平台本身实现难度较大,主要是因为,开发平台不同于报表工具那样功能单一,作为一个开发平台,除了报表引擎,还需要有自定义表单引擎,WEB组件引擎,流程引擎,业务逻辑引擎等等,要能方便客户利用它定义出一个复杂业务系统。所以就需要充分考虑实现一个复杂业务系统可能需要的开发功能,进行高度抽象,并且对编程算法要求也相当高。
再说生成源代码方式。这种方式主要通过一个桌面式设计器来定义业务模块,附助生成源代码框架,然后用户可以在生成的源代码的基础上编写、修改自己的源代码,实现业务逻辑,包括生成、修改JSP页面。
所以生成源代码模式也可认为是一种代码生成器。
相对于生成源代码模式,引擎模式具有很大的优势:
由于不生成源代码,所以对开发人员的技术水平要求比较低,开发人员即使不懂JAVA,也可以方便快速开发,基本上懂sql就可以开发。
由于开发时,开发人员完全基于浏览器访问服务器进行参数定制,所以对于团队开发特别适合,特别是远程协作开发。
系统上线后,可以在线维护,也可以在线定制新的模块(如查询,编辑模块),不需重新编码,编译,发布。
相对于生成源代码类的开发平台,最大优势是方便升级,基于引擎的开发平台,由于参数是存在数据库中的,开发平台升级时,只需通过升级程序将这些数据升级处理一下即可,用户不需要做任何修改,即可以享有新版的所有功能。而基于生成源代码的,实现方式是:设计->定制业务模块->生成源代码框架->用户手工添加自己的代码。比如生成JSP后,用户需要在JSP基础上进行更改,这样就造成以后很难升级,因为新版的开发平台,生成JSP模板一般是要变的,比如增加很多功能,用户除非重新修改JSP文件,才能享有新增的功能。
当然引擎模式,也有它的不足,即处理一些引擎没有提供模板的特殊界面及复杂业务逻辑时不如生成源代码方式平台方便,因为对于生成源代码的,开发人员可以随意对生在的源代码任意修改,实现复杂业务。因为基于引擎的开发平台,还要有良好的可扩展接口,可以让开发人员通过编程方式实现一些复杂的界面及业务逻辑。这一点,方正飞鸿平台(http://www.founderfix.com)就做的不错。