ZK Framework

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 rich graphical user interfaces for Web applications with no JavaScript and little programming knowledge.

The core of ZK consists of an Ajax-based event-driven mechanism, over 123 XUL and 83 XHTML-based components, and a markup language for design 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 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 as Mozilla XUL language and XHTML, seamlessly into the same page.
* ZUML allows developers to embed script in pure Java language (interpreted by BeanShell) 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 supporting Servlet 2.3 or later

Prerequisites 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 XUL

What 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 as Mozilla XUL language and XHTML, seamlessly into the same page.
* ZUML allows developers to embed script in pure Java language (interpreted by BeanShell) 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.

Игры ⚽ Нужно сделать НИР?

Look at other dictionaries:

  • Framework (office suite) — Framework, launched in 1984, was the first office suite to run on the PC 8086 with DOS operating system. An even earlier integrated suite, actually comparable to the original Macintosh of 1984 and Lisa of 1982 was produced by Epson, a complete… …   Wikipedia

  • Framework — Framework  термин, имеющий размытое значение. Обычно используется в программировании, обозначая «простую концептуальную структуру, используемую для решения сложной, проблемной задачи». Значение этого термина существенно зависит от контекста его… …   Википедия

  • Framework (Logiciel) — Framework est un logiciel intégré, lancé dans les années 1980 par la société américaine Ashton Tate, et développé à l origine sous MS DOS par Robert Carr[1]. Dés son lancement, Framework apparut comme un logiciel révolutionnaire à bien des égards …   Wikipédia en Français

  • Framework (disambiguation) — Framework may refer to:*Framework, a structure used as a guide to build something *Software framework, a reusable set of libraries or classes for a software system (or subsystem). *Application framework, a software framework used to implement the …   Wikipedia

  • Framework (Software) — Framework ist eine 1984 von Robert Carr für den IBM PC entwickelte Office Suite. Framework wurde später von der Firma Ashton Tate gekauft (bekannt als Hersteller von dBASE) und weiterentwickelt. Framework enthält u. a. eine Textverarbeitung, eine …   Deutsch Wikipedia

  • Framework Multimédia — Un framework multimedia est une bibliothèque logicielle de gestion globale du son et de l image. Lorsqu un programmeur désire créer une nouvelle application multimédia ou exploitant le multimédia (un lecteur de film, de musique, un jeu avec des… …   Wikipédia en Français

  • Framework multimedia — Framework multimédia Un framework multimedia est une bibliothèque logicielle de gestion globale du son et de l image. Lorsqu un programmeur désire créer une nouvelle application multimédia ou exploitant le multimédia (un lecteur de film, de… …   Wikipédia en Français

  • framework — UK US /ˈfreɪmwɜːk/ noun [C] ► a system of rules, ideas, or beliefs that is used to plan or decide something: a framework for sth »The future trade agenda can provide an important framework for restoring sustainable growth. within the framework of …   Financial and business terms

  • Framework para aplicaciones web — Saltar a navegación, búsqueda Un framework para aplicaciones web es una estructura de software diseñada para apoyar el desarrollo de sitios web dinámicos, aplicaciones web y servicios web. La estructura de software intenta aliviar el exceso de… …   Wikipedia Español

  • Framework convention — may mean: * United Nations Framework Convention on Climate Change * World Health Organization Framework Convention on Tobacco Control * Framework Convention for the Protection of National Minorities * Framework Convention Alliance …   Wikipedia

  • Framework de modelado Eclipse — Saltar a navegación, búsqueda Eclipse Modeling Framework (Framework de modelado Eclipse, EMF) es un framework de modelado y facilidad de generación de código para construir herramientas y otras aplicaciones basadas en un modelo de datos… …   Wikipedia Español

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”