Parte I – ReviewIntroduçãoZK é uma framework web ajax open source, que pemite o desenvolvimento de interfaces ricas para aplicações web com pouca programação e um custo de desenvolvimento reduzido, tal como as antigas aplicações desktop.
ZK foi o primeiro projecto ajax no SourceForge.net, acumulou 450.000 downloads e 800.000 visitantes, e foi referenciado por mais de 4.000 websites desde o lançamento da primeira versão em 2005.
Simplesmente Rico
Basicamente o ZK possui quase tudo feito de bandeja, ora vejamos a versão ZK 3.0.0-FL-2007-09-28:
* Componentes:
* 79 XUL e 83 HTML componentes prontos: Tabbox, grid, listbox, tree, menu, combobox, bandbox, datebox, chart, hbox, vbox, window, slider, paging, audio, image, timer, include, iframe, etc
* Drag-and-drop suportado por todos componentes
* Menu de Contexto e Tooltips customizaveis suportado por todos componentes
* Ordenação Customizada de listbox, grid etc
* Auto-preenchimento para combobox
* “Load on demand” sem escrever nenhuma linha de código, desde a versão 2.4.0
* “Live data” ou “Load on demand” para listbox
* Todos componentes são clonáveis e serializáveis
* Validação e formatação para componentes de entrada de dados, com suporte completo a uso de expressões regulares e $#,##0
* 100% Java API para os componentes Google Maps, FCKeditor, DOJO e Timeline
* Componente Tree com paginação
* Server push, chamado de reverse-ajax, permite o servidor enviar dados para clientes activos, ou seja, facilmente desenvolvemos um CHAT.
* Em adição componentes TreeModel, Timebox e Flash
* Modelo server centrico e baseado em eventos:
* Mais de 20 eventos suportados; onChange, onChanging, onScroll, onSelect, on Show, onZIndex, etc
* Todos eventos são processados no servidor
* Todos eventos estão sincronizados. Não possui problema “Racing Condition”
* Scripting usando expressões EL. Inclui mas não limitado a Java, Javascript, Ruby and Groovy. A escolha é sua :D.
* Mudanças no User-interface sem necessidade de restarting da aplicação
* Anotações que permite uma página acessar base de dados sem escrever código java
* Macro componentes
* Facilidade em encapsular componentes puramente clientes como componentes do ZK usando 100% Java API
* Dialogos Modais verdadeiramente server-side
* Internacionalização
* MVEL plug-in
Facilidade de utilização
Simplicidade é um dos valores de base do ZK. Outra das facilidades que se encontra nessa framework, é a disponibilidade com que a sua equipa de desenvolvedores está disposta a ajudar.
A criação de novos/customizados componentes é bastante simples.
A documentação é muito boa e bem detalhada.
Plataforma Independente
* ZK Mobile foi lançado e está na versão 0.8.6 com 10 MIL (Mobile Interactive Language) componentes já de bandeja: listbox, listitem, textbox, image, label, command, datebox, decimalbox, intbox, frame
* A ideia por trás do ZK Base está mantida no desenvolvimento do ZK Mobile, ou seja, todos as características acimas mantém-se
* ZK suporta os seguintes browsers: Internet Explorer 6+/7, Firefox 1+, Safari 2+, Mozilla 1+, Opera 9+ and Camino 1+.
* Corre em qualquer web server que suporta Servlet 2.3+ e JVM 1.4+
Mega Componentes, Colaboração da Comunidade e Integração com outras frameworks e bibliotecas Javascript
ZK é uma das framework com um mais componentes e diversificados. E em cada versão novos componentes têm vindo a serem lançados. Está em andamento o desenvolvimento de componentes de larga escala como folha de cálculo “spreadsheets” e forums. Alias, já está disponível para download o primeiro SIP de spreadsheet. Comunidade open source é tudo sobre colaboração. ZK insentiva a comunidade na criação de novos componentes e ideias. A comunidade participa activamente e é citada pela contribuição que faz.
Todo o trabalho complicado é feito pela equipe de ZK. Se quiser algum novo componente ou sugerir melhorias/integração pode submeter na lista de “Feature Requests”.
Google Maps, FCKeditor, DOJO e Timeline já estão integrados desde as versões mais antigas.
Integração com Spring, Hibernate, bem como com Seasar (http://www.seasar.org/en/index.html, é a framework open source de Dependency-Injection mais popular no Japão).
A integração com Jboss Seam, bem como com tags JSP já está pronta.
A integração com Yui-Ext (http://www.extjs.com/, uma das mais famosas bibliotecas javascript), simplesmente é uma das melhores novidades. É mesmo para ficar de boca aberta. E mais ainda, todos os componentes do Yui-Ext serão integrados com ZK.
O desenho de layouts é sempre complicado para desenvolvedores. Logo, Ext Layout de Yui-Ext foi integrado. Mas, como se sabe usando plug-in externos acabamos pagando um preço (performance), logo a equipe do ZK lançou o ZK Layout de modo a trazer simplicidade, flexibilidade e poder no desenho de layout, isso aumenta a performance pois reduziram do Ext Layout 500 KB para o ZK Layout 20KB. Até parece que pagamos os caras de ZK para trabalharem para nós .
Para os amantes de JSF (JavaServer Faces), estavam todos tristes, pois, até agora nada foi dito de JSF. Em voz alta, já está integrado ZK em forma de componentes.
Confira nas referências os links com os artigos de integração com as frameworks passo a passo.
Histórico de Lançamento de versões do ZK * 3.0.0 RC on September 14, 2007 – ~ 5 vezes mais rápida que versões precedentes
* 2.4.1 on July 6, 2007
* 2.4.0 on June 8, 2007
* 2.3.1 on May 2, 2007
* 2.3.0 on March 20, 2007
* 2.2.1 on January 2, 2007
* 2.2.0 on December 13, 2006
* 2.1.3 on October 24, 2006
* 2.1.2 on October 3, 2006
* 2.1.1 on September 19, 2006
* 2.1.0 on August 28, 2006
* 2.0.1 on June 26, 2006
* 2.0.0 on June 13, 2006
* 1.1.0 on March 20, 2006
* 1.0.0 on February 27, 2006
Dá para perceber o quanto a equipa do ZK está trabalhando nele com bastante dedicação.
DesvantagensA licença de ZK é bastante crtiticada. No entanto, vale a pena dizer que segue a mesma licença do famoso MySQL.
ConclusãoMuito ficou por analisar (por exemplo as desvantagens do ZK). No entanto isso pode ser considerado lendo o artigo do Cameron Smith - ZK Rich Client Framework and Agile Development em Inglês http://www.theserverside.com/tt/articles/article.tss?l=ZKandAgile. No artigo ele faz uma discussão e depois apresenta um tutorial. Faz a comparação entre as frameworks RIA: Echo2, ZK, OpenLaszlo, Flex, GWT.
Devido a variedade de componentes de fabrica já prontos para serem usados, ajax de raíz (sem esforço), integração com frameworks populares como Spring, Hibernate, JSF, etc, devido ao suporte da comunidade, devido a ser open source, etc torna o ZK uma escolha privilegiada, principalmente no desenvolvimento de aplicações web para Intranet.
Referências *
www.zkoss.org – Site principal
*
http://www.zkoss.org/demo/ - Live Demo
*
http://www.zkoss.org/smalltalks/ - Artigos, tutoriais e contribuições
*
http://sourceforge.net/forum/?group_id=152762 – Forum onde pode solicitar ajuda, submeter novos pedidos/sugestões/erros, etc
* http://
www.zkoss.org/doc/tutorial.dsp - Tutorial Introdutório ao ZK
* http://
en.wikibooks.org/wiki/ZK/How-Tos - Truques e Dicas, Tutoriais
* http://
www.zkoss.org/whosusingzk/ - Instituições, Companhias, etc que estão usando ZK
* http://
www.zkoss.org/faq/ - Perguntas frequentes
*
http://zkoss.org/smalltalks/zk3.0rc/zk3.0rc.dsp - Novas opções do ZK 3.0.0 RC
* http://www.zkoss.org/smalltalks/zk2.4.1/zk2.4.1.dsp - Novas opções do ZK 2.4.1
* http://www.zkoss.org/smalltalks/zk2.4/zk2.4.dsp - Novas opções do ZK 2.4
* http://zkoss.org/smalltalks/zklayout/ - Simplicidade, Flexibilidade e Poder do ZK Layout
*
http://www-03.ibm.com/developerworks/blogs/page/gbowerman?entry=improve_your_brain_age_with – Um dos contribuintes frequentes do ZK, no site dele possui artigos de ZK
http://www.theserverside.com/tt/articles/article.tss?l=ZKandAgile – Grande artigo/discussão do Cameron Smith
Sobre Marcos de SousaMarcos de Sousa actua na área de desenvolvimento há mais de cinco anos. É desenvolvedor no Banco BCI Fomento (www.bcifomento.co.mz). Setembro 2007, Maputo – Moçambique.
fonte : Artigo retirado do
http://www.urubatan.com.br