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:
- Défaut
- Sencha GXT
- GWT intelligent
- Vaadin
- GWT-Bootstrap
- GwtBootstrap3
- Rocket GWT (inactif)
- Tatami (inactif)
- ErraiFramework
- GWTMaterialDesign
И наконец- новое поколение основанное на JsInterop :
Réponses:
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).
la source
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):
Donc ... la réponse (pour moi) est une combinaison de:
(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 source
Voir cette bibliothèque de composants GWT Bootstrap c'est une implémentation dans gwt de Twitter Bootstrap.
la source
GWT seul est une très bonne bibliothèque.
Je n'ai pas utilisé tous ceux mentionnés mais je peux recommander Ext GWT .
la source
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.
la source
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.
la source
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:
Les inconvénients:
la source
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.
la source
Ajoutez le nouveau: GWT-Bootstrap :)
Il n'y a pas de version stable pour le moment, mais elle l'aura bientôt.
la source
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.
la source
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.
la source
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
la source
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.
la source
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.
la source
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.
la source
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.
la source
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.
la source
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.
la source
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 .
la source
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 :
la source
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.
la source
Comparaison des deux EXT ici avec les avantages et les inconvénients.
la source
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.
la source
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.
la source
Découvrez SpiffyUI: www.spiffyui.org
Ce n'est pas seulement une bibliothèque de widgets, mais un cadre complexe UI / UX GWT.
la source
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.
la source
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.
la source