Dorado 5 : 2.1.产品概述 (RF1)

dorado的产品全名是"dorado展现中间件"。从产品形态上dorado由两部分组成,第一部分是一个具有AJAX特征的Web应用表现层的快速开发框架,第二部分配套的IDE开发工具。开发工具又可分为独立的dorado studio与eclipse插件两个选择,eclipse插件将在以后发布,本文的开发工具专指dorado studio。
Web表现层方面的产品主要技术流派有离散控件构架、后台衍伸构架、展现中间件构架等数种。离散控件构架多是一套各个控件互不相关的JavaScript库,如bindows,后台衍伸构架多是为专有的后台业务逻辑框架服务,如工作流的表单设计器。展现中间件构架提Wedget Lib(表现层控件库)并由展现层引擎统一驱动与管理。控件使用的个数越多种类越多,越有效用。可对接的业务逻辑层也不限于某种框架,可以广泛地通过整合接口与各种第三方后台逻辑框架相整合。还可以通过展现层引擎整合基于离散控件架构的Web表现层产品,进一步增强Web的展现力、操作性与承载量,同时提高开发效率。
下面让我们来看一下属于展现中间件构架的dorado产品的组成部分吧!

图表 1dorado产品构成图
如图,dorado主要包含5个组成部分:
富浏览器客户端:基于标准浏览器技术,增强web界面的信息承载量、表现力与操作性。其中包含了应用客户端常用表格、树、表单、多页标签等一整套界面组件
展现引擎:支持AJAX特性,用于增强dorado客户端的交互能力。
MVC开发框架:包括数据持久层的实现、页面流控制、展现层角色机制、国际化资源管理、配置管理与监控控制台等。既可自成体系,又可与各种开发模式与框架相结合。
集成开发工具:dorado专用的IDE,可进一步提升开发速度。
应用框架:又称marmot,用于为基于Struts、WebWork、Spring、Hibernate、iBatis等开源框架的开发模式提供与Dorado集成的范例性的实现代码。其中包含了应用主框架、完整权限的框架、用户Profile管理、即时消息等实用功能的实现代码。
由此可见,dorado的产品本身包含的内容还是比较丰富的,在以上各组成部分中"富浏览器客户端"和"展现引擎"是dorado的核心功能。"集成开发工具"一般而言也是在开发过程中一定会用到的。而剩下的"MVC开发框架"和"应用框架"是否会用到,以及dorado在整个应用开发的体系中所扮演的角色则完全取决于我们对dorado的使用方式。
一般而言,基于dorado的开发主要有以下两种模式:
模式A: 以dorado提供的DBDataset和DBStatement作为主要的数据库访问方式的开发模式。
DBDataset有两个重要的派生类AutoSqlDataset和SqlDataset。AutoSqlDataset和SqlDataset都是以直接的JDBC调用来完成数据库访问的,不同的是使用SqlDataset时,开发人员需要直接指定要执行的SQL命令;而使用AutoSqlDataset时,开发人员需要指定的是查询方式的描述信息,由AutoSqlDataset来生成最终的SQL。而DBStatement则可以看作是JDBC中PreparedStatement的增强。
此种开发方式相对比较简单,其逻辑架构大致如下

图表 2基于dorado的开发模式A
可见,在此种开发模式中对数据库的方式都是通过dorado提供的功能完成的,而开发人员编写的商业逻辑代码往往也是基于dorado的API的,即与dorado紧密耦合的。在这种开发模式中,dorado的作用基本是整体应用的框架,应用的业务逻辑完全附着dorado的体系中运行。其快速开发的概念表现为对整个应用的快速搭建。
这种开发模式的好处在于简单。其简单的含义可以体现在一下4个方面:
易于掌握,上手简单。
开发过程对开发者的技术要求较低。
节省开发阶段前期为应用搭建框架的工作量。
开发阶段中编码量低。
笔者认为,模式A对于中小型项目而言是非常适用。不过对于大型项目而言,它也存在着一定的局限性。这里所说的局限性往往并不是来自于系统功能的复杂度,而是来自于与项目开发过程的管理要求和今后的扩展需求。至于为什么会产生局限性的话题已经超出了本书的范围,您可以尝试了解一下为什么会有许多人使用Spring、Hibernate、Struts、iBatis这样的开源框架。
模式B:使用以独立封装的业务逻辑层结合dorado表现层的开发模式。

图表 3基于dorado的开发模式B
在这种开发模式中,开发者往往会用到Spring、Hibernate、iBatis这样的开源框架,利用这些框架来搭建出独立封装的业务逻辑层。这类开发模式在引入dorado之前就已经具备了MVC架构模式的特征,而dorado是作为对原有模式中视图层(即V)的强有力补充而引入的。在这种开发模式中,dorado的作用主要是作用于表现层的开发框架,其快速开发的概念也更多的体现在对应用交互界面的快速定制。(注:如果在此模式中引入了Marmot应用框架,那么dorado产品将同样可以起到快速搭建整个应用的作用)。
与模式A不同,DBDataset在此已没有什么价值,替代它的是dorado中的MarmotDataset、CustomDataset等,这些Dataset的共同特点是可以方便的与来自业务逻辑层的POJO型数据进行双向的交互。
dorado的以上两种开发模式并没有绝对的孰优孰劣。究竟应该在项目使用哪种方式,这很大程度上取决于您的智慧和判断。一般而言,如果您的项目中没有特别的需要或者您没有什么特别的技术嗜好,建议您首先考虑使用模式A。