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:
- Padrão
- Sencha GXT
- Smart GWT
- Vaadin
- GWT-Bootstrap
- GwtBootstrap3
- GWT de foguete (inativo)
- Tatami (inativo)
- ErraiFramework
- GWTMaterialDesign
Para obter mais informações sobre o JsInterop, consulte JsInterop :
Respostas:
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).
fonte
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):
Então ... a resposta (para mim) é uma combinação de:
(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.)
fonte
Consulte esta biblioteca de componentes. GWT Bootstrap, esta é uma implementação no gwt do Twitter Bootstrap.
fonte
Somente o GWT é uma biblioteca muito boa.
Não usei todos os mencionados, mas posso recomendar o Ext GWT .
fonte
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.
fonte
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.
fonte
Não estou dizendo que é "o melhor", mas tenho usado o GWT-Ext no trabalho recentemente. Tem alguns prós e contras:
Prós:
Contras:
fonte
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.
fonte
Adicione o novo: GWT-Bootstrap :)
Não há uma versão estável no momento, mas em breve.
fonte
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.
fonte
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.
fonte
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
fonte
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.
fonte
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.
fonte
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.
fonte
A biblioteca padrão do Google é a biblioteca mais poderosa.
Ext GWT adiciona sinos e assobios, mas, além disso, é semelhante ao do Google.
fonte
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.
fonte
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.
fonte
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 .
fonte
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 :
fonte
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.
fonte
Comparação dos dois EXTs aqui com prós e contras.
fonte
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.
fonte
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.
fonte
Confira SpiffyUI: www.spiffyui.org
Não é apenas uma biblioteca de widgets, mas uma estrutura complexa de UI / UX GWT.
fonte
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.
fonte
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.
fonte