Simply Java
ZK is renowned for its "Ajax without JavaScript" approach since 2005, enabling developers to build rich internet applications transparently without any knowledge of Ajax and JavaScript.
The client engine and update engine in ZK play the roles of pitcher and catcher, rendering Ajax communication transparent to developers. Events triggered by users are encapsulated and marshalled to event listeners running at the server.
User interface rendered on browsers are surrogated on the server as POJO components, alternation made on the POJO components are reflected to the client transparently.
With programs executed at the server, developers can leverage all the Java technologies, such as Java EE and Spring, while back-end data and services are readily available.
Server+client Fusion
ZK’s Server+client Fusion gives developers the freedom to leverage the best of both sides.
The server-centric solution to Ajax brings a productivity boost, robustness, and security to Web application development; while client side solutions endows Web applications with greater controllability and the ability to leverage client side resources.
ZK marries the benefits of both to bring forth a developer-centric approach where developers continue to build large scale enterprise applications with all the robustness of Java technologies, but also are offered the flexibility to work directly with ZK’s jQuery based widgets to further enhance user experience.
Object Oriented jQuery
ZK's client side implementation is based on the de facto standards, jQuery and JSON, leveraging the vast resources and enjoying the company of millions in the community.
In addition, ZK bestows client side programming with abilities such as inheritance and encapsulation, adopting the object oriented paradigm.
A load on demand mechanism resembling class loader is implemented to speed up the loading of JavaScript code at start up.
Declarative Programming
ZK User Interface Markup Language (ZUML) makes the design of rich user interfaces as simple as authoring HTML pages. ZUML is a variant of XUL inheriting all features available to XML, and separates the UI definition from the run-time logic.
ZUML also allows developers to automate CRUD between UI components and the data source with annotations, data binding and MVVM.
Pluggable Platform
ZK's architecture is based on units of modularization which are pluggable and replaceable, enabling developers to extend and customize.
Developers are allowed to inject application specific code throughout the course of program execution, including Ajax communication, event handling, component instantiation, ZUML parsing, among numerous other implications.
Enterprise Security
Applications are executed on the server-side in ZK by default; no business logic is ever exposed to the client.
In addition, ZK protects applications against XSS, DoS, and CSRF. ZK further strengthens authentication and authorization with third party security frameworks such as Spring Security which altogether offers protection from page level to Ajax events.
Transparent Server Push
By the introduction of event queue, ZK unifies the handling of server push and Ajax events to a simple publish and subscribe mechanism, rendering server push transparent to the developers.
ZK shields developers from the complexity of multi-threaded programming that comes with server push.
Scalability and Availability
ZK has full clustering support; all UI objects are readily serializable. UI components are designed to minimize memory footprint and maximize performance by optimizing components' state and behavior.
In addition, developers can improve availability with application specific failover management implementations.
Native Platform Support
ZK's compliance to W3C standards means that all devices bestowed with W3C compliant browsers are able to render ZK applications; moreover, ZK's architecture does not restrict browsers to assume the role of clients.
A ZK client engine could be, and has been, implemented on an assortment of mobile or thin-client devices to render native UI presentation. Android, Java Mobile and Sony's BD-Live are some of such devices.
ZK - Open Source Java Web Framework