Trabalhando com GWT

18 respostas
alias

Olá amigos, bom dia.

Sei que esse assunto já foi comentado anteriormente, mas gostaria de iniciar uma nova discussão sobre o GWT, dessa vez compartilhando uma experiência minha e gostaria de saber a de voces.

Tambem quis criar um tópico nessa pasta pois proponho apenas uma discussão sobre o assunto :wink:

Estou atualmente trabalhando no meu terceiro projeto com GWT e GXT, e o resultado tem sido EXCELENTE.Creio que o GWt já se tornou um framework maduro, e o GWT é um excepcional framework de componentes que enriquecem sobremaneira a aplicação. O resultado final para o cliente é ótimo.

Porem, me parece que a comunidade e as empresas no Brasil ainda tem alguma resistência ao GWT. Gostaria de ouvir de voces, que certamente tem muito mais experiencia e conhecimento em Java do que eu, o que acham sobre o futuro do GWT, aceitação do mercado, etc.E casos de uso!Quem já usou o framework, por favor, poste sua experiência.

Obrigado amigos. :stuck_out_tongue:

18 Respostas

aleqi200

Me corrija se estiver errado.

Para criar uma tela em uma aplicação, o número de linhas de código é sobrenaturalmente grande, o que até hoje me manteve afastado do framework. Acredito que outras soluções tendem a ser mais simples, um exemplo é o uso de html e frameworks javascript que proporcionam uma experiencia similar na interface gráfica, com muito menos linhas de código.

Sempre tive receio do GWT por esse motivo, ainda espero que alguém me convença do contrário, que é muito pouco código produzido e que é simples e intuitiva a api.

jaboot

Semana passada eu fui estudar um pouco de GWT.

A princípio, gostei bastante do plugin no Eclipse, o jeito que ele funciona… bacana.

Então tentei migrar um projeto existente para o gwt… meu Deus. Quanta complicação. E pra colocar o Hibernate pra funcionar junto com ele? Nossa…

E achei ele um pouco perverso - ou estou pensando errado ou eu tenho que fazer a página HTML inteira nas minhas classes? Então eu vou ter que ensinar Java pro webdesigner?

alias, você tem algum exemplo de sistema com login em gwt? Sinceramente fiquei um pouco perdido como fazer, tipo, um simples blog com gwt.

alias

Obrigado pelas respostas, amigos. Boas questoes foram levantadas.

Quanto ao que voce disse,aleqi200, nao sei se concordo muito não. A programação do GWT se assemelha mais a Swing que programar pra Web… tal qual Swing, pra se montar uma tela demanda código sim. Monta o container, depois inclui um label, depois um field, depois um button…inevitavelmente seu codigo vai aumentando proporcionalmente a complexidade da sua interface. Porem, nao acho isso de todo ruim pelo fato do GWT ser fácil de programar e ter uma boa curva de aprendizado.No meu caso, criei classes que montam toda a interface, e quando vou criar a tela propriamente dita só passo parametros. Deu um pouco de trabalho no ínicio pra montar essa estrutura, mas hoje faço uma tela com meia dúzia de linhas.

Quanto a utilização de frameworks Javascript, concordo com voce.Porem, prefiro programar dez mil linhas em java do que uma em Javascript.Aí é uma opiniao minha.

Quanto ao jaboot, sim, a principio a ideia é construir toda a pagina na classe.Mas tambem é possivel ter a sua pagina toda montada e interagir com os elementos HTML dentro do Java. Sinceramente nao tinha visto a coisa por essa perspectiva, de que o seu web designer vai precisar saber Java :shock:, mas nao precisa, nao é mesmo?Ele pode criar a pagina e voce apenas adicionar inteligência nela atraves do GWT.

Tenho códigos com login sim. Estou inclusive tentando usar JAAS, sem sucesso por enquanto. Qual foi a sua dificuldade?

Amigos entendam que nao estou fazendo propaganda pro Google aqui :lol:. Apenas quero discutir sobre esse framework que achei excelente e simples de programar. Para desenvolvimento web com Java, particularmente detesto JSF, entao o GWT foi uma boa alternativa pra mim.Se quiserem xingar e descascar, fiquem a vontade. :wink:

E se puderem, testem o Ext-GWT.É sensacional.E pensar que eu me maravilhava com o Richfaces…

jaboot

Bom alias, já que você está sendo solícito, depois te mando uma mp com o meu e-mail e se você puder me enviar algum código para dar uma olhada seria bem legal.

As minhas dúvidas:

[list]Eu vou ter uma página host (html) única? E nunca vou adicionar conteúdo HTML nela?[/list][list]Se eu quiser colocar mais widgets na minha página, tenho que criar um outro projeto ou fica tudo no mesmo?[/list][list]Se ficar tudo no mesmo, como fica esse lance de EntryPoint? Vou ter necessariamente que ter um para cada widget?[/list][list]As separações das camadas são utilizadas? Pouco vejo nos exemplos da intenet uma package DAO, um DaoFactory… é comum o uso do Hibernate?[/list][list]Como fica a parte de Sessões? Costumo utilizar Session do Hibernate, mas o gwt me fornece algo similar?[/list]
Agradeço se puder esclarecer!

s4nchez

Acompanhei um projeto de quase um ano com GWT. O resultado foi bem ruinzinho. No final jogaram a interface fora e refizeram em Swing. A produtividade aumentou e o cliente adorou.

Na mesma época rolava um projeto com SpringMVC+Velocity+jQuery que também dava um banho no GWT. A idéia de gerenciar tudo em Java é boa na teoria, mas na prática o desenvolvimento em geral ficou muito mais lento.

alias

jaboot:

As minhas dúvidas:

[list]Eu vou ter uma página host (html) única? E nunca vou adicionar conteúdo HTML nela?[/list][list]Se eu quiser colocar mais widgets na minha página, tenho que criar um outro projeto ou fica tudo no mesmo?[/list][list]Se ficar tudo no mesmo, como fica esse lance de EntryPoint? Vou ter necessariamente que ter um para cada widget?[/list][list]As separações das camadas são utilizadas? Pouco vejo nos exemplos da intenet uma package DAO, um DaoFactory… é comum o uso do Hibernate?[/list][list]Como fica a parte de Sessões? Costumo utilizar Session do Hibernate, mas o gwt me fornece algo similar?[/list]
Agradeço se puder esclarecer!

Espero nao falar besteira :oops: :lol:

  1. Sim, a ideia é essa. Voce nao vai manipular html na pagina e sim no Java, atraves dos Widgets.É claro que é possivel colocar código dentro da pagina HTML e manipular no codigo Java, mas o grosso mesmo vai nas suas classes.

  2. Acho que a primeira resposta já serve…

  3. O EntryPoint é unico.Imagine ele como o public static void main(String args[]) da aplicação.A partir dele voce faz o resto. :wink:

  4. Sim, sao utilizadas…ou pelo menos eu utilizo :lol:. Vou te mandar um exemplo com DAO. Nunca usei o Hibernate com o GWT nao, mas ao que me consta a partir de umas pesquisas que fiz, NAO funciona, ou se funciona, é dor de cabeça demais. Mas há um framework chamado Gilead (tambem conhecido como hibernate4gwt pra ajudar. Baixei ele em casa mas ainda nao fiz nenhum teste/estudo, a partir de uma olhada superficial me pareceu simples e tranquilo de usar. Espero que seja mesmo :P)

  5. Me perdoe a ignorancia, mas conheço pouco do Hibernate. O que seria a Session dele?

s4nchez:

Acompanhei um projeto de quase um ano com GWT. O resultado foi bem ruinzinho. No final jogaram a interface fora e refizeram em Swing. A produtividade aumentou e o cliente adorou.

Na mesma época rolava um projeto com SpringMVC+Velocity+jQuery que também dava um banho no GWT. A idéia de gerenciar tudo em Java é boa na teoria, mas na prática o desenvolvimento em geral ficou muito mais lento.

Pois é amigos, nem tudo são flores. Acho que nao será uma besteira dizer que esse tipo de coisa depende das particularidades do projeto.
Uma outra pessoa comentou comigo sobre o uso de SpringMVC+Velocity+jQuery em detrimento do GWT. Quando duas pessoas dizem a gente abaixa a cabeça… :cry:

aleqi200

Compreendo o que vc diz, alias. Acredito que a curva de aprendizado para um usuário de swing seja muito boa.
Bem, vou começar meus estudos sobre o framework e tirar minhas próprias conclusões.

Obrigado.

B

Hibernate funciona para GWT sim. O Gilead é o antigo projeto Hibernate4gwt. Não tem muita dor de cabeça não, é só uma pequena configuração de XML.

Para entender GWT tem que entender as camadas. São basicamente duas: client e server. Em client você faz as telas e entidades, no servidor as regras de negócio/acesso a banco de dados. client/server se comunicam via chamadas assíncronas.
Sobre o webdesigner, ele não precisa saber java não. Simplesmente o programador tem que entender o que ele quer.

Completamente sem fundamento isso. GWT é um framework voltado para web. Swing pode até ter suporte à protocolo HTTP mas passa longe de qualquer aplicação web.

Dava banho porque simplesmente os programadores GWT não sabiam programar. GWT é capaz de concorrer com qualquer MVC do mercado, e eu não vejo algum que supere uma aplicação bem feita em GXT (EXT + GWT).

s4nchez

bKn, não precisa se ofender porque não estou discutindo se GWT é melhor ou pior. Estou relatando minha experiência: a mesma interface com a mesma equipe ficou um lixo com GWT e excelente com Swing. E só pra constar, nada mudou na parte do servidor e ambos projetos acessavam todos os serviços usando as mesmas chamadas HTTP :wink:

B

Não estou ofendido, até porque não estou aqui pra isso. Estou só dizendo que seu post não tem fundamento nenhum, ou seja, o que você disse e o que minha mãe acha sobre GWT são a mesma coisa. Se você tivesse citado fatos coerentes explicando o porque da equipe não ter se adaptado com o framework, seria outra história.

alias

Isso aí amigos, o tópico é pra discutirmos nossas experiencias e impressoes do GWT…e nao é sempre que ele vai ser a melhor opção, assim como acontece com todos os outros frameworks. O que seria do verde se todos gostassem do amarelo? :stuck_out_tongue:

No mais, concordo com o bKn sobre o GWT bater de frente com qualquer outro framework do mercado (eu até diria que é MELHOR, mas aí é só a minha opiniao 8)).Concordo que a questao da produtividade pode ser um problema no inicio, devido a metodologia dele de montagem das telas, semelhante ao Swing…só nao acho que isso inviabilize o uso dele, pois é tranquilo pra programar, reutilizar código pra montar as interfaces, etc. Eu nunca criei uma aplicação grande em Swing (pra isso prefiro .NET, sorry, amigos :lol:), mas acredito que os desenvolvedores façam a mesma coisa, criem classes que já montam tudo bonitinho, depois herdem esses caras, etc.

Acho que o que ele questionou foi o fato do GWT ser web e o Swing, desktop, entao a aplicação GWT estaria disponibilizada na web e etc etc etc…isso é outra coisa que me atrai no GWT (em especial com a utilização do GXT), criar uma aplicação web com uma interface complexa que dê a sensacao ao usuario de estar em uma aplicação desktop. Já fiz projetos com esse mesmo conceito com RichFaces, derramei sangue e lagrimas pra terminar, mas estao lá…por isso resolvi procurar um framework que tambem tivesse essa ideia, mas que fosse mais fácil de desenvolver. A meu ver, é o GWT + GXT. :wink:

alias

Não deixarei o topico morrer :lol:

Moderadores, seria pedir demais transferir o topico para a pasta de Frameworks? :wink:

Link_pg

Olá!

Achei a idéia do GWT interessante, apesar de ja ter visto algo parecido. Meu TCC vai ser sobre Cloud Computing, baseando-se no case do Google App Engine, portanto acho que vou dar uma boa olhada no GWT :lol:

O pouco que mexi, achei bem legal o resultado vs esforço de desenvolvimento, apesar de não estar muito acostumado a desenvolver dessa maneira. Por enquanto, só impressões… talvez daqui um tempo eu tenha uma opinião mais profunda sobre a tecnologia.

Abraços

Grinvon

Minhas experiências e testes com GWT não são dos melhores, não acho que seja uma ferramenta madura o suficiente para ser investida em projetos grandes ainda.

Tente Flex!

jaboot

Bem… o que vocês acham que criar um grupo no google ou em outro lugar?

Cada um pode mostrar o que sabe, fica um ambiente mais propício para discussões e estudo…

Ou alguém pode sugerir alguns sites/grupos bons para estudo?

igor.schkrab

Olá.
Comecei a realizar um estudo recentemente com GWT…
Consegui criar uma aplicação… Mas não sei se estou trabalhando da forma correta com o framework.
Vocês criaram algum grupo de discussão acerca do GWT?

juniorsatanas

Tua aplicação faz o que ? gostaria de ver os fontes, tambem estou estundando !

da uma olhada aqui : http://www.instantiations.com/gwtdesigner/

A

alias:
jaboot:

As minhas dúvidas:

[list]Eu vou ter uma página host (html) única? E nunca vou adicionar conteúdo HTML nela?[/list][list]Se eu quiser colocar mais widgets na minha página, tenho que criar um outro projeto ou fica tudo no mesmo?[/list][list]Se ficar tudo no mesmo, como fica esse lance de EntryPoint? Vou ter necessariamente que ter um para cada widget?[/list][list]As separações das camadas são utilizadas? Pouco vejo nos exemplos da intenet uma package DAO, um DaoFactory… é comum o uso do Hibernate?[/list][list]Como fica a parte de Sessões? Costumo utilizar Session do Hibernate, mas o gwt me fornece algo similar?[/list]
Agradeço se puder esclarecer!

Espero nao falar besteira :oops: :lol:

  1. Sim, a ideia é essa. Voce nao vai manipular html na pagina e sim no Java, atraves dos Widgets.É claro que é possivel colocar código dentro da pagina HTML e manipular no codigo Java, mas o grosso mesmo vai nas suas classes.

  2. Acho que a primeira resposta já serve…

  3. O EntryPoint é unico.Imagine ele como o public static void main(String args[]) da aplicação.A partir dele voce faz o resto. :wink:

  4. Sim, sao utilizadas…ou pelo menos eu utilizo :lol:. Vou te mandar um exemplo com DAO. Nunca usei o Hibernate com o GWT nao, mas ao que me consta a partir de umas pesquisas que fiz, NAO funciona, ou se funciona, é dor de cabeça demais. Mas há um framework chamado Gilead (tambem conhecido como hibernate4gwt pra ajudar. Baixei ele em casa mas ainda nao fiz nenhum teste/estudo, a partir de uma olhada superficial me pareceu simples e tranquilo de usar. Espero que seja mesmo :P)

  5. Me perdoe a ignorancia, mas conheço pouco do Hibernate. O que seria a Session dele?

s4nchez:

Acompanhei um projeto de quase um ano com GWT. O resultado foi bem ruinzinho. No final jogaram a interface fora e refizeram em Swing. A produtividade aumentou e o cliente adorou.

Na mesma época rolava um projeto com SpringMVC+Velocity+jQuery que também dava um banho no GWT. A idéia de gerenciar tudo em Java é boa na teoria, mas na prática o desenvolvimento em geral ficou muito mais lento.

Pois é amigos, nem tudo são flores. Acho que nao será uma besteira dizer que esse tipo de coisa depende das particularidades do projeto.
Uma outra pessoa comentou comigo sobre o uso de SpringMVC+Velocity+jQuery em detrimento do GWT. Quando duas pessoas dizem a gente abaixa a cabeça… :cry:

Pode sim utilizar hibernate normalmente com gwt como em um projeto web utilizando servlet, jsf.A partir da versão 1.5 do gwt é possível inclusive utlizar annotations nas classes de domínio.Existem duas limitações ao meu ver:

  • Proxy:vc o gwt nao serializa os proxys gerados pelo carregamento preguiçoso do hibernate.Ou não utilize proxy explicitamente ou utilize algum framework para resolver esse problema…
  • Relacionamentos bidirecionais: quando se faz uma consulta de alguma classe de domínio que possua relacionamento bidirecional o hibernate envolve o resultado dessa consulta em um PersistentSet ou PersistenList… e o gwt nao consegue serializar isso.O gwt só serizaliza classes que implementem a interfaze isSerializable.Se vc quer utilizar uma classe do lado servidor e na view (classes de dominio por exemplo), vc precisa implementar essa interface na classe.
Criado 3 de agosto de 2009
Ultima resposta 28 de abr. de 2010
Respostas 18
Participantes 10