ZK (framework)

Last updated
Developer(s) zkoss.org
Stable release
9.6.0 / 10 August 2021;2 years ago (2021-08-10) [1]
Repository
Operating system Cross-platform (JVM)
Type Ajax Web Framework
License LGPL / ZOL / Commercial [2]
Website zkoss.org

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

Contents

The core of ZK consists of an Ajax-based event-driven mechanism, over 123 XUL and 83 XHTML-based components, [6] 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.

ZK does not use the standard web request-response mechanism and does not send form fields to the server by making a GET request with query parameters or a 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 Interface idempiere.PNG
webui interface of iDempiere under ZK6

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 [16] architecture is introduced. Developers are allowed to access the client-side widgets directly if they want to. ZK Client Engine is based on jQuery. [17] Technically you can use jQuery-compliant libraries and widgets.

Add-Ons

See also

Related Research Articles

XUL, which stands for XML User Interface Language, is a user interface markup language developed by Mozilla. XUL is an XML dialect for writing graphical user interfaces, enabling developers to write user interface elements in a manner similar to web pages.

<span class="mw-page-title-main">Adobe ColdFusion</span> Rapid Web app development platform

Adobe ColdFusion is a commercial rapid web-application development computing platform created by J. J. Allaire in 1995. ColdFusion was originally designed to make it easier to connect simple HTML pages to a database. By version 2 (1996) it had become a full platform that included an IDE in addition to a full scripting language.

Jython is an implementation of the Python programming language designed to run on the Java platform. It was known as JPython until 1999.

Jakarta Faces, formerly Jakarta Server Faces and JavaServer Faces (JSF) is a Java specification for building component-based user interfaces for web applications. It was formalized as a standard through the Java Community Process as part of the Java Platform, Enterprise Edition. It is an MVC web framework that simplifies the construction of user interfaces (UI) for server-based applications by using reusable UI components in a page.

XForms is an XML format used for collecting inputs from web forms. XForms was designed to be the next generation of HTML / XHTML forms, but is generic enough that it can also be used in a standalone manner or with presentation languages other than XHTML to describe a user interface and a set of common data manipulation tasks.

In software engineering, the terms frontend and backend refer to the separation of concerns between the presentation layer (frontend), and the data access layer (backend) of a piece of software, or the physical infrastructure or hardware. In the client–server model, the client is usually considered the frontend and the server is usually considered the backend, even when some presentation work is actually done on the server itself.

A user interface markup language is a markup language that renders and describes graphical user interfaces and controls. Many of these markup languages are dialects of XML and are dependent upon a pre-existing scripting language engine, usually a JavaScript engine, for rendering of controls and extra scriptability.

Echo is a web application framework created by the company NextApp. The latest iteration, Echo3, allows writing applications in either server-side Java or client-side JavaScript. Server-side applications do not require developer knowledge of HTML, HTTP, or JavaScript. Client-side JavaScript-based applications do not require a server, but can communicate with one via AJAX.

<span class="mw-page-title-main">Google Web Toolkit</span> Free Java library

Google Web Toolkit, or GWT Web Toolkit, is an open-source set of tools that allows web developers to create and maintain JavaScript front-end applications in Java. It is licensed under Apache License 2.0.

<span class="mw-page-title-main">YUI Library</span>

The Yahoo! User Interface Library (YUI) is a discontinued open-source JavaScript library for building richly interactive web applications using techniques such as Ajax, DHTML, and DOM scripting. YUI includes several cores CSS resources. It is available under a BSD License. Development on YUI began in 2005 and Yahoo! properties such as My Yahoo! and the Yahoo! front page began using YUI in the summer of that year. YUI was released for public use in February 2006. It was actively developed by a core team of Yahoo! engineers.

<span class="mw-page-title-main">RichFaces</span>

RichFaces was an open source Ajax-enabled component library for JavaServer Faces, hosted by JBoss. It allows easy integration of Ajax capabilities into enterprise application development. It reached its end-of-life in June 2016.

A single-page application (SPA) is a web application or website that interacts with the user by dynamically rewriting the current web page with new data from the web server, instead of the default method of a web browser loading entire new pages. The goal is faster transitions that make the website feel more like a native app.

Java view technologies and frameworks are web-based software libraries that provide the user interface, or "view-layer", of Java web applications. Such application frameworks are used for defining web pages and handling the HTTP requests (clicks) generated by those web pages. As a sub-category of web frameworks, view-layer frameworks often overlap to varying degrees with web frameworks that provide other functionality for Java web applications.

<span class="mw-page-title-main">Vaadin</span>

Vaadin is an open-source web application development platform for Java. Vaadin includes a set of Web Components, a Java web framework, and a set of tools that enable developers to implement modern web graphical user interfaces (GUI) using the Java programming language only, TypeScript only, or a combination of both.

Model–view–viewmodel (MVVM) is an architectural pattern in computer software that facilitates the separation of the development of a graphical user interface —be it via a markup language or GUI code—from the development of the business logic or back-end logic such that the view is not dependent upon any specific model platform.

ASP.NET Web Forms is a web application framework and one of several programming models supported by the Microsoft ASP.NET technology. Web Forms applications can be written in any programming language which supports the Common Language Runtime, such as C# or Visual Basic. The main building blocks of Web Forms pages are server controls, which are reusable components responsible for rendering HTML markup and responding to events. A technique called view state is used to persist the state of server controls between normally stateless HTTP requests.

References

  1. "ZK 9.6.0 release notes".
  2. ZK 3 and older versions are licensed under GPL.
  3. Chen, Henri (2008). ZK - Ajax without JavaScript. Apress. p. 125. ISBN   978-1-59059-901-3.
  4. Staeuble, Markus (2008). ZK Developer's Guide. Packt Publishing. p. 184. ISBN   978-1-84719-200-4.
  5. Van der Schyff, Andre (2009-03-31). "A look at MVC frameworks". ITWeb. Archived from the original on 2009-08-22. Retrieved 2009-04-14. MVC frameworks provide limited functionality when compared to ZK, Echo and other Java Web frameworks.
  6. "ZK Explorer". Zkoss.org. Retrieved 2010-08-25.
  7. Massey, Simon. "Implementing event-driven GUI patterns using the ZK Java AJAX framework". www.ibm.com/. IBM. Retrieved 5 July 2014.
  8. "ZK - ZK Developer's Reference/MVC - Documentation". Books.zkoss.org. 2014-01-27. Retrieved 2014-03-02.
  9. "ZK - Small Talks/2011/November/Hello ZK MVVM - Documentation". Books.zkoss.org. Retrieved 2014-03-02.
  10. "ZK - Small Talks/2011/November/MVVM in ZK 6 - Design your first MVVM page - Documentation". Books.zkoss.org. Retrieved 2014-03-02.
  11. "Lightweight Scripting for Java". BeanShell. Retrieved 2014-03-02.
  12. "Rhino | MDN". Mozilla.org. 2012-08-09. Retrieved 2014-03-02.
  13. "Home — JRuby.org". Jruby.codehaus.org. 2014-02-25. Archived from the original on August 30, 2009. Retrieved 2014-03-02.
  14. "Jython : Homepage". Jython.org. Archived from the original on 2009-05-16. Retrieved 2014-03-02.
  15. "Groovy - Home". Groovy.codehaus.org. 2014-02-18. Archived from the original on March 2, 2014. Retrieved 2014-03-02.
  16. Clare, Timothy (2010-02-09). "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.
  17. 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.

Official website