Melhor biblioteca de widgets GWT? [fechadas]

134

Pergunta para todos os gurus do GWT por aí - qual é a melhor biblioteca de widgets do GWT por aí? E porque?

Lista com base nas respostas:

Para obter mais informações sobre o JsInterop, consulte JsInterop :

Tellme
fonte
Você esqueceu de incluir o gwt-mosaic na lista?
Ashwin Prabhu
2
Essa pergunta não era específica sobre os requisitos; portanto, previsivelmente, o mais altamente visível (GWT principal) foi votado, mesmo que não atenda a todos os requisitos. Se você possui um aplicativo corporativo complexo com muitas telas e alto volume de dados e precisa de grades e editores poderosos, é para isso que serve o SmartGWT. O GWT simples é ótimo para muitos aplicativos, mas muitas empresas com esse conjunto específico de requisitos avaliam o GWT e decidem que o SmartGWT é o melhor ajuste. Para obter uma visão geral e decidir por si mesmo, leia o Guia de Início Rápido. smartclient.com/releases/SmartGWT_Quick_Start_Guide.pdf
Charles Kendrick
está faltando gwt-bootstrap
caarlos0
Eu criei uma proposta de site para dar a perguntas como essa uma casa oficial longe do Stack Overflow. Chama-se Code Recommendations Help para torná-lo realidade, juntando-se e fazendo perguntas agora!
Davisales
Isso também parece promissor: gwt-material-demo.herokuapp.com
kozla13

Respostas:

52

Não se vincule a QUALQUER uma dessas bibliotecas. Use o Vanilla GWT para criar a estrutura do seu projeto. Em particular, use o padrão MVP e um barramento de eventos. Consulte o artigo do google para saber como projetar melhor seu aplicativo cliente com o GWT: Criando aplicativos MVP

Depois, você pode usar qualquer widget dessas bibliotecas (por exemplo, uma tabela ou uma caixa de combinação, um datepicker, etc.) e incorporá-lo ao seu projeto. Tente usar SOMENTE componentes estendidos se não encontrar uma maneira de fazê-lo com o GWT de baunilha. Dessa forma, você não se vincula a essas bibliotecas, que SEMPRE são problemáticas ao tentar fazer algo que não aparece no aplicativo de demonstração, que contém muitos bugs e seu suporte é ruim, na melhor das hipóteses.

Como procurar widgets deve seguir esta ordem:

Cuidado com outras bibliotecas, trabalhei com elas (e ainda tenho pesadelos).

monzonj
fonte
1
Alguma experiência específica com outras bibliotecas que você gostaria de compartilhar?
Adam
6
GXT, eu não recomendaria ao meu pior inimigo. Se você o considerar, primeiro faça uma busca no Google e saiba onde está se metendo. SmartGWT, um wrapper JS, muito feio. Fuja para longe disso. Tenho experiência com ambos em um projeto real. Primeiro, usei o SmartGWT, mas suas limitações me fizeram mudar para o GXT. Logo descobri a bagunça que eles tinham lá com ligações de formulários e genéricos de java (Jesus, toda vez que me lembro ...) não sei o que é pior! Eu terminei, sim, mas sofri imensamente. Depois disso, aprendi a usar o GWT de baunilha e apenas o widget que eu gostei de outras bibliotecas.
monzonj
Este post é antigo e, por sua natureza, data, mas eu usei o GXT extensivamente nos últimos 2 anos e, embora tenha problemas, também permite a criação de aplicativos muito bonitos com relativa facilidade. Possui grades muito úteis, grades tamponadas e grades vivas. O SmartGWT também possui grades e componentes bem caracterizados. Considere também Vaadin .
Carl Pritchett 30/11
43

Depende do que você quer dizer com "melhor". Mais bonito? Melhor API? Melhor para estender às suas próprias necessidades personalizadas?

Por exemplo, eu estava apenas avaliando classes de tabela para usar em nosso aplicativo. Estamos usando o GWT-Ext, mas ele tem muitos problemas de desempenho e é muito difícil obter as tabelas dimensionadas da maneira que precisamos delas. Cheguei muito perto de usar o GWT-Mosaic , mas decidi criar os widgets na Incubadora GWT .

Então, por que eu fiz essa escolha? Parece que muitas das bibliotecas por aí vêm com suas próprias, por falta de uma palavra melhor, bagagem. Ou você precisa se aprofundar em alguma estrutura MVC (que pode não ser totalmente compatível com o restante da sua base de código), ou você deve adotar o novo sistema de layout fangled de alguém, ou você deve viver com o fato de que não pode realmente depurar o código (porque são apenas invólucros JSNI).

Não me interpretem mal, a Incubadora GWT não é perfeita ... os widgets existem em uma certa quantidade de fluxo. No meu caso, essa foi a melhor escolha, no entanto. Isso me dá um bom (mas definitivamente não é perfeito):

  • API
  • Extensibilidade
  • Aparência (bem, isso é meio fraco, mas é para isso que serve o CSS).

Então ... a resposta (para mim) é uma combinação de:

  • Widgets GWT de estoque (com muitos estilos personalizados)
  • Tabelas da incubadora GWT
  • Alguns widgets criados em casa

(Devo acrescentar: a "bagagem" à qual estou me referindo não é necessariamente uma coisa ruim. Mas, se você quiser apenas um widget ou dois, ele pode elevar a fasquia no que é necessário para concluir seu trabalho e como boa aplicação parece.)

jgindin
fonte
A maioria das bibliotecas de widgets requer alguma licença devido à dependência de algumas bibliotecas AJAX externas. Isso também adiciona tamanho extra à sua solução. Observe também que a maioria das bibliotecas de widgets depende de um ou mais componentes externos adicionais.
IgorM 18/05/09
10

Somente o GWT é uma biblioteca muito boa.

Não usei todos os mencionados, mas posso recomendar o Ext GWT .

DragonBorn
fonte
2
Eu concordo com o GWT vazio. Junto com os projetos da incubadora ( code.google.com/p/google-web-toolkit-incubator ), você pode implementar qualquer coisa basicamente. Eu costumava MyGwt mas ele suga quando encerrar o projeto e mudou seu nome e todos os fóruns e suporte, licença são alterados
Robert Childan
1
Isso deve ser terrível. Não é uma maneira muito prática de manter um software.
DragonBorn
9

Eu prefiro baunilha GWT. Algumas das outras APIs parecem bonitas e suas apresentações realmente mostram os widgets, mas sempre acho que o desempenho não é o melhor ... quando digo desempenho, quero dizer mais como tempo de resposta. Eu odeio quando um aplicativo parece lento.

Nick
fonte
8

A maioria das bibliotecas mencionadas não é de código aberto e, pior ainda: são apenas wrappers no topo de uma biblioteca JavaScript. O poder do GWT reside no fato de que o aplicativo funciona em diferentes navegadores (devido à geração de código para os "grandes" navegadores especificamente). Essas bibliotecas subjacentes JavaScript podem causar muitos problemas.

Concordo com jgindin GWT Incubator e GWT Mosaic são os melhores até agora.

Rokesh Jankie
fonte
Muito enganador. Quase todas as bibliotecas listadas são de código aberto com licenças comerciais amigáveis ​​(Apache, BSD, LGPL), exceto ExtGWT (GPL). Além disso, mesmo no conjunto muito limitado de componentes atualmente fornecido, o GWT possui muitos bugs entre navegadores - basta pesquisar no banco de dados de bugs para verificar isso. O compilador GWT não é mágico e não corrige automaticamente erros estranhos no layout do navegador, específicos da situação e similares - eles precisam contorná-los como qualquer outra estrutura. Nem sempre estão na vanguarda - eles não anunciaram o suporte oficial para iPhone ou Android, SmartGWT.
Charles Kendrick
7

Não estou dizendo que é "o melhor", mas tenho usado o GWT-Ext no trabalho recentemente. Tem alguns prós e contras:

Prós:

  • Relativamente fácil de configurar e usar
  • Comunidade de tamanho decente por trás
  • MUITOS exemplos on-line, todos com o código que o acompanha
  • Boa seleção de widgets que cobrem uma ampla variedade de funcionalidades

Contras:

  • Faz suposições sobre o formato e a estrutura dos seus dados que talvez você não consiga acomodar
  • A biblioteca é apenas um wrapper JSNI, o que dificulta a depuração e a extensão
  • O futuro suporte e desenvolvimento da biblioteca é incerto
  • Ainda existem alguns problemas irritantes entre navegadores (especialmente com layouts)
  • A função de pesquisa em seus fóruns é essencialmente inútil. (Isso está se tornando um grande problema para mim> _ <)
Toji
fonte
6

NÃO use nenhum deles! Se você planeja desenvolver um aplicativo em larga escala, considere usar o padrão MVP. A melhor implementação ao redor é o framework MVP4G , ele suporta código GWT dividido fora da caixa. Existem muitos exemplos excelentes, você pode começar. O mais valioso é o Mvp4GModules.

beastieboy
fonte
5

Adicione o novo: GWT-Bootstrap :)

Não há uma versão estável no momento, mas em breve.

caarlos0
fonte
1
O GWT-Bootstrap tem o potencial de ser o melhor.
Mike
Exceto pela supervisão de projeto muito fundamental em áreas como guias e modais. Eles precisam reduzir sua dependência do JQuery e pensar em mais "aplicativo".
Καrτhικ
Patches são muito bem-vindos. Obrigado pela sugestão de qualquer maneira
caarlos0
4

Minha experiência mostra que sempre há muitos problemas com bibliotecas de terceiros. A melhor maneira - é usar a tecnologia bem conhecida e bem fabricada, além de seus próprios componentes. Pode levar mais tempo para escrevê-los e mantê-los, mas o TCO está sempre no nível mais baixo.

Bibliotecas de terceiros geralmente podem interromper seus planos inesperadamente. E é difícil encontrar e corrigir a fonte do problema.

Então, eu sugiro usar GWT simples.

Sergey Karpushin
fonte
3

Acho que SmartGWT é bom se você apenas deseja usar os Widgets como eles são, mas se você deseja estender ou modificar os widgets como eu faço no Gxt Scheduler , acho que o Ext-GWT é uma escolha melhor.

Rasmus
fonte
3

para mim EXT-GWT (aka GXT) é a melhor biblioteca disponível atualmente, eu uso-a em um projeto de 6 meses e ajuda muito com muitos componentes predefinidos, como grades, árvores ... É lindo também

aymen
fonte
3
Você deve estar brincando! Uso o GXT há 18 meses, diariamente, e posso dizer honestamente que é um pesadelo.
precisa
2

O SmartGWT é uma boa biblioteca e possui muitos exemplos, mas a interface do usuário não é tão elegante. Para a interface do usuário, o Ext GWT é bom.

Peter Mortensen
fonte
2

O grupo de usuários do gwt-mosaic não parece muito ativo e não consegui encontrar um manual do usuário além dos trechos da wiki. O gwt-mosaic me apresentou duas ferramentas interessantes.

1) O gwt-mosaic inclui um wrapper para o PageBus da Tibco, que é uma ferramenta de publicação / assinatura para as partes JS do seu aplicativo (manipuladores RPC, retornos de chamada de widget, configuradores de widget). Esta é uma alternativa ao barramento de eventos do gwt.

2) O gwt-mosaic incentiva o uso de Beans Binding (http://code.google.com/p/gwt-beans-binding/) para vincular dados a widgets e validar widgets.

O smartgwt não é barato para o conjunto completo de recursos e suporte. O jar é muito grande para o mecanismo de aplicativo, a menos que você remova os arquivos de tema que não usa. Eles também investem em engenharia no lado do servidor.

Ouvi dizer que ext-gwt é lento e os arquivos JS são grandes.

A incubadora de widgets gwt parece obsoleta. Acredito que a grade deluxe será lançada com o novo gwt.

A falta de padrões de aparência e aparência, ligação e validação está prejudicando a interoperabilidade das bibliotecas de widgets.

user978806
fonte
Não há nenhum problema do SmartGWT GAE com .jars grandes, a menos que você ignore as instruções de instalação nos documentos, na verdade, o SmartGWT Pro inclui um projeto de exemplo que é executado no GAE e fornece CRUD completo, usando JPA para persistência. Além disso, o preço baixo é relativo - a opção de licença e suporte mais cara oferecida ao SmartGWT ainda é uma parte insignificante do custo de entrega do aplicativo / produto geral quando se considera o custo dos desenvolvedores, controle de qualidade, hardware / hospedagem etc. Se você estiver com um orçamento apertado, há a versão gratuita (LGPL).
Charles Kendrick
2

Definitivamente não é SmartGWT. Sua estrutura é inchada e tem uma natureza muito pela metade. Eles têm um milhão de widgets, mas tentar fazê-los trabalhar no seu projeto não é fácil. As fontes de dados complicam o processo de gerenciamento de dados em grande escala, por exemplo, para acessar os dados na fonte de dados, você deve usar fecth e inspecionar com frequência. Embora você possa armazenar em cache os resultados, nem sempre é fácil interrogá-los.

RPC é outra área fraca e complicada. Há informações contraditórias na documentação e nos fóruns. Embora a documentação diga que você raramente deve usar uma operação personalizada como parte de um ds, o fórum deles informará que está perfeitamente bem. Aprender a usar essas ferramentas efetivamente é uma subida difícil nos melhores dias.

Eles venderão em excesso o produto. Por exemplo, o pacote de gráficos / análises contém gráficos ... Mas esses gráficos não exibem valores negativos ou permitem manipular os rótulos dos eixos de maneira significativa. E eles respondem abertamente a perguntas sobre isso no fórum com uma atitude "sim e daí". "Não planejamos adicionar isso a 3,0x, embora esse seja um dos nossos pontos de venda, esteja em nosso roteiro". Quando eles me venderam o pacote, nunca mencionaram que eu não podia exibir valores negativos. Realmente? Qual gráfico não precisaria ser capaz de mostrar valores negativos? Só consigo pensar em um - o que representa o número de clientes isomórficos insatisfeitos.

Fique longe desses caras e vá para o site de qualquer concorrente, por exemplo, ExtJS, JQuery, e até quxdoo. Existem alguns projetos por aí que realmente estão ganhando terreno e realmente oferecem uma boa solução.

Tenha muito cuidado se você avaliar este produto. Parece bom, mas cerca de duas semanas após o projeto usá-lo, você começará a entender o que quero dizer. Os widgets estão meio cozidos, as fontes de dados são extremamente complicadas e, só porque você pagou pelo suporte do fórum, não significa que você realmente terá algo além de snide, respostas condescendentes que no começo farão você pensar que perdeu alguma coisa. Você não é geralmente muito arrogante.

Boa sorte e fique longe deste produto se você valoriza o tempo de desenvolvimento e a capacidade de manutenção. Oh e uma última coisa. Veja o exemplo do MVC no site deles. Literalmente, nada tem a ver com o MVC que não seja o rótulo "MVC". Eles tentarão convencê-lo de que essas estruturas são para desenvolvedores inexperientes e que esse conceito não tem lugar na programação real ... Mais ou menos como aqueles que tentam pegar blocos.

binarygiant
fonte
Tudo bastante falso, como você pode verificar facilmente. Aqui está a amostra do MVC ( smartclient.com/smartgwt/showcase/#featured_smartgwt_mvc ) que esse usuário basicamente não entende - leia a descrição e você verá o tremendo poder sendo demonstrado. Eu não posso nem adivinhar o que significa ter que "buscar e inspecionar", mas provavelmente o usuário não leu o Guia Rápido e está usando o sistema incorretamente. Basta ler você mesmo ( smartclient.com/releases/SmartGWT_Quick_Start_Guide.pdf ) e a arquitetura é clara e auto-explicativa. Além disso, nossos gráficos traçam valores negativos.
Charles Kendrick
Sejamos honestos aqui. A versão estável atual do 3.0 não suporta números negativos e, por suas próprias palavras, eles se recusam a suportá-lo: forums.smartclient.com/showthread.php?t=21219 .
binarygiant
?? Esse segmento direciona um cliente para usar uma liberação de ponto (3.1). É gratuito, não é um upgrade, e é muito estável. Você tentou fazer isso soar como uma tentativa de vender em excesso ou extrair mais dinheiro, o que não é apenas falso, mas não poderia estar mais longe da verdade: basta olhar para todos os principais recursos novos que as pessoas estão obtendo de graça no 3.1 ( blog.isomorphic .com /… ). Você estava claramente sendo enganoso intencionalmente, o que esclarece seus outros comentários.
Charles Kendrick
Certamente não é minha intenção enganar. Em resposta, no entanto, direi que é enganoso destacar todos os excelentes recursos de um produto, neste caso o pacote de análise, mas de alguma forma deixar de fora que ele (na pré-3.1), de fato, não plotou números negativos. Além disso, a atualização para um 3 "dot" release é muito bem contanto que não há implementações CSS personalizado na versão 3.0, que destaca outro ponto onde trabalhar com SmartGWT é doloroso ...
binarygiant
1

A biblioteca padrão do Google é a biblioteca mais poderosa.

Ext GWT adiciona sinos e assobios, mas, além disso, é semelhante ao do Google.

Peter Mortensen
fonte
1

Atualmente, estamos gostando dos widgets do GWT Mosaic . Trabalhamos com ext-JS e lançamos nossos próprios widgets no passado. o licenciamento ext-JS e o volume em massa foram um problema para nós. Rolar o nosso próprio não é o que queremos fazer. Mosaic nos dá um meio termo feliz que gostamos de pensar que será um meio termo ainda mais feliz à medida que o projeto amadurece.

user124884
fonte
1

Eu diria que se você precisar de apenas alguns widgets, crie seu próprio. Você pode copiar e colar alguns conceitos das bibliotecas mencionadas. Mas todos eles não têm uma ou outra coisa. Eu brinquei com a maioria deles e abandonei todos.

Drejc
fonte
1

Uma coisa a ter em atenção é que, nos fóruns, o GWT-Ext parece que não será mais desenvolvido / mantido muito (talvez nem seja?). Em seu site, eles recomendam a migração para o SmartGWT .

Peter Mortensen
fonte
1

Não vi este mencionado, Vaadin (anteriormente conhecido como IT Mill Toolkit), mas talvez seja porque não é tecnicamente exatamente o GWT; como diz o FAQ :

Como isso difere do GWT?

Os aplicativos GWT são executados no navegador, enquanto os aplicativos Vaadin são executados no servidor. Na verdade, usamos o GWT como um "mecanismo de renderização" no lado do navegador, para que você possa combinar Vaadin e GWT.

Esko
fonte
1

O smartGWT é lento e faltam exemplos e é muito difícil encontrar respostas para as perguntas básicas, ou seja, ver todas as minhas perguntas não respondidas neste fórum. Estou despejando smartgwt.

codekitty
fonte
O SmartGWT é definitivamente um trabalho em andamento, mas está melhorando. Em duas ocasiões separadas, os desenvolvedores corrigem bugs no tronco poucos dias depois de eu relatá-los, o que é encorajador. É uma API grande e pesada, portanto, você deve se perguntar se corresponde ao aplicativo que está escrevendo.
AndrewR
O SmartGWT tem mais amostras do que qualquer uma das bibliotecas discutidas aqui. Isso é objetivamente verificável: ( smartclient.com/smartgwt/showcase/#main ) Também temos um guia de início rápido extremamente forte ( smartclient.com/releases/SmartGWT_Quick_Start_Guide.pdf ). Por favor, verifique as perguntas que este usuário fez - uma era inválida e uma que eu respondi.
Charles Kendrick
0

Comparação dos dois EXTs aqui com prós e contras.

usuario
fonte
0

Criamos um grande portal de RH e alguns aplicativos menores usando os portlets GWT . O foco do projeto não é tanto a construção de uma coleção de widgets, mas a criação de um modelo de programação simples.

A partir do site:

O GWT Portlets é uma estrutura da Web de código aberto gratuita para a criação de aplicativos GWT (Google Web Toolkit). Ele define um modelo de programação muito simples e produtivo, porém poderoso, para criar aplicativos GWT modulares de boa aparência.

O modelo de programação é um pouco semelhante à gravação de portlets JSR168 para um servidor de portal (Liferay, JBoss Portal etc.). O "portal" é seu aplicativo criado usando a estrutura GWT Portlets como uma biblioteca. A funcionalidade do aplicativo é desenvolvida como Portlets fracamente acoplados, cada um com um DataProvider opcional do lado do servidor.

David Tinker
fonte
0

Estou usando o GWT por um ano. Após muita pesquisa, decidi o GWT Mosaic como uma biblioteca de widgets. O Mosaic usa alguns dos componentes da incubadora GWT, como PagingScrollTable. Mas os recursos da caixa de combinação e da tabela não são suficientes para nós. É por isso que temos estendeu esses componentes para adicionar a funcionalidade necessária.

Gursel Koca
fonte
0

Confira SpiffyUI: www.spiffyui.org

Não é apenas uma biblioteca de widgets, mas uma estrutura complexa de UI / UX GWT.

Chuprin
fonte
0

Duas coisas importantes - e o que a maioria das bibliotecas perde - são testes e depuração de unidade. É onde brilha o GWT. Se você usa uma biblioteca baseada em vanilla js, você oferece a capacidade de testar a unidade e depurar seu projeto. Como desenvolvedor de GWT, você deve considerar esses pontos e usar uma biblioteca com nenhuma ou mínima dependência de js.

Şah-ı Merdan
fonte
0

Estamos desenvolvendo projetos gwt há mais de 2 anos e mantemos os widgets padrão. Criamos nossa própria biblioteca de código aberto para preencher automaticamente as padrão ou nossas próprias extensões de widget. Por favor, verifique, é chamado gwt-jet . É muito bem testado, pois o usamos em grandes ambientes de produção e esperamos que cresça com segurança ao longo do tempo.

Federico Pugnali
fonte