Você está na página 1de 32

ZK

RIA com ZK Framework

O que ZK?

ZK um framework AJAX orientado a eventos, baseado em componentes, open-source para desenvolvimento de aplicaes WEB escrito em Java que permite a criao de interfaces ricas(RIA) com o usurio para aplicaes web sem Javascript e poucos conhecimento de programao. ZK possui a denominada abordagem server-centric na qual a sincronizao de contedo de componentes e o pipelining de evento entre clientes e servidores so feitas automaticamente pelo motor e os cdigos de canalizao AJAX so completamente transparentes para os desenvolvedores de aplicativos web.

Server Centric vs Client centric


Server-Centric Client-Centric

Pontos Fortes

Open Source: Zk o principal framework open source Ajax + Mobile. A comunidade de desenvolvedores ZK extremamente ativa com mais de 20 tradues, mais de 100 artigos/blogs e mais de 100.000 linhas de cdigo, mais de 1.300.000 downloads de mais de 190 paises. Experincia Rica de Usurio: Mais de 200 componentes prontos. Vrios componentes de terceiros: JFreeChart. JasperReports, Google Maps, FCKeditor, Timeline, ExtJS, Dojo e mais.
Baseado em padres: ZK um soluo baseada em padres

Extensibilidade e customizao: ZK totalmente personalizvel e extensvel com uma arquitetura modular e plug-and-play Acesso Mvel: ZK estende o alcance de sua aplicao para os dispositivos mveis. ZK suporta Java Mobile, Android e vrios navegadores mveis
Segurana: ZK concebido desde sua criao para ser seguro.

Simplificando as coisas

Componentes ZK

Site com exemplo dos componentes:

http://www.zkoss.org/zkdemo/userguide/

Configurao do ambiente

JDK:

http://java.sun.com/javase/downloads/widget/jdk6.jsp http://www.eclipse.org/downloads/packages/eclipse-ide-java-eedevelopers/galileosr2

Eclipse Galileo para Java EE:

Tomcat 6:

http://tomcat.apache.org/download-60.cgi
http://www.zkoss.org/download/zkstudio.dsp http://www.zkoss.org/download/zk.dsp

ZK Studio(Plugin para o Eclipse):

ZK 5.0.X:

Instalado o plugin do ZK no Eclipse

Em Window Help -> Install New software


Add... Name: Zk Studio Location: http://www.zkoss.org/download/zkstudio.dsp Selecione o plugin e mande instalar

Depois de instalar, baixe a verso http://www.zkoss.org/download/zk.dsp


Add File

mais

atual

do

ZK:

Depois de baixado, em Window -> Preferences. ZK -> ZK Packages


Selecione o File Import, o local do arquivo do ZK

Depois disso selecione esse pacote que voce instalou, apply e ok Pronto!

Primeiros passos

Criao de um Projeto com ZK


Configurao do servidor

Iniciando a aplicao
Primeiro exemplo Projeto: Primeiros passos no site de comp2

Criao de uma view com um controlador. Demonstrao do uso de MVC com o ZK.

ZUML

O que ?

O ZK User Interface Markup Language (ZUML) baseada em XML


Arquivos ZUML possuem extenso .zul

Caractersticas

Cada elemento ZK instrui ao ZK Loader qual componente criar


Uma propriedade ZK descreve um valor inicial a ser atribudo ao componente criado Uma instruo de processamento ZK descreve como processar a pgina inteira, como o ttulo da pgina. XML Implicit Objects

Expresion Language zscript ZK Processing Instruction ZK Attributes ZK Elements

XML

O ZUML baseado em XML:

http://docs.zkoss.org/wiki/ZUML_XML

Implicit Objects

Objetos implcitos so muito parecidos com variveis globais tratadas pelo sistema. Voc pode us-lo para obter informaes do sistema e do cliente. Alm disso, uma maneira de passar informaes entre pginas. So realmente teis para o desenvolvimento de uma aplicao web.
http://docs.zkoss.org/wiki/ZUML_Implicit_Objects

ZScript

O zscript permitem escrever cdigo Java dentro ZUML, para prototipagem rpida. Possui suporte a vrios tipos de linguagens alm de Java

http://docs.zkoss.org/wiki/Zscript

Expression Language (EL)

Expression Language uma linguagem de scripting. Atravs dela, o pode-se escrever cdigo em ZUML para acessar componentes Java facilmente. Alm disso, o desenvolvedor pode acessar componentes ZUML atravs de uma expresso clara e simples. EL pode acessar objetos implcitos tambm.

http://docs.zkoss.org/wiki/ZUML_Expression_Language_(EL)

Outros...

ZK Processing Instruction

http://docs.zkoss.org/wiki/ZUML_ZK_Processing_Instructions http://docs.zkoss.org/wiki/ZUML_ZK_Attributes http://docs.zkoss.org/wiki/ZUML_ZK_Elements

ZK Attributes

ZK Elements

Ciclo de Vida

O ciclo de vida de carregamento de uma pgina

A fase inicial da Page


A fase de criao da Page

A fase de processamento de eventos


A fase de renderizao

Gerando uma pagina HTML

O ciclo de vida de atualizao de uma pgina

A fase de processamento de solicitao


A fase de processamento de eventos

A fase de renderezio

ZK fazendo Ajax

Componente UI

Componente

Parte Visual

Parte Java

Desktop, Page e Componentes

Um desktop uma janela do navegador. uma coleo de pginas para atender a solicitao de uma mesma URL Uma pgina uma coleo de componentes, que so exibidos em uma determinada parcela do seu navegador. Um componente um objeto de interface do usurio, por exemplo: janela, boto ...

ID Space
<?page id="P"?> <zk> <window id="A"> <hbox id="B"> <button id="D" /> </hbox> <window id="C"> <button id="E" /> </window> </window> <hbox id="F"> <button id="G" /> </hbox> </zk>

JPA

Integrao com JPA

Uso do arquivo META-INF\persistence.xml no source


Configurao do arquivo zk.xml:
<preference>
<name>JpaUtil.PersistenceUnitName</name>

<value>comp2web_persistence_unit</value>
</preference>

<listener>
<description>JPA "OpenEntityManagerInView" Listener</description>

<listener-class>org.zkoss.zkplus.jpa.OpenEntityManagerInViewListener</listenerclass> </listener>

Uso da classe: org.zkoss.zkplus.jpa.JpaUtil

Data binding

Conceito Bsico

Data binding um mecanismo que automatiza o cdigo de cpia de dados entre os componentes de interface e fonte de dados. Os desenvolvedores s tem que informar ao gerenciador de data binding sobre as associaes entre os componentes de interface e a fonte de dados. Em seguida, o gerenciador de data binding ir fazer o trabalho de carregar(carregar dados da fonte de dados para componentes de interface do usurio) e salvar(guardar dados de componente de UI para a fonte de dados) automaticamente.
Projeto de exemplo: DataBinding

Referncias:

Guia do Desenvolvedor:

http://docs.zkoss.org/wiki/Developer's_Guide http://books.zkoss.org/wiki/ZK_Component_Reference http://www.zkoss.org/javadoc/latest/zk/

Referncias de componentes(Verso 5.0.X):

ZK Java API:

Dvidas?

FIM

Você também pode gostar