segunda-feira, 1 de novembro de 2010

O que é o ZK?

Inicio a minha série de postagens falando mais sobre o que o ZK:

O ZK é um framework orientado a eventos para desenvolvimento web baseado em AJAX de código aberto. Permitindo 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. 
O ZK utiliza uma linguagem de meta-definição baseada em XML (ZUML) para definir a interface do usuário traduzindo para código HTML quando a página é solicitada pelo cliente.
O ZK foi o primeiro projeto AJAX + mobile no SourceForge.net, acumulou 1.500.000 downloads, e foi referenciado por mais de 4.000 web sites desde o lançamento da primeira versão em 2005.


O ZK possui quase tudo feito de bandeja:
  • Diversos 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
  • “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% API Java 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 ativos, ou seja, facilmente é capaz de se desenvolver sistema de CHAT.
  • Em adição, componentes TreeModel, Timebox e Flash
  • Modelo server-side e baseado em eventos
  • Mais de 20 eventos suportados; onChange, onChanging, onScroll, onSelect, on Show, onZIndex, etc
  • Todos os eventos são processados no servidor
  • Todos os eventos estão sincronizados. Não possui problema de “Racing Condition”
  • Scripting usando expressões EL. Inclui, mas não limitado, a Java, Javascript, Ruby, Groovy e Python
  • Mudanças noa interface do usuário sem necessidade de restarting da aplicação
  • Anotações que permite uma página acessar a base de dados sem escrever código Java
  • Macro componentes
  • Facilidade em encapsular componentes puramente clientes como componentes do ZK usando 100% a API Java
  • Dialogos Modais verdadeiramente server-side
  • Internacionalização
  • MVEL plug-in

Facilidade de utilização
Simplicidade é um dos valores de base do ZK. Outra facilidades que se encontra nesse framework, é a disponibilidade com que a sua equipa de desenvolvedores está disposta a ajudar.
A criação de novos/customizados componentes é bastante simples e a documentação é muito boa e bem detalhada.


Independência de plataforma
O ZK Mobile possui vários componentes já de bandeja: listbox, listitem, textbox, image, label, command, datebox, decimalbox, intbox, frame
O ZK suporta os seguintes browsers: Internet Explorer 6/7+, Firefox 1+, Safari 2+, Mozilla 1+, Opera 9+ and Camino 1+. Escreve uma vez e rode em todos os browsers sem problemas de compatibilidade.
Roda em qualquer web Server que suporta Servlet 2.3+ e JVM 1.4+



Licença
A licença padrão do ZK é LGPL. No entanto, existem licenças pagas os componentes mais avançados que segue o mesmo padrão do famoso MySQL.


Integração com outros frameoworks
Possui integração com outros frameworks, como Spring, Hibernate, JSP, JSF. ExtJs, Google Maps, FCKeditor, DOJO e Timeline.


Enfim, muitas coisas ficaram por analisar. 
Com muitos componentes já prontos, AJAX imbutido, integração com frameworks populares, suporte da comunidade e open-source, torna o ZK uma exelente escolha para o desenvolvimento de aplicações web.


    3 comentários:

    1. Voce ja utilizou a biblioteca de componentes do zk em um projeto jsf?

      ResponderExcluir
    2. Olá Thiago,
      Eu não utilizei bibliotecas do ZK em um projeto JSF. Mas você pode encontrar alguma referência aqui:http://books.zkoss.org/wiki/ZK_Developer%27s_Reference/Integration/Embed_ZK_Component_in_Foreign_Framework

      ResponderExcluir
    3. Quais as vantagens de se usar ZK em relação a JSF puro.

      ResponderExcluir