Não curto muito o GWT pela limitações de Api ofertadas ao lado cliente e as interfaces serem bem simples. No projeto que partecipei usavamos o SmartGWT (que não deixa ser o GWT só que mais poderosa em termos de recurso Gráficos) e RestFULL para desaclopar a parte de negócio. Apesar disso todos na equipe sofremos bastante por algumas limitações quando se trabalhao no lado cliente. Toda a conversão do JSON era infelizmente na mão no lado cliente. Não existia nenhuma ferramente que pudesse ajudar. A arquitetura MVP, em prática, se demonstrou pouco atraente. Gerava muito código duplicado e tornava um suplício para o desenvolver a criação / manuntenção de um simples Crud. A idéia do MVP é boa mas quando o projeto se torna grande, não ajuda muito não. Outro problema eram os browsers. Um código no Firefox, blz, já o mesmo no Explorer pau!, E a Api que mais dava pau era a Api referente a espressões regulares “java.util.regex”. Parece que na hora de gerar o Ajax algo se perdia. Porém isso já faz uns 6 meses, talvez as coisas tenham mudado para melhor no SmartGWT e o GWT não dê esses problemas, espero para os desenvolvedores.
Pelo menos por enquanto ele está atendendo, mas no começo foi complicado ver o trabalho
que tínhamos pra fazer operações simples baseado em MVP.
Tivemos alguns probleminhas com incompatibilidade de browser mas foi configuração
errada por parte da equipe(foi um detalhe) e agora parece que está tudo normal.
Mas achei interessante sua arquitetura usando Rest para o desacoplamento de negócio.
Não tinha ainda pensado no desenvolvimento desta forma.
Em reação ao GWT, até gostamos dos componentes gráficos justamente por serem
simples, já que a idéia é uma aplicação robusta, mas eleve visualmente (inclusive
Mobile).
Também acho bem interessante o SmartGWT mas nunca utilizei efetivamente.
Só tenho certo receio do Framework não atender mais o nosso projeto a medida
que o projeto cresça, já que ele é razoavelmente novo e ainda não apanhou o suficiente
da comunidade.
Já desenvolveu com ele pra dispositivos móveis? Ele ficou bem bacana no IPad!
Olá AlexandreGama,
Realmente a arquitetura Restfull resposável pelo negócio e a SmartGWT pela apresentação melhorou a coesão e desaclopamento, mas não fui eu quem trousse essa idéia de arquitetura. Na verdade o grande gerador de problemas realmente foi o Smart.Só não entendi o seguinte
Desenvolveu SmartGWT para IPad? Possível? Talvez vc esteja falando sobre a arquitetura MVP??
Na verdade a nossa mesma aplicação desktop (com GWT) está rodando no IPhone e IPad, apenas
modificando a Interface, o que tornou a aplicação bem interessante.
E com Smart não cheguei a desenvolver e sim com GWT “puro” somente.
Você já chegou a trabalhar como GWT pra dispositivos assim?
Também usamos GWT em um projeto aqui.
Gostei demais da tecnologia.
Como já disse em outros tópicos, tivemos a infelicidade de usar SmartGWT.
Esse foi o pior erro que cometemos no projeto.
É o típico “bonitinho mas ordinário” como disse um colega aqui do trabalho.
É lindo, tem tudo quanto é recurso gráfico, mas é todo orientado a String e é lotado de bugs… fora que se você tentar misturar com componentes GWT ele pode zicar todo o layout.
A e não tem suporte decente a UIBinder. Nem vai ter segundo os criadores do SmartGWT.
Usaria sim GWT de novo em novos projetos, mas SEM o smart. Claro que é uma pena perder os recursos gráficos do smart, mas o trabalho que ele adiciona vale mais a pena criar na mão os componentes que precisar do que em todo projeto perder horas e horas arrumando besteira do smart.
Quanto as chamadas remotas, fizemos todas com RemoteService, sem usar aquelas bagaças de DataSource do Smart.
É que a própria arquitetura do GWT te obriga a criar um Controler bonitinho, convertendo as entidades e deixando bem claro o que é view e o que é model. Não é uma opção, é uma obrigação e por mais que isso seja incômodo em alguns momentos é uma boa por que diminui forçadamente o acoplamento. Muitos podem discordar de mim, mas é a sensação que tenho a usar RemoteServices em GWT.
O fato do GWT “obrigar” a ter o seu Controller com o RemoteService faz com que a arquitetura fique
mais limpa, separando claramente o Model da View e (apesar de alguns locais serem custosos) fazer Testes
de Unidade de forma bem bacana, usando de forma correta a Injeção de Dependência que os testes “obrigam”.
Parece que tive a sorte então de não trabalhar com o Smart. Mas por pouco não adotamos!
Por enquanto está atendendo, apesar de eu estar um pouco longe agora do projeto, mas bate a incerteza
se realmente continuará atendendo a medida que o sistema vai crescendo.
Opa!
Não usamos Gilead, na verdade nem sei como funciona pra ser sincero hahaha (pesquisando)
Se aceita um conselho, ouça o que eu digo, passe longe do smart.
Ainda mais se sua equipe possuir alguns elementos que sejam realmente muito bons em JavaScript, aí da pra criar sem medos componentes visualmente tão poderosos e sem os defeitos do Smart, quem sabe usando aquelas bibliotecas do Yahoo, JQuery, etc etc…
Enfim, se for usar o GWT em mais projetos vale a pena construir uns componentes mas bonitinhos e mantê-los, já que gwt peca um pouco nisso.
Falta um primefaces / richfaces FEITO PARA gwt, não wrapper de javascript como o Smart, Vaadin, etc… quem sabe o mosaic no futuro?
Agora uma coisa, num novo projeto vou precisar fazer upload e exibir eventualmente fotos. Upload o GWT já tem alguns componentes, mas como eu poderia exibi-los direto do banco? Preciso transmitir como array de bytes e convertê-los? (melhor abrir um tópico novo, senão vão me acusar de sequestro jaja)
Considere o ext-gwt descontinuado, o próprio pessoal que o desenvolve recomendou NÃO usa-lo e ir pro smart, já que ele receberá poucas atualizações SE receber.
Olá Tchello!
Até usei e uso alguns componentes Ext. Realmente não sabia sobre essa possível descontinuação.
Você tem o link falando sobre isso? Fiquei preocupado agora!
Semelhante a esta interface mais rica que o GWT oferece, além dessa aparência Desktop+Web quais
seriam as outras opções pra este tipo de aplicação? Quais vocês utilizam? (tá, acho que estou quase criando
outro tópico né)
Então, todos os outros sistemas estão ou em C com umas bagaças visuais que só funcionam numa vm (legado MTOOOOO antigo) e struts, inclusive projetos relativamente novos que usam largamente o struts.
Tem outros lugares da empresa que usam JSF, Swing, etc etc etc… tem bastante coisa.
[quote=Tchello][quote=davisnog]www.sencha.com/products/gwt/
E quanto ao ext gwt, alguem tem alguma opnião?
[/quote]
Considere o ext-gwt descontinuado, o próprio pessoal que o desenvolve recomendou NÃO usa-lo e ir pro smart, já que ele receberá poucas atualizações SE receber.[/quote]
O GWT-EXT foi descontinuado. O EXT-GWT(Sencha EXT-GWT) continua firme e forte. Eu acho ele excelente. O GWT-EXT era um porqueira, igual o SmartGWT é.
Edit:
O Tchello mesmo já respondeu. Mas eu recomendo o EXT-GWT. O “problema” dele é que ele é pago para projetos comerciais, mas não acho que é caro, se levarmos em conta o tempo que se ganha desenvolvendo em relação ao GWT Puro e SmartGWT.
Nada é perfeito nesse mundo. Como qualquer outra tecnologia que você escolher, vai esbarrar em algumas limitações. A proposta do GWT é ser “apenas” um toolkit. É por isso que existem muitos frameworks que oferecem facilidades para criação de interfaces mais elaboradas (Smart, GXT…)
Faltou ler a documentação e as limitações da arquitetura. Vide JRE Emulation Library.
Vocês gostam de sofrer né ? Tudo é Java. Conhecendo bem o processo de serialização das chamadas RPC, fica facil trabalhar apenas com objetos.
Você nao necessariamente precisa adotar essa prática, que exige um grau maior de maturidade na plataforma.
Meu amigo mynameisflaw o SmartGWt está longe de oferecer essas facilidades que tu falas. Só tivemos muita dor de cabeça e como pode perceber não fui o único.
Só por que achei limitada, isso não significa que a documentação não foi leita. Muito pelo contrário, a documentação foi leita sim por nos desenvolvedores e ficamos estrarrecidos ao saber tais limitações. A escolha da arquitetura do projeto e os frameworks, foi feita pelo arquiteto da empresa, realmente, nós desenvolvedores infelizmente não tivemos a chance de ser ouvidos. Acrédito, que esse seja um problema comun na grande maioria das empresas de softwares de hoje. Portanto, seu julgamento é fraco e inválido.
Eu acho que solução RestFULL foi muito interessante, proporcionol maior desacoplamento e melhorou a coesão. Ficou tão legal que a equipe foi dividida em aqueles que só trabalhavam com a apresentação e uma outra somente com o negócio em um jar específico. Ou seja, o jar que continha as regras de negócio poderiam estar em qualquer outro servidor. Meu amigo, não é questão de gostar de sofrer mas de estudar novas tecnologias e não se acomodar com o que já se tem. Nesso ponto, nosso arquiteto fez uma ótima escolha e está de parabéns.
Novamente, acalme o seu coraçãosinho, e me diga onde a Api java.util.regex fala dos efeitos colaterais dos diferentes browsers.
Em resumo, calma meu amigo. Você pode adorar o GWT, na verdade, eu falei mais mal foi do SmartGWT. E afirmo, nunca mais irei usá-la e espero não partecipar de outros projetos com ela.
Eu não estou defendendo o SmartGWT. Não disse que é bom, nem ruim, porém implementar muitos componentes visuais (rich combobox, tree, calendar…) é muito penoso. Isso justifica a adoção de algum framework.
Não fique ofendido, nem todo desenvolvedor quando inicia em uma nova tecnologia lê a sua especificação. O prazo do projeto tá correndo ne ?
O papel do arquiteto é esse, é definir a melhor solução com base nos requisitos funcionais e não funcionais. Ou você acha que as empresas querem correr o risco de adotar uma solução frankenstein definina pelos desenvolvedores ?
[quote=fabioEM]
Novamente, acalme o seu coraçãosinho, e me diga onde a Api java.util.regex fala dos efeitos colaterais dos diferentes browsers.
Em resumo, calma meu amigo. Você pode adorar o GWT, na verdade, eu falei mais mal foi do SmartGWT. E afirmo, nunca mais irei usá-la e espero não partecipar de outros projetos com ela.[/quote]
Não é a api que vai te dizer isso, são os próprios browsers. Ou você acha que todos os browsers possuem a mesma engine ?
Eu realmente gosto muito do GWT, como qualquer outra tecnologia que atenda à minha necessidade no momento. Só te achei um pouco rancoroso quando mostrou seu ponto de vista aqui. Levantei a discussão não pelo lado pessoal (até mesmo porque não te conheço), mas sim porque achei que as suas afirmações foram um pouco infundadas.
Cara, leia bem seus proprios comentários. SmartGWT na verdade, oferece mais é dor de cabeça que facilidades. Veja os comentários aqui da maioria dos desenvolvedores que já trabalharam com essa ferramenta. Em meus comentários deixo bem claro minha posição em relação e essa ferramenta. Leia com calma e reflita mais.
Ninguém esta ofendido, eu afirmo que a api do SmartGWT é limitada e de acordo com a sua lógica eu não li a documentação. Amigo, você está sendo arrongante,logo seja mais maduro em seus comentários se não quiser resposta.
Em meu comentário sobre os problemas do SmartGWT no que refere a api Java Regex vc comentou:
Por fim,
Realmente, eu não sabia que a documentação dos browser´s cobriam assuntos referentes a api de uma linguagens de programção, como da api regex do Java. Assim, tem certeza disso mesmo??
Cara, afirmações infundadas… Penso próprio que não. Eu falei por experiência própria e a nome de uma equipe que na época comportava várias pessoas. TODOS os desenvolvedores foram unanimes em afirmar que o SmartGWT trazia mais dores de cabeça que facilidades.
Se de doi isso, não posso fazer muita coisa. Um conselho, quando for argumentar com alguém tente usar assuntos mais sólidos, assim podemos ter um conversa construtiva onde todo mundo sai ganhando