What's ZK

From Documentation

Stop.png This documentation is for an older version of ZK. For the latest one, please click here.


Welcome to ZK, the simplest way to make Rich Web Applications. This chapter describes what ZK is and is not. You may skip this chapter if you prefer to familiarize yourself with the feature and functionality of ZK right away.

ZK: What It Is

ZK is an event-driven, component-based framework to enable rich user interfaces for Web applications.

Events triggered by an end user, by an application, and by server push are consolidated and they can be handled the same way. All components are simply POJOs. The developers can instantiate and manipulate them directly and straightforward. Notifications of events and synchronization of component status are done automatically.

Ajax communication and browser dependency are totally transparent to the developers.

In additions to pure Java, ZK allows the developers to design UI in a markup language called ZUML (ZK User Interface Markup Language), which is an enhanced version derived from XUL. ZUML supports EL expressions, declarative control, and many scripting languages, including Java, Groovy, Ruby, JavaScript, and more.

While the code of a ZK application, for best productivity and security, runs at the server, ZK's server+client fusion architecture allows developers to optimize the responsiveness and leverage the client power by distributing some application code to the client.

ZK: What It Is Not

Not assumption of Back-end

ZK assumes nothing about back-end services, persistence or inter-sserver communication. ZK is designed to be as thin as possible, while providing MVC and the seamless integration. All of your favorite middleware technologies such as: JDBC, Hibernate, Spring, JSP, Java Mail, EJB or JMS work as they used to.

No tunnel, RPC, RMI needed

ZK doesn't provide a tunnel, RPC, RMI or other API for developers to communicate between clients and servers. This is because all code runs at the server within the same JVM.
If using client-side programming, developers could use jQuery or ZK AU requests to communicate with the server directly.

No obligate design pattern

ZK doesn't enforce developers to use MVC or other design patterns. Whether to use them is the developer's choice. Although ZK does provides good support for MVC pattern.

Not limited to XUL

ZK is not a framework aiming to bring XUL to Web applications. It is aimed to bring the desktop programming model to Web applications. Currently, it supports XUL and XHTML, in future it might support XAML, XQuery and others.

Not limited to Ajax

ZK embeds AJAX in the current implementation but it doesn't end in where AJAX does. With ZK API for Mobile devices, your applications could reach any devices that support J2ME such as: PDA, mobiles and game consoles. Moreover, you don't need to modify your application at all[1].

Notes

  1. For devices with small screen, you usually have to adjust the presentation pages.

Quiz

  1. Where does ZK execute java code?
  2. ZK has a XML based GUI, what is its name?
  3. What script code does ZK support now?
  4. Where does ZK execute embedded script code? Server or client?
  5. Does ZK need tunnel or RMI? Why?

Refernce



Last Update : 2010/09/03

Copyright © Potix Corporation. This article is licensed under GNU Free Documentation License.