系统由来针对一个Web应用系统开发,如CRM,OA,SCM等,在系统开发过程中,大量的时间被应用于页面合成上面,虽然有一些MVC的中间件的应用,但是还是感觉到低技术水准的编码和测试占了整个开发过程中的60%-80%的时间,这些包括如HTML代码的合成,页面单元的测试,数据验证和页面显示效果,浏览器的兼容性,用户没完没了的需求变更等。同时该部分工作又是开发工程师的恶魔,同时也是项目管理中的恶魔。 在典型的应用系统中,业务逻辑复杂的部分只占项目整体部分的10%-20%左右,大部分的工作是较为简单的数据录入、修改、删除和查询(包括多表和汇总)。对于复杂的业务逻辑部分的设计必须采用硬编码的方式进行,从而保证业务逻辑的完整性。但对应简单的部分如果还是采用硬编码(即使使用代码生成器)并合成为HTML,这样低技术水准的工作会大大延长开发的时间。
(项目内容分布) 该开发系统的目标是降低80%部分的开发周期,将大量的低技术含量的工作通过XML配置文件进行部署,解放工程师的时间,使其将主要精力放到数据库架构设计和核心业务逻辑上,同时减少开发时间和开发成本。
系统概述EWA是一套用于开发基于BS架构的应用系统的开发平台,他的目标是: 快速开发、修改与部署EWA通过XML配置文件进行系统的设计,包括UI模式及数据库访问,开发人员即可以通过EWA Designer进行系统的设计,同时也可以通过直接修改XML文件进行系统的配置即修改,系统的部署只需将XML配置文件和EWA Runner部署即可。同时有经验的工程师也可直接修改XML配置文件。 EWA Runner根据配置文件完成数据的访问,HTML的合成,内置脚本的生成,从而在很大程度上避免开发中过程中常见的如HTML合成的错误,数据库访问的连接关闭以及脚本编写的错误等。从而减少了开发中的重复劳动和在系统单元测试的时间。 统一UI,统一操作。UI界面采用皮肤模式,通过定义统一的皮肤,保持页面显示的一致性和操作的一致性。 浏览器兼容(IE,FF..)。页面显示和Javascript脚本兼容常见的浏览器,如IE,Firefox,Opera等,页面编码采用UTF-8编码。 数据库兼容。数据交换层根据不同的数据库类型自动完成如分页,子查询的解析,从而保持应用系统在不同数据库系统上的部署。(对应含有存储过程或数据库独有参数除外),目前系统支持数据库包括(SQL SERVER,SYBASE,ORACLE,MYSQL,HSQLDB)。 数据库直接访问,无中间映射,提高执行效率高。数据库连接直接访问WEB SERVER的数据库连接池,数据只访问一次,无中间层代理,无反射机制,从而保证较高的执行效率。 系统结构EWA系统包含XML Parser(XML解析器),Data Connection(数据库连接),Data Exchange(数据交换层),UI Generation (UI生成器)部分构成。 XML ParserXML Parser用于解析XML配置文件,根据Frame类型加载各参数,包括UI,SQL及逻辑部分。配置文件一旦加载就会放入Cache中,从而加快响应速度。如果XML配置文件被改变,XML Parser会自动重新加载。 Data ConnectionData Connection用于数据库的连接,数据连接是根据配置文件的说明连接到WEB SERVER(如TOMCAT)的数据库连接池。系统支持多个不同类型的数据库连接。 Data ExchangeData Exchange是用于数据库的数据交换,系统根据不同的XML配置文件和类型,自动生成诸如分页SQL,子查询SQL等,同时系统会自动将SQL参数和传递的参数(QueryString,Form,Session,Cookie)进行合成,用户不必关系过程。数据库连接的打开和关闭会自动完成,不会出现数据库连接未关闭的现象。 UI GenerationUI Generation是根据XML配置文件的描述自动生成HTML代码及脚本。三种类型的HTML支持的浏览器包括IE和FF,OPERA,Safari。同时HTML符合XHTML的要求。
(系统结构) 系统说明EWA的系统包含三个部分,EWA Runner,EWA Widgets和 EWA Designer。
EWA RunnerEWA Runner是用于解析和执行的系统,包含Frame,ListFrame,TreeView,Uploader四个部分,用于执行配置文件和进行交互。 TreeView用于显示树,常用于目录管理,节点选择等。支持一次性加载(少量数据)和分层加载(大量数据),同时支持同步的新增、修改、删除操作和用户自定义方法。同时可以根据不同节点类型显示不同数据。
(TreeView) FrameFrame用于数据的新增,修改,删除和查询等功能,支持元素如输入框,选择框,日期选择,文件上传,HTML编辑,多文本,单行文本等和用户自定义显示内容。AJAX提交数据,数据根据设定效验。错误数据自动提示等功能。 支持简单逻辑判断,Session的增加和清除。
(Frame) ListFrameListFrame用于数据的分页显示,内置显示方式包括button(按钮),checkbox(选择),radio(单选),date(日期),seq(序列号)以及用户自定义显示方式。支持数据查询,日期,数字和文字三种方式,数据排序,全选方法等。系统根据数据库类型自动生成分页SQL语句,无需用户干预。
(ListFrame ,Tips) EWA WidgetsEWA Widgets是浏览器控件,目前包括PopWindow(弹出窗口),DatePicker(日期选择),Tips(提示),Menu(菜单)和(Tabs)多窗口。该部分需要通过脚本调用。 PopWindowPopWindow用于显示弹出窗体,不会被浏览器拦截,常用于修改,新增和选择树节点操作。PopWindow可以指定当前的父窗口或最外层窗体,如果指定最外层窗体则可以跨Iframe或Frame显示。IE,FF支持。 DatePickerDatePicker用于日期选择,可以覆盖Select元素。IE,FF支持。 TipsTips用于显示提示信息,可以指定当前的父窗口或最外层窗体,如果指定最外层窗体则可以跨Iframe或Frame显示。IE,FF支持。 MenuMenu用于显示菜单,目前不支持多级菜单,FF支持不完整。 TabsTabs用于在浏览器中模仿VS等IDE的多窗口显示不同信息,便于快速查找和编辑。IE,FF支持。
(MENU,TABS) EWA DesignerEWA Designer是用于设计XML配置文件的操作界面,通过交互的方式进行设计并生成XML配置文件,从而降低开发的难度。设计包含Frame Designer,ListFrame Designer,TreeView Designer,DB Viewer和常用的一些工具。如脚本,SQL 生成器,DB Class 生成器,HTML 生成器等。同时设计中使用的HTML,SQL等编辑器支持语法着色。 Frame DesignerFrame Designer是用于设计Frame窗体的工具,自动根据字段名称和字段描述生成修改,新增,查看和删除XML配置文件,同时根据外键引用的设置显示为Select,根据主键的设定生成修改和删除SQL。 显示的UI用户可以根据需要自行设定。 字段的数据类型,数据判断和必填项可以人工设定。
(Frame Designer) ListFrame DesignerFrame Designer是用于设计ListFrame窗体的工具,自动根据字段名称和字段描述生成XML配置文件。 字段的排序,查询和分页数人工设定。
(ListFrame Designer) TreeView DesignerTreeView Designer是用于设计TreeView窗体的工具,自动根据字段名称和字段描述生成XML配置文件。同时可以生成诸如新增和删除的存储过程模板(ORACLE)。 分层加载根据需要人工设定。
(TreeView Designer) DB ViewerDB Viewer是用于显示指定数据源的表和视图,用于生成Frame,ListFrame,TreeView的XML配置文件和SQL脚本及数据映射类(JAVA)的代码。
(DB Viewer) HTML EDITORHTML EDITOR用于编辑UI的显示部分的HTML和JAVASCRIPT,同时可以根据选择自动生成部分脚本。编辑器支持语法着色,便于用户的编写。
(HTML EDITOR 语法着色) |