34
ZK Framework Autor: Thiago Baesso Procaci ZK - Utilizando Ajax sem Javascript

Zk Framework

Embed Size (px)

Citation preview

Page 1: Zk Framework

ZK Framework

Autor:

Thiago Baesso Procaci

ZK - Utilizando Ajax sem Javascript

Page 2: Zk Framework

ZK Framework

Roteiro:• Apresentar conceitos do Framework;

• Exemplificar o uso.

Page 3: Zk Framework

ZK Framework

Porque utilizar o ZK ?• Necessidade de aplicações com interfaces ricas;

• Interfaces ricas grandes esforços;

• Esforços com interfaces ricas possível desvio do foco do desenvolvimento (regras de negócio).

Propósito do ZK:

Tornar o desenvolvimento de interfaces web simples. Em outras palavras, facilitar a confecção de interfaces ricas.

Page 4: Zk Framework

ZK Framework

Evolução das páginas web Páginas HTML Estáticas

Páginas HTML Dinâmicas (DHTML)

Páginas com Flash, Applets

Páginas com uso de Ajax

Page 5: Zk Framework

ZK Framework

Um pouco sobre Ajax• Pode-se entender como a próxima geração do DHTML;

• Forte dependência de Javascript para capturar eventos e manipular a representação visual de uma página;

• Não depende de algum tipo de plugin para que a aplicação funcione (ao contrário de Flash e Applets);

• Maior interação (usuário x sistema).

Page 6: Zk Framework

ZK Framework

Com a maturação da tecnologia Ajax.. • Aparecimento de vários frameworks (como o ZK);

O ZK Framework..• Facilita a incorporação de Ajax na aplicações Java Web;

• Dispensa conhecimentos de Javascript;

• Possui uma linguagem de marcação (similar ao HTML) denomidade ZUML.

• Gera código Javascript, HTML através da ZUML

Page 7: Zk Framework

ZK Framework

ZK User Interface Markup Language - ZUML• Linguagem de marcação de mais alto nível;

• Define a interface através de componentes (ex. Grid, datebox, captcha);

• Interface amigável com todo HTML, Javascript e CSS gerados a partir da ZUML.

Page 8: Zk Framework

Possibilidade de configurar atributos (como

na decimalbox).

O input gerado assumirá valores nos moldes do

atributo format

Exemplo ZUML

Page 9: Zk Framework

ZK Framework

Funcionamento do ZK (Arquitetura)

O ZK possui 3 módulos responsáveis por incorporar Ajax a uma aplicação:

ZK loader;

ZK AU (asynchronous update) engine;

ZK client engine.

Ressaltando que o que ZK loader e o ZK AU engine rodam do lado do servidor e são compostos por Servlets Java.

O ZK cliente engine é composto por cógido Javascript (roda no lado do cliente).

Page 10: Zk Framework
Page 11: Zk Framework

1 : Sempre um cliente faz a requisição de uma página através da URL, o ZK loader interpreta a requisição, gera a página HTML correspondente (baseado no código ZUML referente à URL requisitada) e cria objetos no servidor que permitirão a manipulação da interface da página.

Page 12: Zk Framework

2: Em seguida, o ZK loader envia a página HTML gerada para o cliente juntamente com o ZK client engine. O ZK client engine irá residir no “lado do cliente” e será responsável por monitorar os

eventos disparados pelo browser.

Page 13: Zk Framework

3: Se qualquer evento for disparado no cliente, o ZK client engine irá enviá-lo (através de uma requisição Ajax) para o

ZK AU engine localizado no servidor.

Page 14: Zk Framework

4: O ZK AU engine recebe a requisição Ajax, atualiza os objetos que manipulam os componentes de interface e retorna uma resposta

para o cliente, relatando as modificações que página deverá sofrer.

Page 15: Zk Framework

5: Assim que o ZK client engine recebe a resposta, ele atualiza a representação visual da página

Page 16: Zk Framework

ZK Framework

Funcionamento do ZK (resumo)• ZK loader carrega página;

• ZK AU engine e ZK client engine tornam fácil a comunicação Ajax (objetos no servidor dispensam a programação Javascript);

• Qualquer componente definido em ZUML terá um objeto para a manipulação da visão no servidor.

Vantagem: O ZK prevê vários problemas de compatibilidade entre browsers.

Page 17: Zk Framework

ZK Framework

Injetando Ajax em uma aplicação com o ZK• Exemplo prático ressaltando conceitos apresentados.

Ambiente• Eclipse Ganymede;

• Tomcat 6.0.

Page 18: Zk Framework

ZK Framework

Novo projeto no eclipse

Page 19: Zk Framework

ZK Framework

Escolhendo o tipo de aplicação (Dynamic Web Project)

Page 20: Zk Framework

Nome do projeto: zkdemo

Servidor: Apache Tomcat

Page 21: Zk Framework

ZK Framework

Configurações Finais• Fazer download do ZK em http://www.zkoss.org/download/

e extrair os jars para a pasta WEB-INF/lib do projeto.

• Configurar o web.xml (vide user guide – copiar e colar).

Já podemos começar a desenvolver o nosso exemplo inicial e rever os conceitos apresentados de forma prática.

Page 22: Zk Framework

ZK Framework

Pacotes e classes do exemplo

hello.zul arquivo com o código ZUML da página.

HelloWindow.java classe java que irá manipular a página hello.zul

Obs.: A extensão .zul é a utilizada para os arquivos que contêm código ZUML.

Page 23: Zk Framework

HelloWindow.java

hello.zul

Page 24: Zk Framework

Atributo use aponta para HelloWindow

HelloWindow.java

hello.zul

Page 25: Zk Framework

Atributo use aponta para HelloWindow

Ação do botão

HelloWindow.java

hello.zul

Page 26: Zk Framework

Atributo use aponta para HelloWindow

Recupera o objeto que manipula a textbox

através do id

Ação do botão

Manipula valor da textbox

HelloWindow.java

hello.zul

Page 27: Zk Framework

ZK Framework

Aplicação Funcionando

Só acessar http://localhost:8080/zkdemo/hello.zul

Page 28: Zk Framework

ZK FrameworkEntendendo o Funcionando

Page 29: Zk Framework

ZK Framework

Dica para desenvolvedores• Utilizar o ZK Studio.

Plug-in do eclipse que facilita o desenvolvimento de aplicações que utilizam o ZK

Page 30: Zk Framework

ZK Framework

Configurando o ZK Studio

Vá no menu help e clique em Software Updates

Page 31: Zk Framework

Clique em Add Site

Configurando o ZK Studio

Page 32: Zk Framework

ZK Framework

Configurando o ZK Studio

Adicione em location:

http://studioupdate.zkoss.org/studio/update

Page 33: Zk Framework

Configurando o ZK Studio

Selecione a url do ZK Studio e clique em install

Page 34: Zk Framework

ZK Framework

Referências• http://www.zkoss.org/

• ZK – Ajax without Javascript Framework; Henry Chen, Robbie Cheng (2007)

• Revista Mundo Java - edição 36