Review: ZK Framework – O modo mais simples de fazer uma Aplicação Web Rica

Este ótimo review foi escrito pelo Marcos de Sousa. Muito obrigado pela colaboração!


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

Dá para perceber o quanto a equipa do ZK está trabalhando nele com bastante dedicação.

Desvantagens

A licença de ZK é bastante crtiticada. No entanto, vale a pena dizer que segue a mesma licença do famoso MySQL.

Conclusão

Muito 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

Sobre Marcos de Sousa

Marcos 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.


01/10/2007 - Alguns dados sobre o projeto atualizados no post

Se você gostou deste post, lembre-se de assinar o RSS feed do blog, para ser notificado de novos posts!

12 comments so far

  1. AT October 1, 2007 7:33 am

    Parabéns Marcos pelo Review.

  2. Carlos Brando October 1, 2007 9:25 am

    Interessante, vou olhar com mais calma depois.

  3. Fabio October 1, 2007 5:18 pm

    Boa tarde!

    Eu uso o ThinWire. Alguém já usou? Tem alguma comparação entre ZK e ThinWire?
    O ThinWire é muito fácil usar e até hoje rodou de primeira nos navegadores que testei.

    t+

  4. Marcos de Sousa October 1, 2007 6:19 pm

    Pelo menos dá para dizer que os 2 possuem mesmos propósitos: RIA Framework.

    No google podes bater: “zk + thinwire” houve uma comparação basica dizendo que thinwire não possui recurso drag-and-drop, mas penso que actualmente deve existir.

    Thinwire já possui um IDE?

    Dá para considerar o Thinwire. Gostei dele.

    Cumprimentos,

    Marcos de Sousa

  5. Fabio October 2, 2007 9:23 am

    Bom dia!
    Tem sim drag-and-drop.
    Tem o screenshot de uma ferramenta para desing do ThinWire, no link http://www.thinwire.com/?n=Explore.FormCreator. Mas nao tem como baixar. :(

    t+

  6. Genildo October 3, 2007 1:39 am

    Uso o ZK há 3 mêses, com banco OO (db4o). Seja por páginas .zul, ou por richlets (java puro, igual swing), o desenvolvimento é muito prático. E no fórum, o pessoal responde rapidamente eventuais dúvidas.

  7. Marcos de Sousa October 3, 2007 4:23 am

    Genildo,

    Realmente as bases que me agradaram no ZK também foram estas: Desenvolvimento prático tanto com páginas .zul e/ou com java puro; No fórum, o pessoal responde rapidamente eventuais dúvidas (Colaboração da Comunidade e da TEAM).

    Cumprimentos,

    Marcos de Sousa

  8. Danilo Ischiavolini Chaves February 25, 2008 8:13 am

    Bem eu no momento estou trabalhando na customização do ERP OfBiz só alterando a parte de visualização colando em prática o ZK, que está funcionando super bem !!! sem nenhuma complicação e quando tenho alguma duvida pergunto no Forum e no outro dia já tenho a resposta de como posso resolver o problema…

    t++

  9. Anonimo February 27, 2008 2:14 pm

    Gostaria de saber, o ZK funciona no php?

  10. publicado em “how uzing ZK”:
    “Marque Já! is a tool designed for companies and professionals… Unlike traditional calendars, with Marque Já! you can fully control and decide the day and time you want… Marque Já! has a great innovation: it can send SMS to confirm the commitment between each other. Marque Já!’s GUI is 100% done with ZK…”

    acessem http://www.marque-ja.com,

    abraços,
    Bruno Fonseca

  11. Jose Mizela May 10, 2008 6:32 am

    Grande Marcos,
    Parabens pelo artigo….
    gostei.. Qualquer duvida sobre ZK vou te procurar

    Abraços…

    Mizela

  12. […] pelo Marcos de Sousa. Muito bom o post, e o ZK é bem legal tanbém, para saber mais sobre o ZK Framework podem dar uma olhada neste post,também escrito pelo […]

Leave a comment

Please be polite and on topic. Your e-mail will never be published.