ZK Framework

A highly productive open source Java framework for building amazing enterprise web and mobile applications.

Pattern Driven Development

MVC / MVVM

MVC / MVVM

The MVC pattern enforces the decoupling of View, Model, and Controller, making applications more flexible to change and easier to developer.

The View can be implemented using ZK User Interface Markup Language (ZUML) without any programming; meanwhile, ZK automatically wires the UI components and user events to members in the Controller class.

The MVVM pattern enforces further decoupling to simplify the application and to make it more flexible to change. With ZK MVVM, most glue logic, including CRUD and state synchronization, is done automatically, while the application focuses more on abstraction of View's states and behaviors rather than UI components.

Programming Free Data-binding

Programming Free Data-binding

ZK's programming free data-binding mechanism automates CRUD between UI components and the data source. Application developers only need to associate data objects with UI components using simple annotations in XML. Not a single line of Java code is required.

Whenever a view is loaded, the components will be initialized with values of their corresponding data objects. In the event that a data value is updated, the changes will reflect on the UI components. Similarly, data modified on the UI components would be updated to the associated data objects.

Composites and Macros

Composites and Macros

ZK's composite pattern offers developers a template based methodology to compose existing components as a new, reusable component.

The state and behavior of a composite component can be extended and encapsulated in a Java class to enhance its functionalities.



Templating

Templating

ZK's templating patterns allows a UI presentation to be dynamically composed with templates at runtime using simple annotations.

A UI presentation in ZK can be customized to satisfy its dependent context; may it be a specific look and feel for a selected group of users, or a set of functionalities enabled only for certain scenarios.

Event Queue

ZK's event queue pattern provides a simple API to render all types of events, such as user events, application events, or server push events as a generic event. Hence, all events processing could be generalized as a simple publish and subscription mechanism.

Furthermore, developers can plug in their own implementation to utilize existing message queues or web services.

Core Injection

ZK's pluggable architecture offers developers an abundant set of join points to fully customize the ZK core.

Developers can inject application specific code to customize the rendering of UI components, error handling, event processing, Ajax communication, and others.