Vincent Thinking

All about Vincent's work and life

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  34 随笔 :: 0 文章 :: 183 评论 :: 0 Trackbacks
ZK 一个开源的ajax web框架,基于事件驱动的组件,通过标记语言来设计组件来简化开发人员的工作。显著的一个特点是使用类似XUL的标记语言来定义组件。

其实我对这种类似桌面的开发方式来开发web程序一点都不感冒,因为封装的东西太多,势必影响扩展性。而且对应的社区也很少,很多因素影响。

一个企业应用对于框架,技术并不是最重要的,需求和人员的素质等等因素也是很制约的。 很多开源的东西,在我看来只是 “看起来很美!” 回过来说zk,能以这种方式来开发也许能给我们很多启发。
 
有兴趣的可以去看看:
zk http://zk1.sourceforge.net/
posted on 2006-03-14 21:40 Vincent Thinking 阅读(4084) 评论(2)  编辑  收藏 所属分类: JAVA

评论

# re: ZK Ajax but no JavaScript 2006-04-19 01:31 Tom
Extensibility and ease-to-use are two major goals when I designed ZK.

Ease-to-use is the surface to attract spotlight and new users, while extensibility is the bottom line to make a project bloom in the longer term.  回复  更多评论
  

# re: ZK Ajax but no JavaScript 2006-04-28 10:15 joken
传统的网络应用
为了简单而有效地交换文档资料, Web 技术, HTTP 和 HTML, 被组织成基于页面的无状态的通讯模式.在这种模式下, 一个页面是独立的并且是客户端和服务器端通讯中最小的单元。由于Web已经成为应用开发的缺省平台 。
Browser Server,
这种方式面临着一个真实的挑战: 无力表现今天应用程序复杂的界面。.例如, 给客户一报价单,你可能必须打开一个页面去搜索他的历史交易记录,打开另一个页面看最新的价格,还要一个页面看当前的库存。用户被强制离开当前的页面,在几个页面中不停地转换.这是很容易被搞糊涂的,最终客户可能会感到不愉快,降低了效率失去了生意 。
在基于页面模式的基础上开发一个现代的应用程序也是一个真实的挑战。在这种模式下,运行在服务器端的应用程序必须小心处理来自客户端请求的每一件事,呈现响应,页面间的导航处理, 和各种可能由用户导致的错误。 数十个框架,象: Struct, Tapestry and JSF, 都是简单地应用这种模式. 由于基于页面的模式和现代应用间的巨大裂痕,学习和使用这些框架从来都不是愉快的过程,更不用提简单或直觉了。
Ad-hoc AJAX Applications
经过十年的发展, Web 应用程序已经从静态HTML页面到动态HTM,到applets ,到Flash,最终到AJAX技术(异步的javaScript 和 XML)。

例如象 Google Maps 和 Suggest这样的例子, AJAX 带给Web应用程序新的生命,它提供了和桌面程序一样的交换互能力。不同于applets 或 Flash, AJAX是基于标准的浏览器和JavaScript,没有任何插件。 AJAX 是新一代的DHTML. 同 DHTML一样,它严重地依赖于JavaScript去监听用户触发的事件,同时动态地维护在浏览器中的一个页面的视图界面。此外,它更进一步地使服务器和客户端异步地通信,不再离开或重新展示整个页面。打破了基于页面模式的服务器和客户端间的较重的数据通讯量。经过恰当的设计,AJAX能过带给Web应用常见的桌面应用程序的Rich控件,使Web应用程序看上去更有活力,并且所有的内容都能被程序动态地更新。
倘若用户需求更好的交互性时,AJAX会给已经高昂的Web应用程序的开发增加了更多复杂性和技巧性的先决条件。开发者必须维护在浏览器中的DOM和与服务器的不协调的通讯,甚至javaScript中的错误。为了更好的交互性,开发者必须复制部分数据和业务逻辑到浏览器中,增加了维护的花费,增大了在server和client间的数据同步的难度。
AJAX应用不同于传统应用之处在于如何处理请求。开发者还必须弥合被基于页面无状态的模式引起的裂痕。

ZK: What It Is
ZK是事件驱动的,基于部件的使Web用户界面成为富客户端的框架。ZK包含了一个基于AJAX的事件驱动的引擎,一个XUL和XHTML的富客户端界面部件集,和一种叫做ZUML的标记语言(ZK 用户接口标记语言)。
用ZK,你能用富特性的XUL和XHTML部件表现你的应用程序,并且在被用户动作触发的事件上操作它们,就想你做了多年的桌面应用程序一样。不同于其他多数的框架,AJAX是在ZK中是幕后的技术。部件内容的同步和排序的事件是被ZK引擎自动地处理的。
你的用户能够得到和桌面应用一样的响应和交互性,并且你的开发过程会和桌面应用程序一样的简单。
除了一个简单的模式和富客户端部件,ZK还支持一种标记性语言,叫做ZUML。ZUML象XHTML让开发者去设计界面而不需要编程序。用XML命名空间,ZUML无缝地集成了不同的标签集在同一个页面。当前,ZUML支持两种标签集,XUL和XHTML。
为了快速的原型开发和自定义开发,ZUML允许开发者嵌入JAVA和EL表达式。开发者完全能选择不嵌入java代码而宁愿遵守严格的规定。不同于内嵌于HTML中的JavaScript,ZK在SERVER端执行所有的内嵌代码。
从应用程序开发者的角度看,我们说的所有事情都运行在server端是值得注意的。对于部件开发者,他们必须在交互性和简单性间平衡,来决定什么事情必须在浏览器中执行,什么必须在服务器中执行。

ZK: What It Is Not

ZK是与持久层或内部业务层无关的。ZK被设计为尽可能瘦的。它的目的只是表现层。它不要求或建议任何背后的技术。所有你最喜欢的中间件都可以和过去一样使用,象JDBC,Hibernate,Java Mail,EJB or JMS.
ZK不为开发者提供象RMI或其他的在Client和server间的通信的API,因为所有的程序都是运行在server端的同一个JVM中。
ZK不强制开发者用MVC或其他的设计模式。是否使用由开发者自己选择。
ZK的目标不是一个要携带XUL到WEB应用的框架。它的目标是将桌面编程序方式带入WEB程序开发中。当前,它支持XUL和XHTML。在未来,它可能支持XAML,XQuery和其它的。
ZK在当前的实现中内嵌了AJAX。它没有终止于AJAX。将来,用为移动设备开发的ZK,你的应用程序能够用在任何支持J2ME的设备,象PDA,手机,和游戏盒等。而且,你不需要修改你的程序。

ZK:局限性
ZK 不适合主要运行在客户端的应用,象3D游戏等。
除非你写一个特定的部件,ZK 不适合那种增强在客户端的计算能力的应用。
  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航: