利用元数据和RIA简化企业应用程序的开发_第1页
利用元数据和RIA简化企业应用程序的开发_第2页
利用元数据和RIA简化企业应用程序的开发_第3页
利用元数据和RIA简化企业应用程序的开发_第4页
利用元数据和RIA简化企业应用程序的开发_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、利用元数据和RIA简化企业应用程序的开发,曹晓钢 BEA UG Guangzhou,2006-3-12,Agenda,MVC面临的用户体验困境 构件化界面组织- Qooxdoo Rich Browser/Server 所需的Data Transport Data Binding 与metadata的关系 Demo,Requirment,Hibernate基础知识 MVC基础知识 Spring基础知识,Java Web 编程模型,Servlet规范 Request Response Session JSP 本质上是servlet编译生成器,MVC,Model 对应域模型 View 观察域模型的不

2、同视角 Controller 真正进行对象操作,MVC出现的背景,在JSP中混杂进行数据库编程 将数据准备与数据展现混杂在一起 将数据处理与结果展现混杂在一起 因为以上的混杂,无法有效的利用OO进行对象建模 Struts和WebWork解决了这两个主要的混杂问题,MVC没有解决的问题,MVC模型仍然基于request/response,因此需要用多次交互才能完成一次“用户操作” 保存现场于session 反例:将Hibernate session绑定到http session 使用continuation 仍然是低层协议,界面建构仍然留给程序员完成 界面建构时,客户端界面代码同时出现在客户端和

3、服务器端,新的web框架方向,Continuation解决交互不连贯问题 构件化界面开发 Tapestry JSF 以上二者都仍然在服务器端进行界面建构 使用纯粹客户端控件进行界面建构 JavaScript RIA,JavaScript RIA,基于IE behaviour的控件封装 基于XAML/XUL的控件封装 zk 纯粹javascript DHTML的控件封装 Bindows (付费授权) Qooxdoo (开放源代码) 注意:Javascript RIA在激烈演进中,仍然需要更多的时间等待其稳定,Qooxdoo,http:/qooxdoo.oss.schlund.de/ OpenSo

4、urce 跨浏览器平台 Internet Explorer = 5.5 Mozilla = 1.3 Firefox = 1.0 Opera = 8.0 有对应的实际公司(德国) 在实际工程中使用 仔细的进行过内存泄露测试,没有已知的泄露 开发活跃,基础设施较完善,Qooxdoo,对象继承基础设施 QxNative QxExtend 事件基础设施 QxEvent Button.addEventListener(“click”,function()xxx) Property event,Qooxdoo Layout,CanvasLayout 使用横纵座标对控件绝对定位 BoxLayout 单方向堆

5、叠式自动对齐控件 FlowLayout 对控件进行自动换行 DockLayout 在行列两个方向均可以自动堆叠 GridLayout 提供类似于HTML Table的定位方式,Qooxdoo Appearence,对CSS和Border的封装 引入State,分离用于表达控件状态的代码 引入Theme,用于切换外观主题 对字体的统一控制尚欠缺,Qooxdoo Widget,Qooxdoo提供: Atom Button Menu Toolbar Spin combobox Listview Treeview Tab control Window .,Qooxdoo 控件扩展,实例:扩展listv

6、iew的例子,Qooxdoo transport,AJAX enabled Transports: IFrame xmlhttpget,RIA编程,MVC转移到客户端 通过AJAX与服务器端的MVC基础设施联系 用户在客户端使用javascript表达一个连贯的操作,逻辑前移 One page , one operation 客户端逻辑取代在服务器端的session/continuation 更好的分离界面逻辑与业务逻辑,Browser as a MACHINE?,Browser 作为javascript语言运行的内存 HTTP作为数据访问协议 客户端Object与服务器端Object的映射?

7、,需要考虑的问题,界面元素的展现形式 每个界面元素对应于域模型的一个POJO 界面元素中的property和POJO property对应 是否需要在客户端了解property的属性? Validation的需要 Format的需要 Query的需要 是否需要在客户端了解POJO之间的关联关系? 在多个界面中维护同一对象同一属性一致的外观和操作 在对象关联的时候,在界面中直接进行对象选择操作,ClientSide MVC,Model层的Cache? Model之间的reference View 的表述方式 XUL/XAML DHTML Widget,在B/S之间传递数据,QxTransport

8、 Buffalo(burlap协议) JSON(自定协议json-rpc) . Buffalo和JSON使用的协议较详尽,适合作为B/S remote call使用 ( /archives/85 )Michael Chen的blog中有较完整说明 传输流程图,Buffalo, MichaelChen(陈金洲)作品 在多个正式系统中使用 使用简洁明快 服务器端和spring方便的集成 使用burlap协议 尚缺乏time out的支持 同步与异步切换的支持,Data Bind,如何把数据绑定到客户端控件 XML Data Island无法跨越浏览器

9、此领域尚未有标准方法 Bind后客户端控件重新渲染时,利用元数据进行格式化 对关联类型的绑定 Metadata是Data Bind的最重要来源,metadata,Entity 所需的metadata Property 属性 Nullable Identity Length Scale Type Entity之间的关联 JDBC ResultSet metadata 中内容有限 Hibernate metadata和Mapping configuration可以提供 model层的metadata在view层的表现形式 可能被override SDO4JS?,Javascript RIA Pro

10、s 逻辑前移,客户端的MVC模型对应 Cons 框架在激烈的演进中,尚未稳定 DataBind需要特别关注 同步AJAX RPC与异步AJAX RPC的使用场景 Buffalo这点上尚需改进 异步AJAX RPC 拓扑图 异步竞态问题,Pros & Cons 2,N+1问题:AJAX object lazy loading 注意:客户端无法使用Cache AJAX Query interface 注意到服务器端可能不是数据库 Query Fetch Path强制指定 Javascript本身带来的问题 速度 内存泄露,Thats All,Thank You,About us: 满江红开放技术研究组织 OpenDoc Hibernate开发指南 Spring开发指南 iBatis开发指南 WebWork开发指南 Cruise Control 使用指南 Shift to Dynamic: Smallt

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论