Technology Guidelines
MVC vs. Zscript
When to use MVC
MVC (Model-View-Control) is a design pattern that separates the model, view and controller clearly. It is easy to collaborate, develop and maintain. In addition, the performance is great. MVC is strongly suggested for development, especially for production systems.
When to use zscript
Zscript allows you to embed Java code in ZUML pages. It speeds up the design cycle, so it is suggested for prototyping, POC and testing. It is also good for exploiting ZK features and reporting bugs to ZK. However, Like any interpreter, the performance is not good, and tends to be error prone, so it is not suggested to use in production systems.
MVC Extractor
ZK Studio provides a tool called MVC Extractor that can convert zscript to MVC automatically. It simplifies to transfer the code from prototyping to production.
Documentation links
MVC:
- ZK Developer's Reference: MVC
- ZK Developer's Reference: Performance Tips
- Composer and GenericForwardComposer
Zscript:
Data Binding
When to use
Data Binding automates the data-copy plumbing code (CRUD) between UI components and the data source. It is strongly suggested whenever applicable, because it boosts the productivity a lot and the code is easy to read and maintain.
When not to use
Barely. However, it requires more knowledge to learn than EL expressions, so EL expressions is an alternative for people, such as UI designer, not familiar with ZK, especially in the UI design phase.
Documentation links
ZUML vs. Richlet vs. JSP
When to use ZUML
ZUML is XML-based approach to declare UI. It does not require programming knowledge, and works well with MVC, Data Binding and others. It is strongly suggested unless you have different preferences (such as pure Java and JSP).
When to use Richlet
A richlet is a small Java program that composes a user interface in Java for serving user's request. You could use it if you prefer to compose UI in pure Java (like Swing).
When to use JSP
If you'd like to use ZK in legacy JSP pages, you could use one of following approaches:
- Use
<jsp:include>
to include a ZUL page. - Use ZK JSP Tags in a JSP page directly.
Notice that ZUML support the use of HTML tags well (without JSP). For more information, please refer to ZK Developer's Reference: HTML Tags.
Documentation links
ZUML:
Richlet:
JSP:
Bookmarks vs. Multiple Pages
A traditional page-based Web framework forces developers split an applications into pages. On the other hand, Ajax (ZK) allows developers to group a set of functionality into a single desktop-like page that enables a more friendly user experiences.
Grouping is better to base on the functionality, unless it is a small application. For example, it might not be a good idea to group administration with, say, data entry. Here are some guidelines:
- If a set of functionality is a logical unit to use and/or to develop, you might group it as a single page.
- If SEO (i.e., able to be indexed by search engine) is important, it is better to split into multiple pages (and turn on the crawlable option).
Whether UI shares the same template (such as header and footer) does not matter, since it is easy to make multiple pages to appear similarly (by use inclusion, templating and composite).
When to use bookmarks (in single page)
After grouping a set of functionality into a single page, you could still allow users to use BACK and FORWARD to switch among the states of the single page and even bookmark on a particular state, as if there are multiple pages. It can be done by use of so-called Browser History Management (aka., bookmarks). You might consider it is a technique to simulate multiple pages (for a single page with multiple states).
When to use multiple pages
If a set of functionality is logically independent of another, you could make them as separated pages. To jump from one page to another, you could use the so-called send-redirect technique.
Documentation links
Bookmarks:
- ZK Developer's Reference: Browser History Management
- ZK Developer's Reference: Browser Information and Control
Multiple Pages:
- ZK Developer's Reference: Forward and Redirect
- ZK Developer's Reference: Include, Templating and Composite for consistent UI across multiple pages.
Native vs. HTML Components
When to use native
When to use HTML
Documentation links
Event Processing Thread
When to use
When not to use
Documentation links
Version History
Version | Date | Content |
---|---|---|