ZK 简介
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ZK 简介Direct RIA开发框架开放源代码
纯java
以Server端为中心的开发方式零JavaScript代码客户
服务端推送(Comet)100% 事件驱动
100% 基于组件
支持手机应用
ZK 简介内容提要
✧ZK 是什么
✧WEB应用的挑战
✧Direct AJAX 框架
✧进入ZK 的世界
✧用ZK 编程
✧ZK 相关产品以及资源
ZK 是什么
✧ZK 是台湾奇普科技开发的并贡献给开源社区的开源RIA框架;
✧ZK 被誉为“台湾软体之光”,并获得了2008 社区最佳选择奖;
✧ZK 是”Direct” RIA框架;
✧ZK 具有零JavaScript代码实现AJAX、100%基于组件、100%事件驱动等特点;
ZK 简介内容提要
✧ZK 是什么
✧WEB应用的挑战
✧Direct AJAX 框架
✧进入ZK 的世界
✧用ZK 编程
✧ZK 相关产品以及资源
✧传统WEB应用框架将UI放到客户端,通过HTML的方式来实现,
同时又将业务逻辑和一些后台处理放到服务器端来实现。
客户端用户
界面
服务器端
业务
逻辑
internet
数据
库
✧传统WEB应用框架开发模式,使得开发人员不得不去关注很多与
业务无关的技术细节,还需要开发人员同时掌握多种技术才能很好的完成开发工作。
例如浏览器兼容、客户端与服务器的无状态通信、性能问题对开发人员来说都是一种挑战。
1、传统方式
✧
基于两点原因AJAX 被引入了WEB 应用中:
✓减少传统模式带来的问题;
✓
避免页面刷新、交互性,获得更丰富的用户界面
2、AJAX 优点
避免页面刷新
减少网络流量
良好的用户体验
✧
AJAX 的引入使得WEB 应用和桌面一样具有非常相似的UI 风格,给用户和开发者都带来了更好的体验。
3、AJAX 带来的挑战
✧发挥AJAX的优点需要开发人
员有具有丰富的WEB开发经
验。
AJAX是若干复杂技术的组
合体,不但要掌握这些单
项的技术还要能够把这些
技术整合应用起来;
AJAX需要开发人员大量地
使用JavaScript来渲染UI、
实现客户端与服务器的通
信、保存数据同步;
✧现有AJAX框架未能很好的实现对AJAX复杂度的封装。
ZK 简介内容提要
✧ZK 是什么
✧WEB应用的挑战
✧Direct AJAX 框架
✧进入ZK 的世界
✧用ZK 编程
✧ZK 相关产品以及资源
✧
需要能够完全封装AJAX 复杂性的开发框架,让开发人员把精力投入到业务逻辑的开发中,框架自动处理有关AJAX 技术的一切;
✧
以服务器端为中心的模式如下图,是能够实现理想开发模式的一种方式;
1、理想的WEB 开发模式
客户端
服务器端
业务逻辑
UI
internet
数据库
Direct AJAX开发框架是以服务器端为中心的开发模式的一种实现方式,这种方式业务逻辑以及UI都在服务器端开发,再由Direct AJAX框架跨越服务器与客户端来自动渲染UI、自动实现通信等。
2、Direct AJAX实现方式
客户端Direct
AJAX
服务器端
业务逻辑
UI
internet
数据
库
Direct
AJAX
✧
直接访问UI 属性
✧直接访问数据库
✧直接实现动态数据
✧组件数据绑定
✧直接Web Services 访问
✧拖拽操作
✧书签
以上的特性使开发基于WEB 和移动设备的RIA 更加简单、更加友好。
Direct AJAX 框架
3、Direct AJAX 框架的特点
ZK 简介内容提要
✧ZK 是什么
✧WEB应用的挑战
✧Direct AJAX 框架
✧进入ZK 的世界
✧用ZK 编程
✧ZK 相关产品以及资源
1、ZK--Direct AJAX框架
✧ZK是一个Direct AJAX框架的实现,一种更简单,更好的AJAX开发方式,实现了对AJAX技术复杂性的封装。
✧ZK提供多种供选择的开发语言,其中包括ZUML(ZK User interface Markup Language)一种功能强大但简单易用的标记语言。
✧ZK用黑盒方式实现了对AJAX的封装
●开发者完全不用考虑AJAX的一切
●ZK自动处理数据同步、事件管道、异步事件等复杂技术细节
2、ZK特性100%基于组件
组件(Components)
●所有UI对象例如窗体、按钮、标签、表格等都是ZK的组件;
●组件用来预先定义UI外观和交互行为;
●每个组件都会被指定一个ID,在应用的其他地方都可以根据ID来引
用这个组件;
●对开发者来说组件就是简单的POJO,可以通过JAVA API来进行控制;
●一些组件可以容纳和限制其他组件;
●组件可以有一些属性来控制它的行为和外观;
●组件可以有一些事件,用来触发事件处理者处理用户与组件的交互
●组件开发者可以来开发组件,而应用开发者只用使用组件,而不用
关心它的实现细节;
ATTRIBUTES
COMPONENTS EVENTS
2、ZK特性100%基于事件驱动
✧ZK应用类似于Swing应用,通过触发事件处理过程来维护视图;
✧ZK采用和Swing类似的事件驱动机制,是理想的MVC模式的实现;
✧ZK的事件管理系统专门针对WEB环境进行了优化
3、ZK对服务器端为中心模式的扩展
✧ZK支持基于Comet的服务器端推送,ZK会自动根据应用环境来选择Comet的实现方式;
✧有些UI动作更适合在客户端通过JavaScript来执行,ZK定义了CSA(Client Side Actions)机制来实现直接在客户端使用JavaScript 代码,透过CSA可以直接监听客户端事件和执行客户端JavaScript代码;
ZK 简介内容提要
✧ZK 是什么
✧WEB应用的挑战
✧Direct AJAX 框架
✧进入ZK 的世界
✧用ZK 编程
✧ZK 相关产品以及资源
✧
ZK 类似开发桌面应用的GUI 框架提供众多的UI 组件,而ZK Live Demo 应用较完整对这些UI 组件的使用进行了较为完整的演示,还能在线查看和修改代码运行;✧ZK Live Demo 是ZK 初学者不可或缺的平台,既可以了解ZK 组件,也可以用来测试代码;
用ZK 进行编程
1、ZK Live Demo
应用
2、创建ZK应用
✧ZK支持多种方式来创建应用,最为直接地是使用ZUML 和Richlets;
✧ZUML 是一种XML,一般包含了UI组件、EL、Zscript等多种elements,这和JSP很类似;
✧Richlets 使用java程序的方式来构建ZK程序,类似Applet,但是Richlet是运行在服务器端的,客户端通过URL来访问Richlets,ZK框架会根据richlets生成客户端的HTML、CSS和JavaScript代码;
2、ZUML页面的开发
下面是ZUML页面结构关系。
☐UI组件:<button>,<window>,<grid>,<list>等标签;
☐EL表达式:类似于JSP中的EL的表达式;
☐Zscript脚本:放在<zscript>标记里的脚本代码,具有如下特点:
ZUML页面在后台渲染的时候会执行<zscript>代码;
Zscript代码常用来进行一些初始化操作以及定义全局变量和方法;
Zscript可以采用多种语言来编写,支持的语言有Java、JPython、JRuby、JavaScript、Groovy;
Zscript也可以写在独立的zs文件中,然后通过<script>标记中的src属性来引用;
☐标记常用的属性有:forEach,forEachBegin,if,use,unless
3、ZUML示例代码片段
页面的开发
2、Richlet
✧ZK还提供基于JAVA代码的开发方式
✧ZK Richlet接口,通过Richlet可以采用编程方式来创建所
有UI组件,定义事件处理过程,渲染客户端内容
2、Richlet代码示例
ZK 简介内容提要
✧ZK 是什么
✧WEB应用的挑战
✧Direct AJAX 框架
✧进入ZK 的世界
✧用ZK 编程
✧ZK 相关产品以及资源
ZK Framework Application Component Development Tool Enterprise Integration
Community Collaboration ✧
Application Component:包含一些可以供应直接使用的组件,例如ZK Speadsheet 、ZK Timeline ✧
Development Tool:ZK 提供基于Eclipse 的插件ZK Studio 可以可视化的开发ZUML 文件;✧
Enterprise Integration :ZK 提供了JSP 标记库和JSF 组件可以方便的与已有的Java EE 应用实现集成;✧Community Collaboration:ZK 社区一直比较活跃,提供了不少组件例如ZK FCKeditor 等
✧ZK开发手册
/doc/devguide/
✧ZK 有关各类技巧的讨论
/doc/smalltalks/
✧ZK Live dome
/doc/zkdemo/
✧ZK 中文网站
/
THANKS 李源
2009年1月18日。