Book Review: ZK Developer's Guide
The ZK framework, created by Tom Yeh, started out life as a project on Sourceforge, where it quickly became a popular open-source project (nominated for the 2006 Sourceforge.net Community Choice Award). It has since moved to its own site (but continues to distribute files through Sourceforge), where it vies for share with other AJAX frameworks in the RIA market. The project is officially sponsored by the Potix Corporation, which provides consulting services for ZK. It is distributed under both GNU and commercial licenses.
- Scripting is handled using Java and EL expressions.
Like many of Packt's books, the format is focused on being lightweight and easy to read. There are 7 chapters and 159 pages, but the pages are small and have plenty of whitespace (presumably for adding notes). Add to that an abundance of illustrations and screenshots, and you get the idea: it can easily be consumed in a day or two.
The emphasis of the book is on learning the framwork, not really serving as a reference (the authors refer you to the online documentation for that), so the book generally assumes the form of a "walk-through" of the framework with an emphasis on the "Online Media Library" example application (chapters 2-4). A general breakdown of the book is as follows:
- Chapter 1, Getting Started With ZK, is an introduction to the framework with a definition of terms, description of underlying technologies, the obligatory "Hello World" in ZK, as well as an in-depth treatment of how the framework functions (events, phases, component creation).
- Chapter 2, Online Media Library, is a quick overview of the example application, how to set up the project in Eclipse (as a Maven project), and develop the basic application pages using ZUML. It does not discuss ZK-Bench (the subject of Ch. 7) presumably to focus on the technology itself, rather than the tools.
- Chapter 3, Extending the Online Media Library, goes more into the full capability of the framework, turning the example application into a full MVC (Model-View-Controller)-based application and introducing "Live Data" (AJAX) in order to make the application more desktop-like.
- Chapter 4, Is It on the Desktop or the Web?, continues where Ch. 3 left off, adding Drag-and-Drop capability to the application, embedding the rich text editor FCKEditor into ZK, and covering internationalization.
- Chapter 5, Integration with Other Frameworks, covers integrating the ZK framework with other popular frameworks and technologies, including Spring, Hibernate, Jasper Reports, mobile phones (ZK mobile), and even JSF (ZK's JSF components).
- Chapter 6, Creating Custom Components, shows you how to create custom ZK components for your application.
- Chapter 7, Development Tools for the ZK Framework, covers how to install and use the Eclipse-based ZK-Bench development environment.
ZK Developer's Guide strikes a good balance between approachability and depth, and as such is a good introduction to the framework for developers not wishing to be overwhelmed by details. It is a simple and quick read with an emphasis on practical development that will be especially useful to developers without any previous RIA or AJAX development experience. The provided Online Media Library example is simple enough for illustrative purposes with enough functionality to demonstrate the framework's functionality.
On the downside, the book lacks coverage of many of the built-in widgets that come with the ZK framework (audio controls, slider, progress meter, charts, etc.); granted, its stated intention is not to serve as a reference, but it seems a strange omission for a book about an AJAX framework. Much of the discussion around integrating with other frameworks in Ch. 5 also seems a bit thin (outside of Spring).
ZK Developer's Guide is a good book for those wishing to get up and running with the ZK framework quickly. Though it does not include much detail on the framework's built-in widgets, this can easily be supplemented by ZK's own online documentation.