ZK (framework)

ZK
Developer(s) zkoss.org
Stable release
8.0.1 / 19 January 2016 (2016-01-19)
Operating system Cross-platform (JVM)
Type Ajax Web Framework
License LGPL / ZOL / Commercial[1]
Website zkoss.org

ZK is an open-source Ajax Web application framework, written in Java,[2][3][4] that enables creation of graphical user interfaces for Web applications with little required programming knowledge.

The core of ZK consists of an Ajax-based event-driven mechanism, over 123 XUL and 83 XHTML-based components,[5] and a mark-up language for designing 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 uses a server-centric approach in which the content synchronization of components and the event pipe-lining 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.

It's important to note that ZK does not use the standard web request <=> response mechanism and DOES NOT send form fields to the server using GET + query parameters or one POST request. Instead, AJAX requests are sent to the server to update the internal state of each screen widget. At the browser, ZK only downloads a JSON description of the web page and uses a client renderer to turn that into a UI. It's quite efficient and under closer inspection, does not download everything at once. A look at the traffic between client and the server reveals several requests going back and forth between client and browser until the page rendering eventually completes.

The optional client-side customization allows the developer to leverage the client-side resources with the so-called server+client fusion, for customization and to reduce the Ajax traffic.

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

Features

webui interface of iDempiere under ZK6

ZK 8.0

Released on October 6, 2015, ZK 8 aims to leverage the advancing client-side power with client-side command binding and template injection while still allowing the user to enjoy the equally important server-side integration and security.
Its main features include UI templating for easily applying a predesigned layout, clear view/logic separation and effortless integration with third-party JavaScript libraries.

Differences from XUL

System requirements

Prerequisites of programming skills

Required

Optional

ZUML

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

Client-side technologies

ZK is a server-centric framework. Technically you don't need to know about the implementation at the client side. It is how ZK Mobile running on Java Mobile VM is done.

Since ZK 5.0, the so-called Server+client Fusion[15] architecture is introduced. Developers are allowed to access the client-side widgets directly if they want to. ZK Client Engine is based on jQuery.[16] Technically you can use jQuery-compliant libraries and widgets.

ZK Add-Ons

ZK Charts
Provides a complete API which makes visualization of your data exceptionally easy. The intuitive API allows you to present your server-side data on the client as ZK Charts handles the client-server of data for you transparently.

ZK Pivottable
An Ajax data summarization component, which takes raw data from a flat table and organizes them by desired categories arranged on columns and rows, enabling developers to take advantage of a ready made component for demonstrating complex sets of data online.

ZK Spreadsheet
An online collaboration for multiple users that allows user to control or configure Web spreadsheet with pure Java and seamlessly integrate Java EE and other back-end services.

See also

References

  1. ZK 3 and older versions are licensed under GPL.
  2. Chen, Henri (2008). ZK - Ajax without JavaScript. Apress. p. 125. ISBN 978-1-59059-901-3.
  3. Staeuble, Markus (2008). ZK Developer's Guide. Packt Publishing. p. 184. ISBN 978-1-84719-200-4.
  4. Van der Schyff, Andre (2009-03-31). "A look at MVC frameworks". ITWeb. MVC frameworks provide limited functionality when compared to ZK, Echo and other Java Web frameworks.
  5. "ZK Explorer". Zkoss.org. Retrieved 2010-08-25.
  6. Massey, Simon. "Implementing event-driven GUI patterns using the ZK Java AJAX framework". http://www.ibm.com/. IBM. Retrieved 5 July 2014. External link in |website= (help)
  7. "ZK - ZK Developer's Reference/MVC - Documentation". Books.zkoss.org. 2014-01-27. Retrieved 2014-03-02.
  8. "ZK - Small Talks/2011/November/Hello ZK MVVM - Documentation". Books.zkoss.org. Retrieved 2014-03-02.
  9. "ZK - Small Talks/2011/November/MVVM in ZK 6 - Design your first MVVM page - Documentation". Books.zkoss.org. Retrieved 2014-03-02.
  10. "Lightweight Scripting for Java". BeanShell. Retrieved 2014-03-02.
  11. "Rhino | MDN". Mozilla.org. 2012-08-09. Retrieved 2014-03-02.
  12. "Home — JRuby.org". Jruby.codehaus.org. 2014-02-25. Archived from the original on August 30, 2009. Retrieved 2014-03-02.
  13. "Jython : Homepage". Jython.org. Retrieved 2014-03-02.
  14. "Groovy - Home". Groovy.codehaus.org. 2014-02-18. Archived from the original on March 2, 2014. Retrieved 2014-03-02.
  15. Clare, Timothy (02-09-2010). "Server+client Fusion: An Architectural Proposal". Dr. Dobb's. A good framework architecture is flexible empowering developers and architects to implement their applications in a smart and elegant manner. Check date values in: |date= (help)
  16. Mahajan, Sachin (2010-10-19). "Enhance Ajax development with a fusion of jQuery, ZK, and Java code". IBM developerWorks. The marriage between server-side Java code and jQuery can help you tackle the challenges in enterprise Ajax application development.
Wikibooks has a book on the topic of: ZK
This article is issued from Wikipedia - version of the 9/12/2016. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.