ZK (framework)

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by SmackBot (talk | contribs) at 04:41, 4 August 2008 (Date the maintenance tags or general fixes). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

ZK
Developer(s)Potix
Stable release
3.0.6 / June 24, 2008 (2008-06-24)
Repository
Operating systemCross-platform (JVM)
TypeAjax Web Framework
License GNU General Public License / Commercial
Websitewww.zkoss.org

ZK is an open-source Ajax Web application framework, written in Java, that enables creation of rich graphical user interfaces for Web applications with no JavaScript and little programming knowledge.

The core of ZK consists of an Ajax-based event-driven mechanism, over 90 XUL and 80 XHTML-based components, and a markup language for design user interfaces. Programmers design their application pages in feature-rich XUL/XHTML components, and manipulate them upon events triggered by end user's activity. It is similar to the programming model found in desktop GUI-based applications.

ZK takes the so called server-centric approach that the content synchronization of components and the event pipelining between clients and servers are automatically done by the engine and Ajax plumbing codes are completely transparent to web application developers. Therefore, the end users get the similar engaged interactivity and responsiveness as a desktop application, while programmers' development retains a similar simplicity to that of desktop applications.

In additions to component-based programming in a manner similar to Swing, ZK supports a markup language for rich user interface definition called ZUML.

  • ZUML is designed for non-programmer developers to design user interfaces efficiently.
  • ZUML allows developer to meld different markup languages, such as Mozilla XUL language and XHTML, seamlessly into the same page.
  • ZUML allows developers to embed script in pure Java language (interpreted by BeanShell) and use EL expressions to manipulate the components and access data.

Features

  • Declarative high level specification of rich (rather than plain HTML) user interfaces.
  • Embedding scripting support with Java. This is important for applications that benefit from having a unified programming language for both server and web client code.
  • High level Ajax support.
  • Event-driven component-based model (similar to desktop programming models)
  • Support for creating user interfaces using different patterns. A MVC programming approach can be adopted with all events forwarded to a central controller class. Alternatively event handlers can be defined within the page. The MVC page approach is analogous to Swing programming and the in-page approach is analogous to DHTML programming on the server.
  • Support for integrating with existing web frameworks via a JSP custom tag library, JSF support and a Servlet Filter. Has support of Spring and Hibernate.
  • Extensible via extensions that can create new custom UI controls.
  • Databinding capability via in-page annotations that transparently bind screen controls to the fields of POJOs on the server.

Differences to XUL

  • ZK is a server side framework which emits HTML and thus does not depend on client side presence of Gecko making it portable to non-Mozilla browsers.
  • ZK processes logic on the server. This increases choice in languages and libraries that can be used to create such logic. But it also increases the server load since client processing power is not utilized.
  • While ZK and XUL have an overlapping subset of components, they have their own unique component sets.
  • Look and Feel differences.

System Requirements

  • JRE version 1.4 or later
  • A Web server supporting Servlet 2.3 or later

Prerequisites of Programming Skills

What Are Required

  • Basic knowledge of Java
  • Basic knowledge of HTML and XUL

What Are Optional

  • Object Oriented Programming
  • Servlet Programming
  • Ajax
  • JavaScript (at the client side)
  • Knowledge of a scripting language to write the glue logic (running at the server)

ZUML

ZUML (ZK User Interface Markup Language) is a markup language for rich user interfaces definition.

  • ZUML is designed for non-programmer developers to design user interfaces efficiently.
  • ZUML allows developer to melt different markup languages, such as Mozilla XUL language and XHTML, seamlessly into the same page.
  • ZUML allows developers to embed script in pure Java language (interpreted by BeanShell) and use EL expressions to manipulate the components and access data.
  • ZUML is supported by ZK.

External links