Dorado7研发文档
Dorado7研发文档Project home产品简介Dorado presentationMiddleware(即 Dorado展现中间件,以下简称 Dorado)致力于辅助Web应用中表现层的开发过程。 Dorado主要可以为您带来如下两方面的使用价值更加美观、更加人性化的Web操作界面。更加高效的表现层开发效率。Dorado presentation middleware产品包含3个主要的功能部分:web客户端、服务端引擎、IDE集成开发工具。ClientEngineIDEWeb客户端-主要利用 Javascript搭建的纯浏览器前端展现系统,可支持目前较为常见的所有主流浏览器。服务端引擎-用于辅助 DoradoWeb客户端的自动生成,客户端与服务端的数据通信、状态同步,以及 Dorado展现层与后台系统的集成等DE集成开发工具- Eclipse插件形式的集成开发工具。用于辅助开发人员对 Dorado界面及其他相关配置进行快速的定制主要功能特点全新的Web客户端Dorado7提供了全新打造的web客户端,这包括全新的基础运行框架和全新的控件库。较之 Dorado的前作,新的weεb客户端将芾来如下的増强1.支持所有主流浏览器Dorado7将兼容所有主流的浏览器,包括IE、 Chrome、 Firefox、 Safari、 Opera以及以这5种浏览器为内核的其他浏览器。结合目前各浏览器在性能、稳定性、功能等各方面的因素,我们推荐用户使用 Chrome作为首选的浏览器。2.更加丰富的控件库ˉ初始包含超过60个的界面控件,并且此数量还会不断的提高。3.更加Aax由于在设计之初给予了周全的考虑,因此 Dorado7可以在几乎所有的交互过程中以异步请求替代同步请求,这将使界面的操作体验获得极大的提升。同时, Doradσ7中还提供了独特的Ajax请求自动合并技术,以尽可能减少与服务端之间的实际交互次数,进一步提高界面运行效率。4.管理库文件,实现按需装载Dσradσ7提供了以资源包的形式对ν jascript和CSS文件进行管理的功能,不但系统内部的库文件以此种方式进行管理,用户七可以将自己的库文廾纳入这一管理机制通过这一功能,用户可以定义各资源包之间的依赖关系、实现库文件的运行时自动合并、以及库文件的按需装载。这可以在性能优化、项目维护等方面带来诸多好处。5.强大的客户端调试器新的客户端调试器可以提供分级日志、APi测试、页面结构剖析等调试功能。借助新的调试器您甚至还可以随时査看/修改任意Dσrado对象的属性值、分析 DataSet中的实时数据。配合 Doradσ7中全新的异常处理机制,相比前作开发人员将拥有更加丰富的调试手段6.完整的拖拽功能支持- Dorado7中所有的控件都将支持拖拽操作的属性、事件和API接口。立体数据模型立体数据模型"因其相对于平面数据模型(二维数据模型)而得名。即指Dσradσ7推醪了 Doradσ前作中以 DataSet为媒介、以二维表形式对于展现数据进行封装和管理的设计思路。Dorado7不再局限数据必须以二维表结构与 Data set对接,而是可以支持非常自由的数据形式。并且也不再提供专用的数据封装对象这些变化使得展现层中的数据更加纯粹、更加贴切真实的业务含义。自然,也使开发变得更加便利、更加生动。立体数据模型"是 Dorado7相对于前作最重要的概念变化,也是 Dorado7最为核心的设计思想。以上的寥寥数语并不足以阐明这一抽象概念,请参考 Doradeσ7方法论中关于"立体数据模型"的更多论述。没有JSP的Web秉承了 Dorado产品的一贯风格, Dorado7仍以XML形式的视图配置文件作为定义Web界面的主要手段。不过,在 Dorado7中这里的视图配置文件被赋予了更多的内涵,视图配置文件已经可以完整的描述Web界面的所有特性,JSP不再是 Dorado7的必选项。在大多数情况下,直接访问一个视图配置文件就可以得到个功能完整的Web界面。可能很多开发人员对于此特性会感到一丝不安,出于某些技术人员习惯以及页面需求等原因,开发人员可能仍然需要以HTML形式來实现页面的布局Dorado7同样对此种使用方式提供了完善的攴持。开发者可以很方便的使用JSP、 Velocity或者其他类似的技术来为视图配置文件定义布局方式。并且,新的开发方式让美工人员与开发人员的合作变得更为可行和便利。以SP为例, Dorado7不再引入繁多的 Taglib标签库,而是以纯HTML方式的占位符来辅助Web页面的布局智能方法适配智能方法适配"是指允许开发人员尽可能按照自己的意愿、业务的需要来定义他们的业务方法,然后由 Dorado引擎自动根据场景、参数名、参数类型等因素来判断应当怎样谓用该业务方法。"智能方法适配"是Dσrado7提供的一个非常有特色的功能,提供此功能的主要囯的是尽量减少开发人员所需要掌握的 DoradoAPI,让业务方法的代码更加"业务化",更加易于阅读。通过"智能方法适配"也可以很好的体验岀 Dorado7所提倡的"基于约定而非配置"进行开发的理念。在实际的应用场景中大部分实现了 Dorado前端的功能中可能并不需要引入任何 Dorado的APIε扩展和重用为提高 Dorado7产品的扩展性和可車用性我们在 Dorado7中提供了很多新的特性,这些特性主要包括:1.叠加式配置当用于需要设置或改变 Dorado中的某运行参数时,通常不需要直接修改 Dorado提供的缺省配置文件,而是增加一个新的、只包含最小参数集合的配置文件由Doυradσ引擎对这些配置文件进行叠加是的读取和处理,此特性可以有效的降低升级Dσrado引擎可能带来的额外成本、提供项目的可维护性2.利用 Spring搭建的 Dorado引擎Dorado7自身的服务就是利用 Spring搭建起来,不过 Dorado7并不因此要求用户的项目一定要使用 Spring这个特性使得开发人员有能力利用 Spring的特性来替换几乎所有 Dorado自身的内部服务。3.数据模型对象Doradσ7中的数据模型对象既支持全局、私有、匿名等可见性,又支持类似面向对象的继承和复写。这些特性可以为配置信息的重用和维护提供很多的便利。4.视图配置文件模板ˉ Dorado7中的视图配置文件支持多级模板功能,这非常有利于降低项目的管理和维护成本。5.视图配置的mpo和 ExportDorado7的视图配置文件允许开发人员利用 Import和EXpo这两个标记。引入来自于其他视图配置文件中的一段配置信息。6.用户自定义控件Dorado7允许用户将一段已有的、具有一个通用性视图配置信息注册为—个新的自定义控件,并且 Dorado的IDE也可以非常方便的支持这新添加的控件。Client editionDorado7提供 Dorado7 Client edition这样一个特性的产品打包方式, Dorado7 Client edition中只包含了 Dorado7 PresentationMiddleware中的Web客户端部分(即 Javascrip+和CSs的部分)发布此版本的目的是为了满足各种web项目中前端界增强的需求。这里提到的web项囯包括基于」2EE的Web项目和其他」2EE的web项目,如.Net、PHP等,其定位类似于Ext。 Dorado7 Client edition从一个侧面体现出了 Dorado7产品在设计上的封装度和灵活性不仅仅是展现中间件虽然 Dorado7的主要功能都是围绕展现层这一主题展开的,可是我们认为 Dorado7连司配套的 Sample Center提供给用户的并不仅仅是对wWeb应用展现层的简单补充。通过 Dorado即相关的示例所承载的是一种非常实用的Web开发最佳实践、一种新的开发模式。因此可以说,使用Dσrado您得到的可能并不是仅仅是对展现层的改良,也是对整体应用开发模式的一次度量和重铸。最近的更新6.前端展现相关的技术诜型(M)william.jiang@bstek.com更新(查看变动十月10,2012同步与异步装载冲突的分析和解决方法(SEUG)benny.bao@bstek.com更新(查看变动)八月30,2012time-line-4. gifbenny.bao@bstek.com添加了附件八月29,2012time-line-3. gifbenny.bao@bstek.com添加了附件八月29,2012time-line-2. gifbenny.bao@bstek.com添加了附件八月29,2012time-line-1. gifbenny. bao@ bstek con添加了附件八月29,2012getData DuringLoading pngbenny.bao@bstek.com添加了附件八月29,201202.标准版开发技巧(SEUG)benny. bao@ bstek con更新(查看变动)八月29,2012Dorado7IDE向导开发(草稿)(SEUG)benny.bao@bstek.com更新(查看变动)八月29,201203.纯客户端版开发技巧(CEUG)benny. bao@ bstek con更新查看变动)八月29,20Vew中如何引入第三方的资源文件(SEUG)villiam.jiang@bstek.com更新查看变动)八月15,2012mage20128-1510:6:51pngwilliamjiang@bstek.com添加了附件八月15,2012● Image2012-8-1510:1:49pngwilliamjiang@bstek.com添加了附件八月15,2012● Image2012-8-159:56:12pngwilliamjiang@bstek.com添加了附件八月15,2012mage20128-159:5:29ngwilliam.jiang@bstek.com添加了附件八月15,2012更多博文博文:7.0.110714版本中非向上兼容性改进的汇总创建bennybao@bstek.com七月14,2011Dorado 7博文: dorado.7.0- ALPHA.110321.1512发布创建bennybao@bstek.com三月22,2011Dorado 7●博文: Client side aPi documentation上线了!创建bennybao@bstek.com十二月26,2010Dorado 7博文: dorado- standard- edition- preview.101221发布创建bennybao@bstek.com十二月21,2010orado●博文: dorado- client- edition.7.0-BETA.1011161527发布创建bennybao@bstek.com十一月16,2010Dorado 7●博文欢迎纠错和补充创建benny.bao@bstek.com十一月10,2010Dorado 7博文:Page的命名原则创建bennybao@bstek.com十月31,2010Dorado 701.词汇表(V词汇基本释义Data Control数据感知控件Data Path数据路径Data provider数据提供器Data resolver数据处理器Data Set数据集Datatype数据类型Entity/Entity List数据载体,即数据实体和数据实体的集合Look查找属性声明Reference引用属性声明动态E表达式即实时求值的表达式。动态EL表达式是在普通E表达式基础上的进一步扩展。普通E表达式以$ expression的方式定义$$ expression}的方式定义视图配置文件用于定义一个视图的XML配置文件数据模型配置文件用于定义各种模型对彖的XML配置文件虚拟属性Dorado为某些对象提供的一种虛拟的属性。提供这种虚拟属性功能的目的是为了给属性附加相应的 getter、 setter方法以及r(虚以属性标注用于对虚拟属性的声明进行进一步的描述的属性虚拟面向对象利用avap的 Prototype.特性为普通的对象提供了一系列的增强,使之看起来像是真正面向对象数据模型对象的总体介绍(V本文涉及的对象包括 Entity/ EntityList、 DataType、 DataProvider、 Data Resolver、 Data Set、 Data Path。由于这些对象之间有着比较密切的关联关系,因此我们将它们放在一起做一个总体的介绍Entity/Entity ListEntity、 Entity List分别表示数据实体和数据实体的集合,是 Dorado中展现数据的载体数据实体特指那些可以包含一到多个属性的数据对象,数据实体在 Dorado的服务端通常表现为POJOBean,而在 Dorado的客户端则有具体的实现类- dorado Entity。数据实体的集合更加容易理解,它表示数据实体的集合。在 Dorado的服务端 Entity List通常表现为List或Set的实例,而在 Dorado的客户端则是dorado Entity List的实例。Data TypeDataType即数据类型,是 dorado7中全新的、最关键的概念。Dataτype实现的功能有点类似复杂的数据字典,用于描述各种数据。例如描述某数据实体中每个属性的标题、显示格式、校验规则等等。对于基于ORM开发的Web应用而言, dorado能够自动的根据∨O的Cass类型为其分配适当的 DataType。· DataType可以描述通常所见的所有类型的数据,既包含用户定义的POJo,也包含了Java中的简单数据类型。例如我们定义一个 DataType用来描述系统中的 java util. Date这种数据,这样我们就可以讨 DataType为所有的日期类数据定义默认的输出格式· DataType是一种在服务端和客户端都存在生命周期的对象,即在服务端和客户端都可以使用,因此Dataτype还支持-些在客户端才有的特性,例如 Entity Data Type支持名为 after Data Changed的客户端事件,每当有属于该类型的实体对象的某属性值在客户端被修改时,此事件就会被触发。Data ProviderData Provider顾名思义就是数据提供者,是一种用于为 dorado展现层提供数据的对象。Data Provider通常的作用是根据其自身的定义和外部传入的参数调用后台业务逻輯层的业务方法,并对得到的返回加以封装,变成展现数据然后返回给外界。尽管 Data Type具有自动根据数据的 Class类型进行怏射的功能,不过我们仍然可以通过 DataProvider的 ]resultData Type属性为将要返回的数据手工指定 DataTypeData Provider.具有类型的概念,可以用不同类型的 Data Provider封装不同种的展现数据获取方式。用户可以创建自己的 Data Provider类型如同目前 Dorado5中的 Dataset可以有各种类型Data resolverData resolver可翻译为数据处理器,是一种用于将 dorado中的展现数据提供给后台业务逻辑层的对象DataResolver的作用大致与 Data Provider相反,一般而言 DataResolver门调用的都是后台业务逻辑层中与数据持久化相关的操作。DataResolⅤer也具有类型的概念,不同类型的 DataResolver封装有不同种的展现数据处理或持久化方式。用户也可以创建自己的 DataResolver类型DatasetData Set是一种不可无的 Widget· Data Set最主要的生命周期是在客户端,主要作用是用于包含展现数据。主要作用是为一组展现数据起个别名,以便于数据敏感控件和开发人员使用他们;而 Data Set的id就是这堆展现数据的别名DataSet本身是一个轻量级对象,与 Dorado5中的 Dataset不同,它没有类型之分, Dataset中所包含的数据由其中的 Data provider所返回的数据决定。Data set支持利用 Data Path来对其中的数据进行快速的挖掘。Data pathData Path可称为数据路径DataPath是在 Dorado的客户端所使用的,用于描述如何提取、挖掘数据的表达式。其作用比较类似于ⅩML中所使用的 XPath结合上面的介绍我们总体的来看一下这些对象在Web应用数据环路中的作用和所处的位置。见下图:业务逻辑数据库)业务逆辑DomainobjectDomainobjectData ProviderData ResolverDataType描述描述ViewobjectView objectDataset传输浏览器传输dorado在开发过程中的作用范围可能仅仅如此,你还不是不能对这些新概念有一个准确的认识。下面我们用大家都比较敫悉的数据库来打个比方。见下图:后台逻辑层Data ProviderData ResolverEntity(record)Entity List (Table)DataSet DatT( Shema(Data Base)DataPath(SQL)用户或数据控件在上图中 DataSet位于图的最中间,我们可以把 DataSet比作数据库。Data Set中包含具体的数据载体,这些数据载体就像是数据库中的表和记录。 Entity Listi就相当于表, Entity就相当于表中的记录。DataType是用于描述数据的,它就像是数据库中的 Schema(也就是表和字段定义)Data Provider和 Data Resolver比较容易理解,一个用于为 DataSet提供后台业务逻辑层中数据,一个用于将 Dataset中的数据提取出来交给后台业务逻辑层。· DataPath是一种表达式,作用就相当于我们常用的SQL,用于从 DataSet提取数据。02.标准版开发技巧(SEUG)ro75 tandard∈ ditionAddon(SeUg)简介oraAddon是指 Dorado7的各种扩展包,通常是jar的形式提供的。事实上在 Dorado7标准版提供的jar包中,除 dorado-core,其他都可以视为 Dorado Addon。 Dorado addon即可以提供新的控件、也可以提供新的皮肤、甚至是一整套完整的应用。实现dorado- package properties文件声明我们需要在ja包的META-NF目录中添加一个 dorado- package properties文件其内容(以 dorado-chart-70.*jar为例)属性说明:属性名说明nameAddon的名称建议的命名习惯为 package路径,保证唯一性depends依赖的其他 Dorado7的ar包的 Addon的name,如有多个请用逗号(")隔开contextConfigLocations该Adon的默认 (spring的配置文件versionAddon本身的版本说明client资源如果该 Addon咐带还有 Browser中使用的资源如 Chart中含有 swf,js, gif, jpg等等,则我们可以在jar的目录中添加一个 dorado目录,并按照如下目录结构放置资源目录说明resources其他资源crypts脚本资源skins皮肤资源如下图
用户评论