quinta-feira, 26 de maio de 2011

melhor GUI toolkit para web

GWT (google web toolkit) na minha opinião é a solução mais eficiciente para implementar a camada visual de um sistema Web. Nao somente pela simplificade de criar RIA para web mas pelo fato de usar melhor o processamento na camada client, aumentando a escalabilidade do seu sistema. Pode usar facilmente o pattern MVP ao inves do MVC facilitando os testes unitarios e melhorando o reuso.

Para ser produtivo recomendo usar algum outro framework como ext-GWT ou smartGWT (antigo GWT-Ext) como uma camada adicional assim ganhara uma interface muito rica, com varios widgets muito legais, pronto para uso. Muita discussao tem em torno qual é o melhor, ext-GWT ou Smart. O Smart aparenta ser um produto mais maduro porem o ext foi desenvolvido pela mesma empresa que fez o Ext JS portanto tem credibilidade. O mais importante é nao misturar os Widgets no mesmo projeto, nem mesmo com os nativos do GWT pois tivemos alguns problemas de comportamento quando tentamos isso.

O GWT abstrai toda a complexidade da implementação Javascript client-side. Possui uma ferramenta de designer de interfaces GUI muito boa para o Eclipse. O GWT nao resolve a camada de negocio ou persistencia, para isso tem outros frameworks e patterns. Como procuro criar metodos stateless o GWT é perfeito para manter os estados no cliente sem suar muito. Um colega relatou a experiencia de transformar um sistema inteiro que estava em Struts-2 (argh!) para uma nova arquitetura usando GWT + SmartGWT, sem manter absolutamente nenhum estado no servidor e transferindo parte do processamento (validações, calculos, etc..) para a camada client. O ambiente de produção que contava com 3 servidores em cluster, operando a 60% da capacidade de processamento em determinados horarios caiu hoje para 1 unico servidor (+1 de failover) e atendendo a mesma demanda opera no maximo a 40% de capacidade. Recebeu elogios dos usuarios referente a usabilidade e tempo de resposta.

O potencial é tao grande que existe até uma implementacao do Quake-2 em GWT:

Nenhum comentário: