26 maio 2008

GWT

Neste post informei que estava começando um projeto particular e que utilizaria as seguintes tecnologias: JSP, Servlet, Struts, Hibernate. Bom, após uma tentativa frustrada de utilizar o YUI (Yahoo User Interface) diretamente com o Struts, decidi tentar aprender somente o que precisava saber sobre Struts primeiro, antes de utilizar alguma coisa diferente no projeto, como interface com AJAX que é o caso do YUI. Novamente fiquei frustrado. Bom, aprendi os conceitos do Struts, fiz alguns testes que funcionaram perfeitamente, inclusive com acesso ao banco de dados utilizando Hibernate. Mas o que me frustrou foi em relação justamente à interface.

O motivo dessa frustração foi por que não existe uma padronização que todos todos concordem para integrar o Struts com o JSP. Pesquisando, alguns diziam que o melhor era utilizar as JSTL padronizadas, já para alguns casos a maioria dos desenvolvedores recomendavam a utilização das taglibs do próprio Struts... Não encontrando um censo comum, nem uma forma fácil de integrar o Struts com JSP (deixo claro que essa é minha opinião que formei com algumas horas estudando Struts), decidir abandonar os estudos desse framework.

Procurando alternativas optei por me dedicar ao GWT (Googlel Web Tookit), que é um framework para criação de interface web baseado em Ajax. O funcionamento dessa ferramenta, que era de uso interno do Google mas foi disponibilizado como código aberto para quem quiser utilizar, é bem simples. A ideia central é a de gerar código JavaScript através de código Java... Você desenvolve a interface com código Java, mais ou menos parecido com a forma como você desenvolve utilizando Swing, porém você só pode utilizar componentes do GWT. A partir desse código, o compilador do GWT o compila para código JavaScript, gerando assim a interface.

Porém o GWT somente utiliza poucos recursos do Java e, principalmente, ele não suporta recursos que sejam do Java 5 ou mais recentes, ou seja, só suporta até o Java 1.4. Mas isso não chega a ser problema, pois o GWT é uma ferramenta voltada para criação de interfaces gráficas, logo não são necessários muitos recursos a mais do que o próprio GWT disponibiliza. Bom, não são necessários muitos recursos extras, mas algumas vezes são necessários alguns recursos, como por exemplo para se utilizar Hibernate com anotações eu seu projeto. Não vou entrar nesse assunto agora, porém no próximo post pretendo dar uma esclarecida nisso.

Outro detalhe importante sobre o GWT é que, sendo ele somente uma ferramenta para a criação de interfaces gráficas para web baseado em Ajax, todo o código que não esta relacionado à interface deve ficar no que é chamado de Server-side Code, ou seja, a lógica de negócio fica nessa área do projeto. Basicamente o Server-side Code é um servlet que é acessado pela interface como serviço, e é aqui que podemos utilizar todos os recursos do Java.

Não vou me aprofundar sobre esse assunto, porém segue alguns links que falam sobre isso de uma maneira melhor do que eu poderia explicar (e que me ajudaram muito a entender sobre o funcionamento da ferramenta):

http://loogica.wordpress.com/2006/11/30/gwt-voce-entendeu/

http://www.pbjug.org/jugs/documentos/google_web_toolkit


Após essa breve introdução sobre o GWT eu paro por aqui. Quem chegou a meu post aprender sobre GWT, recomendo que leiam os dois artigos dos links acima. Nos próximo posts irei colocar exemplos de utilização do GWT, inclusive de como passar a limitação sobre recursos do Java 5 e mais recentes.

Nenhum comentário: