Meilleure bibliothèque de widgets GWT? [fermé]


134

Question pour tous les gourous de GWT - quelle est la meilleure bibliothèque de widgets GWT? Et pourquoi?

Liste basée sur les réponses:

И наконец- новое поколение основанное на JsInterop :


Avez-vous oublié d'inclure gwt-mosaic dans la liste?
Ashwin Prabhu

2
Cette question n'était pas spécifique sur les exigences, donc de manière prévisible, le plus visible (GWT de base) a été voté même s'il ne répond pas à toutes les exigences. Si vous avez une application d'entreprise complexe avec de nombreux écrans et un volume de données élevé et que vous avez besoin de grilles et d'éditeurs puissants, c'est à cela que sert SmartGWT. Plain GWT est idéal pour de nombreuses applications, mais de nombreuses entreprises ayant cet ensemble d'exigences spécifiques évaluent GWT et décident que SmartGWT est la meilleure solution. Pour obtenir un aperçu et décider par vous-même, lisez le Guide de démarrage rapide. smartclient.com/releases/SmartGWT_Quick_Start_Guide.pdf
Charles Kendrick

il vous manque gwt-bootstrap
caarlos0

J'ai créé une proposition de site pour donner à des questions comme celle-ci une maison officielle loin de Stack Overflow. Cela s'appelle Recommandations de code Aidez à en faire une réalité en vous joignant et en posant des questions maintenant!
daviewales

Cela semble également prometteur: gwt-material-demo.herokuapp.com
kozla13

Réponses:


52

Ne vous liez à AUCUNE de ces bibliothèques. Utilisez Vanilla GWT pour créer la structure de votre projet. En particulier, utilisez le modèle MVP et un bus d'événements. Veuillez consulter l'article Google pour savoir comment concevoir au mieux votre application client avec GWT: Créer des applications MVP

Ensuite, vous pouvez utiliser n'importe quel widget de ces bibliothèques (par exemple une table, ou une liste déroulante, un sélecteur de date, etc.) et l'incorporer à votre projet. Essayez d'utiliser des composants étendus UNIQUEMENT si vous ne voyez pas de moyen de le faire avec vanilla GWT. De cette façon, vous ne vous attachez pas à ces bibliothèques qui sont TOUJOURS pénibles lorsque vous essayez de faire quelque chose qui n'apparaît pas dans l'application de démonstration, contient de nombreux bogues et leur support est au mieux médiocre.

Comment rechercher des widgets doit suivre cet ordre:

Attention aux autres bibliothèques, j'ai travaillé avec elles (et j'ai encore des cauchemars).


1
Des expériences spécifiques avec d'autres bibliothèques que vous aimeriez partager?
Adam

6
GXT, je ne le recommanderais pas à mon pire ennemi. Si vous y réfléchissez, veuillez d'abord le rechercher sur Google et assurez-vous de savoir où vous vous engagez. SmartGWT, un wrapper JS, très moche. Fuyez loin de là. J'ai de l'expérience avec les deux dans un vrai projet. J'ai d'abord utilisé SmartGWT, mais ses limites m'ont poussé à passer au GXT. J'ai vite découvert le désordre qu'ils avaient là-bas avec les liaisons de formulaires et les génériques java (Jésus, à chaque fois que je me souviens ...) Je ne sais pas ce qui est pire! Je l'ai fini, oui, mais j'ai énormément souffert. Après cela, j'ai appris à utiliser vanilla GWT et seulement le widget que j'aimais des autres bibliothèques.
monzonj

Cet article est ancien et de par sa nature datera, mais j'ai beaucoup utilisé GXT au cours des 2 dernières années et même s'il a des problèmes, il permet également la création de très belles applications avec une relative facilité. Il a des grilles très utiles, des grilles tamponnées et des grilles dynamiques. SmartGWT a également des grilles et des composants bien présentés. Pensez également à Vaadin .
Carl Pritchett

43

Cela dépend de ce que vous entendez par «meilleur». Le plus beau? Meilleure API? Idéal pour répondre à vos propres besoins personnalisés?

Par exemple, j'étais juste en train d'évaluer les classes de table à utiliser dans notre application. Nous utilisons GWT-Ext, mais cela pose de nombreux problèmes de performances et il est très difficile de dimensionner les tables comme nous en avons besoin. Je suis venu très près d' utiliser GWT-Mosaic , mais j'ai plutôt décidé de développer les widgets de l' incubateur GWT .

Alors, pourquoi ai-je fait ce choix? Il semble que trop de bibliothèques viennent avec leur propre bagage, faute d'un meilleur mot. Soit vous devez plonger dans un cadre MVC (qui peut ne pas être entièrement compatible avec le reste de votre base de code), soit vous devez adopter le nouveau système de mise en page de quelqu'un, ou vous devez vivre avec le fait que vous ne pouvez pas vraiment déboguer le code (car ce n'est que des wrappers JSNI).

Ne vous méprenez pas, l'incubateur GWT n'est pas parfait ... les widgets y sont dans une certaine quantité de flux. Dans mon cas, c'était le meilleur choix, cependant. Cela me donne du bien (mais certainement pas parfait):

  • API
  • Extensibilité
  • Look and feel (enfin, c'est un peu faible, mais c'est à cela que sert CSS.)

Donc ... la réponse (pour moi) est une combinaison de:

  • Widgets GWT de stock (avec beaucoup de style personnalisé)
  • Tables d'incubateur GWT
  • Quelques widgets locaux

(Je devrais ajouter: le "bagage" auquel je fais référence n'est pas nécessairement une mauvaise chose. Mais si vous voulez juste un widget ou deux, cela peut élever la barre sur ce qu'il faut juste pour faire votre travail et comment bonne application regarde.)


La plupart des bibliothèques de widgets nécessitent une licence en raison de la dépendance à une bibliothèque AJAX externe. Cela ajoute également une taille supplémentaire à votre solution. Notez également que la plupart des bibliothèques de widgets dépendent d'un ou plusieurs composants externes supplémentaires.
IgorM


10

GWT seul est une très bonne bibliothèque.

Je n'ai pas utilisé tous ceux mentionnés mais je peux recommander Ext GWT .


2
Je suis d'accord avec GWT nu. En plus des projets d'incubateur ( code.google.com/p/google-web-toolkit-incubator ), vous pouvez tout mettre en œuvre. J'ai utilisé MyGwt mais ça craint quand ils ont arrêté le projet et changé son nom et tous les forums et support, la licence est changée
Robert Childan

1
Cela doit être terrible. Ce n'est pas une manière très pratique de maintenir un logiciel.
DragonBorn

9

Je préfère la vanille GWT. Certaines des autres API sont jolies et leurs vitrines montrent vraiment les widgets, mais je trouve toujours que les performances ne sont pas les meilleures ... quand je dis performances, je veux dire plus comme le temps de réponse. Je déteste quand une application semble lente.


8

La plupart des bibliothèques mentionnées ne sont pas open source et pire encore: ne sont que des wrappers au-dessus d'une bibliothèque JavaScript. La puissance de GWT réside dans le fait que l'application fonctionne sur différents navigateurs (en raison de la génération de code pour les "gros" navigateurs en particulier). Ces bibliothèques sous-jacentes JavaScript peuvent poser de nombreux problèmes.

Je suis d'accord avec jgindin GWT Incubator et GWT Mosaic sont les meilleurs à ce jour.


Très trompeur. Presque toutes les bibliothèques répertoriées sont open source avec des licences commerciales conviviales (Apache, BSD, LGPL) à l'exception de ExtGWT (GPL). De plus, même dans l'ensemble très limité de composants actuellement fournis, GWT a de nombreux bogues entre navigateurs - recherchez simplement leur base de données de bogues pour le vérifier. Le compilateur GWT n'est pas magique et ne corrige pas automatiquement les bogues de mise en page du navigateur étranges, spécifiques à une situation, etc. - ils doivent les contourner comme n'importe quel autre framework. Ils ne sont pas non plus toujours à la pointe de la technologie - ils n'ont pas annoncé de support officiel pour iPhone ou Android, SmartGWT l'a fait.
Charles Kendrick

7

Je ne dis pas que c'est "le meilleur", mais j'utilise GWT-Ext au travail ces derniers temps. Il a des avantages et des inconvénients:

Avantages:

  • Relativement facile à installer et à utiliser
  • Communauté de taille décente derrière
  • BEAUCOUP d'exemples en ligne, tous accompagnés d'un code
  • Bonne sélection de widgets qui couvrent un large éventail de fonctionnalités

Les inconvénients:

  • Fait des hypothèses sur le format et la structure de vos données que vous ne pourrez peut-être pas prendre en compte
  • La bibliothèque n'est qu'un wrapper JSNI, ce qui rend plus difficile le débogage et l'extension
  • Le support et le développement futurs de la bibliothèque sont incertains
  • Certains problèmes gênants entre navigateurs existent toujours (en particulier avec les mises en page)
  • La fonction de recherche sur leurs forums est essentiellement inutile. (Cela devient une de mes bêtes noires> _ <)

6

N'en utilisez aucun! Si vous envisagez de développer une application à grande échelle, vous devez envisager d'utiliser le modèle MVP. La meilleure implémentation est le framework MVP4G , il prend en charge le fractionnement de code GWT prêt à l'emploi . Vous pouvez commencer par de nombreux exemples intéressants. Le plus précieux est Mvp4GModules.


5

Ajoutez le nouveau: GWT-Bootstrap :)

Il n'y a pas de version stable pour le moment, mais elle l'aura bientôt.


1
GWT-Bootstrap a le potentiel d'être le meilleur.
Mike

Sauf pour une supervision de conception très fondamentale dans des domaines tels que les onglets et les modaux. Ils doivent réduire leur dépendance à JQuery et penser davantage aux «applications».
Καrτhικ

Les patchs sont les bienvenus. Merci pour la suggestion quand même
caarlos0

4

Mon expérience montre qu'il y a toujours de nombreux problèmes avec les bibliothèques tierces. Le meilleur moyen est d'utiliser une technologie bien connue et bien conçue elle-même ainsi que vos propres composants. Leur rédaction et leur maintenance peuvent prendre plus de temps, mais le TCO est toujours à un niveau inférieur.

Les bibliothèques tierces peuvent souvent casser vos plans de manière inattendue. Et il est difficile de trouver et de résoudre la source du problème.

Je suggère donc d'utiliser le GWT ordinaire.


3

Je pense que SmartGWT convient si vous souhaitez simplement utiliser les widgets tels quels, mais si vous souhaitez étendre ou modifier les widgets comme je le fais dans le planificateur Gxt, je pense qu'Ext -GWT est un meilleur choix.


3

pour moi EXT-GWT (aka GXT) est la meilleure librairie actuellement disponible, je l'utilise en projet de 6 mois, et ça aide beaucoup avec de nombreux composants prédéfinis comme des grilles, des arbres .... C'est beau aussi


3
Tu te moques de moi! J'utilise GXT depuis 18 mois au quotidien et je peux honnêtement dire que c'est un cauchemar.
Alex Worden

2

SmartGWT est une bonne bibliothèque et elle contient de nombreux exemples, mais l'interface utilisateur n'est pas si élégante. Pour l'interface utilisateur, Ext GWT est bon.


2

Le groupe d'utilisateurs de gwt-mosaic ne semble pas très actif et je n'ai pas trouvé de manuel d'utilisation en plus des extraits de wiki. gwt-mosaic m'a présenté deux outils intéressants.

1) gwt-mosaic inclut un wrapper pour PageBus de Tibco qui est un outil de publication / abonnement pour les parties JS de votre application (gestionnaires RPC, rappels de widget, setters de widget). C'est une alternative au bus événementiel de gwt.

2) gwt-mosaic encourage l'utilisation de Beans Binding (http://code.google.com/p/gwt-beans-binding/) pour lier les données aux widgets et valider les widgets.

smartgwt n'est pas bon marché pour l'ensemble des fonctionnalités et le support. Le fichier jar est trop volumineux pour appengine, sauf si vous supprimez les fichiers de thème que vous n'utilisez pas. Ils investissent également dans l'ingénierie côté serveur.

J'ai entendu dire qu'ext-gwt est lent et que les fichiers JS sont volumineux.

L'incubateur de widgets gwt semble obsolète. Je crois que la grille de luxe sera publiée avec le nouveau gwt.

Le manque de normes d'apparence, de liaison et de validation entrave l'interopérabilité des bibliothèques de widgets.


Il n'y a pas de problème SmartGWT GAE avec les fichiers .jars volumineux, sauf si vous ignorez les instructions d'installation de la documentation.En fait, SmartGWT Pro comprend un exemple de projet qui s'exécute sur GAE et fournit un CRUD complet, en utilisant JPA pour la persistance. De plus, bon marché est relatif - l'option de licence et de support la plus chère proposée pour SmartGWT représente toujours une partie négligeable du coût de livraison de l'application / du produit global lorsque le coût des développeurs, de l'assurance qualité, du matériel / hébergement, etc. est pris en compte. Si vous avez un budget limité, il existe la version gratuite (LGPL).
Charles Kendrick

2

Certainement pas SmartGWT. Leur charpente est gonflée et a un caractère très semi-cuit. Ils ont un million de widgets, mais essayer de les faire fonctionner pour votre projet n'est pas facile. Les sources de données compliquent le processus de gestion de vos données de manière très importante, par exemple, pour accéder aux données de votre source de données, vous devez utiliser fecth et inspecter souvent. Bien que vous puissiez mettre en cache les résultats, il n'est pas toujours facile de les interroger.

RPC est un autre domaine faible et alambiqué. Il y a des informations contradictoires dans la documentation et dans les forums. Alors que la documentation dira que vous devriez rarement utiliser une opération personnalisée dans le cadre d'un ds, le forum vous dira que c'est parfaitement bien. Apprendre à utiliser ces outils efficacement est une montée difficile les meilleurs jours.

Ils vendront trop le produit. Par exemple, le package graphique / analytique contient des graphiques ... Mais ces graphiques n'afficheront pas de valeurs négatives ou ne vous permettront pas de manipuler les étiquettes d'axe de manière significative. Et ils répondent ouvertement aux questions à ce sujet sur le forum avec une attitude "ouais alors quoi". "Nous ne prévoyons pas d'ajouter cela à 3.0x, même si c'est l'un de nos arguments de vente, c'est sur notre feuille de route." Lorsqu'ils m'ont vendu le colis, ils n'ont jamais mentionné que je ne pouvais pas afficher de valeurs négatives. Vraiment? Quel graphique n'aurait pas besoin de pouvoir afficher des valeurs négatives? Je ne peux penser qu'à un seul - celui qui représente le nombre de clients isomorphes mécontents.

Éloignez-vous de ces types et rendez-vous sur le site de n'importe quel concurrent, par exemple ExtJS, JQuery, diable même quxdoo. Il existe quelques projets qui gagnent vraiment du terrain et offrent en fait une bonne solution.

Soyez très prudent si jamais vous évaluez ce produit. Cela a l'air bien, mais environ deux semaines après le projet, vous commencerez à voir ce que je veux dire. Les widgets sont à moitié cuits, les sources de données sont extrêmement compliquées, et ce n'est pas parce que vous avez payé pour le support du forum que vous obtiendrez en fait autre chose que des réponses sournoises et condescendantes qui au début vous feront penser que vous avez manqué quelque chose. Vous n'avez pas, ils sont généralement très arrogants.

Bonne chance et éloignez-vous de ce produit si vous appréciez votre temps de développement et votre maintenabilité. Oh, et une dernière chose. Regardez l'exemple MVC sur leur site Web. Il n'a littéralement rien à voir avec MVC autre que l'étiquette lit «MVC». Ils essaieront de vous convaincre que de tels frameworks sont destinés aux développeurs inexpérimentés, et qu'un tel concept n'a pas sa place dans la vraie programmation ... Un peu comme ceux qui essaient des blocs catch.


Tout cela est tout à fait faux, comme vous pouvez facilement le vérifier. Voici l'exemple MVC ( smartclient.com/smartgwt/showcase/#featured_smartgwt_mvc ) que cet utilisateur ne comprend pas - lisez la description et vous verrez l'énorme puissance démontrée. Je ne peux même pas deviner ce que signifie «chercher et inspecter», mais il est fort probable que l'utilisateur n'a pas lu le guide de démarrage rapide et utilise le système à tort. Lisez-le vous-même ( smartclient.com/releases/SmartGWT_Quick_Start_Guide.pdf ) et l'architecture est claire et explicite. De plus, nos graphiques représentent des valeurs négatives.
Charles Kendrick

Soyons honnêtes ici. La version stable actuelle de 3.0 ne prend pas en charge les nombres négatifs, et dans leurs propres mots, ils refusent de la prendre en charge: forums.smartclient.com/showthread.php?t=21219 .
binarygiant


?? Ce fil demande à un client d'utiliser une version dot (3.1). C'est gratuit, pas une mise à jour, et c'est très stable. Vous avez essayé de donner l'impression que cela ressemblait à une tentative de survente ou d'extraire plus d'argent, ce qui est non seulement faux, mais ne pouvait pas être plus éloigné de la vérité: il suffit de regarder toutes les nouvelles fonctionnalités majeures que les gens obtiennent gratuitement dans la version 3.1 ( blog.isomorphic .com /… ). Vous étiez manifestement intentionnellement trompeur, ce qui éclaire vos autres commentaires.
Charles Kendrick

Je n’ai certainement pas l’intention d’induire en erreur. En réponse, cependant, je dirai qu'il est trompeur de mettre en évidence toutes les grandes fonctionnalités d'un produit, dans ce cas le package d'analyse, mais en quelque sorte omettre qu'il n'a pas (avant 3.1), en fait, tracer des nombres négatifs. De plus, la mise à niveau vers une version 3 "dot" est très bien tant qu'il n'y a pas d'implémentations CSS personnalisées dans la version 3.0, ce qui met en évidence un autre point où travailler avec SmartGWT est pénible ...
binarygiant

1

La bibliothèque par défaut de Google est la bibliothèque la plus puissante.

Ext GWT ajoute des cloches et des sifflets, mais à part cela, il est similaire à celui de Google.


1

Nous aimons actuellement les widgets GWT Mosaic . Nous avons travaillé avec ext-JS et nous avons lancé nos propres widgets dans le passé. Les licences ext-JS et le volume étaient un problème pour nous. Rouler le nôtre n'est pas ce que nous voulons faire. Mosaic nous donne un juste milieu qui, nous aimons à penser, sera un terrain d'entente encore plus heureux à mesure que le projet mûrit.


1

Je dirais que si vous n'avez besoin que de quelques widgets, créez le vôtre. Vous pouvez copier-coller certains concepts des bibliothèques mentionnées. Mais ils manquent tous de l'un ou de l'autre. J'ai joué avec la plupart d'entre eux et j'ai abandonné tout le monde.


1

Une chose à savoir est que sur les forums, GWT-Ext semble ne plus être développé / maintenu beaucoup (peut-être pas du tout?). Sur leur site Web, ils recommandent de migrer vers SmartGWT .


1

Je n'ai pas vu celui-ci mentionné, Vaadin (anciennement connu sous le nom de IT Mill Toolkit), mais c'est peut-être parce que ce n'est pas techniquement exactement GWT; comme le dit leur FAQ :

En quoi cela diffère-t-il de GWT?

Les applications GWT s'exécutent dans le navigateur, tandis que les applications Vaadin s'exécutent sur le serveur. Nous utilisons en fait GWT comme "moteur de rendu" du côté navigateur, vous pouvez donc combiner Vaadin et GWT.


1

smartGWT est lent et les exemples manquent et il est très difficile de trouver des réponses même aux questions de base, c'est-à-dire voir toutes mes questions sans réponse sur ce forum. Je vide smartgwt.


SmartGWT est définitivement un travail en cours, mais il s'améliore. À deux reprises, les développeurs ont corrigé des bogues dans le coffre quelques jours après que je les ai signalés, ce qui est encourageant. C'est une API grosse et lourde, vous devez donc vous demander si elle correspond à l'application que vous écrivez.
AndrewR

SmartGWT a plus d'exemples que n'importe laquelle des bibliothèques discutées ici. Ceci est objectivement vérifiable: ( smartclient.com/smartgwt/showcase/#main ) Nous avons également un guide de démarrage rapide extrêmement solide ( smartclient.com/releases/SmartGWT_Quick_Start_Guide.pdf ). Veuillez regarder les questions posées par cet utilisateur - l'une était invalide, l'autre à laquelle j'ai répondu.
Charles Kendrick


0

Nous avons construit un grand portail RH et quelques applications plus petites à l'aide de portlets GWT . L'objectif du projet n'est pas tant de créer une collection de widgets que de créer un modèle de programmation simple.

Depuis le site Web:

GWT Portlets est un framework Web open source gratuit pour la création d'applications GWT (Google Web Toolkit). Il définit un modèle de programmation très simple et productif, mais puissant pour créer de belles applications GWT modulaires.

Le modèle de programmation est quelque peu similaire à l'écriture de portlets JSR168 pour un serveur de portail (Liferay, JBoss Portal, etc.). Le «portail» est votre application créée en utilisant le framework GWT Portlets comme bibliothèque. La fonctionnalité d'application est développée sous forme de portlets faiblement couplés, chacun avec un DataProvider côté serveur en option.


0

J'utilise GWT depuis un an. Après de nombreuses recherches, j'ai choisi GWT Mosaic comme bibliothèque de widgets. Mosaic utilise certains des composants de l'incubateur GWT tels que PagingScrollTable .. Mais les fonctionnalités de la combobox et de la table ne sont pas suffisantes pour nous. C'est pourquoi, nous avons étendu ces composants pour ajouter les fonctionnalités nécessaires.



0

Deux choses importantes - et ce que la plupart des bibliothèques manquent - sont les tests unitaires et le débogage. C'est là que GWT brille. Si vous utilisez une bibliothèque basée sur vanilla js, vous donnez la possibilité de tester et de déboguer votre projet unitaire. En tant que développeur GWT, vous devez tenir compte de ces points et utiliser une bibliothèque avec une dépendance js nulle ou minimale.


0

Nous faisons des projets gwt depuis plus de 2 ans, et nous nous en tenons aux widgets par défaut. Nous avons créé notre propre bibliothèque open source pour remplir automatiquement celles par défaut ou nos propres extensions de widget. Veuillez le vérifier, il s'appelle gwt-jet . Il est très bien testé car nous l'utilisons dans de grands environnements de production, et nous espérons qu'il se développera en toute sécurité au fil du temps.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.