- ZK Framework
Infobox Software
name = ZK
caption = Simple and Rich
latest release version = 3.5.1
latest release date = release date|2008|10|08
operating system =Cross-platform (JVM )
genre = Ajax Web Framework
license = GNU General Public License / Commercial
website = [http://www.zkoss.org www.zkoss.org]
developer = [http://www.potix.com Potix]ZK is an open-source Ajax
Web application framework , written in Java, that enables creation of richgraphical user interface s forWeb applications with no JavaScript and little programming knowledge.The core of ZK consists of an Ajax-based
event-driven mechanism, over 123XUL and 83XHTML -based components, and a markup language for design user interfaces. Programmers design their application pages in feature-richXUL /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 takes the so called server-centric approach that the content synchronization of components and the event pipelining 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.
In addition to component-based programming in a manner similar to Swing, ZK supports a markup language for rich user interface definition called
ZUML .* ZUML is designed for non-programmer developers to design user interfaces intuitively.
* ZUML allows developer to meld different markup languages, such asMozilla XUL language and XHTML, seamlessly into the same page.
* ZUML allows developers to embed script in pure Java language (interpreted byBeanShell ) and use EL expressions to manipulate the components and access data.Features
* Declarative high level specification of rich (rather than plain HTML) user interfaces.
* Embedding scripting support with Java. This is important for applications that benefit from having a unified programming language for both server and web client code.
* High level Ajax support.
* Event-driven component-based model (similar to desktop programming models)
* Support for creating user interfaces using different patterns. A MVC programming approach can be adopted with all events forwarded to a central controller class. Alternatively event handlers can be defined within the page. The MVC page approach is analogous to Swing programming and the in-page approach is analogous to DHTML programming on the server.
* Support for integrating with existing web frameworks via a JSP custom tag library, JSF support and a Servlet Filter. Has support of Spring and Hibernate.
* Extensible via extensions that can create new custom UI controls.
* Databinding capability via in-page annotations that transparently bind screen controls to the fields of POJOs on the server.Differences to XUL
* ZK is a server side framework which emits HTML and thus does not depend on client side presence of Gecko making it portable to any browser.
* ZK processes logic on the server in Java. This increases choice in the scripting engines and application libraries that can be used to create logic. Presentation effects can be delegated to the browser using the Client-side Actions feature to reduce server load. Running the application logic on the server in a single application container reduces the amount of cross browser and browser version testing when compared to extensively programming the DOM at the browser.
* While ZK and XUL have an overlapping subset of components ZK has their own unique component sets. The component library can be extended with custom components. Macro components can be defined that are composites of components.
* ZK provides serverside databinding annotations to declaratively bind UI components to serverside data.
* Look and Feel differences.System Requirements
*
JRE version 1.4 or later
* A Web server supportingServlet 2.3 or laterPrerequisites of Programming Skills
What Are Required
* Basic knowledge of Java or a Java scripting engine language such as Groovy, Rhino, JRuby (Java Ruby) or Jython (Java Python)
* Basic knowledge of HTML and XULWhat Are Optional
* Object Oriented Programming
* Servlet Programming
* Ajax
*JavaScript (on the client side)
* Knowledge of a scripting language to write the glue logic (running on the server)
**BeanShell (Java interpreter),JavaScript ,Groovy , Ruby, and Python currently supported.ZUML
ZUML (ZK User Interface Markup Language) is a markup language for rich user interfaces definition.
* ZUML is designed for non-programmer developers to design user interfaces efficiently.
* ZUML allows developer to melt different markup languages, such asMozilla XUL language and XHTML, seamlessly into the same page.
* ZUML allows developers to embed script in pure Java language (interpreted byBeanShell ) and use EL expressions to manipulate the components and access data.
* ZUML is supported by ZK.External links
* [http://www.zkoss.org ZK Home]
* [http://www.zkoss.org/demo ZK Live Demo]
* [http://blogs.pathf.com/agileajax/2006/06/an_interview_wi.html An Interview with ZK Creator Tom Yeh]
* [http://www.theserverside.com/tt/articles/article.tss?l=ZKandAgile Tutorial: ZK Rich Client Framework and Agile Development]
* [http://www-128.ibm.com/developerworks/blogs/page/gbowerman?entry=zk_ajax_made_easy Tutorial I from IBM developerWorks] [http://www-03.ibm.com/developerworks/blogs/page/gbowerman?entry=simple_ajax_to_do_list II] [http://www-03.ibm.com/developerworks/blogs/page/gbowerman?entry=uploading_and_downloading_images_to III] [http://www-03.ibm.com/developerworks/blogs/page/gbowerman?entry=a_zk_image_database_application IV] [http://www-03.ibm.com/developerworks/blogs/page/gbowerman?entry=tadpole_cam&ca=drs-bl V] [http://www-03.ibm.com/developerworks/blogs/page/gbowerman?entry=improve_your_brain_age_with VI]
* [http://dev2dev.bea.com/blog/dhrubo/archive/2007/08/a_quick_sip_of.html Tutorial from BEA dev2dev I] [http://dev2dev.bea.com.cn/techdoc/20061127901.html II] [http://dev2dev.bea.com.cn/techdoc/2007/04/java-soa-BEA-Workshop-ZK-image0470425.html III]
* [http://www.zkoss.org/smalltalks/ Small talks]
Wikimedia Foundation. 2010.