189 votes

Les plus grands pièges de GWT ?

Je suis au début/milieu d'un projet que nous avons choisi de mettre en œuvre en utilisant GWT. Quelqu'un a-t-il rencontré des écueils majeurs dans l'utilisation de GWT (et GWT-EXT) qui n'ont pas pu être surmontés ? Et du point de vue des performances ?

Voici quelques exemples de ce que nous avons déjà vu/entendu :

  • Google ne parvient pas à indexer le contenu
  • Les CSS et le stylisme en général semblent être un peu instables.

Je suis également à la recherche de tout commentaire supplémentaire sur ces articles. Merci.

10voto

Miguel Ping Points 9013

Je vais ajouter quelques points à ceux déjà mentionnés :

  • Liaison de données/validation. GWT n'a pas de support de liaison de données/validation dans la boîte, bien qu'il y ait quelques projets dans ce domaine qui commencent à émerger. Vous vous retrouverez à écrire beaucoup de choses de ce genre :

    TextField fname, faddress; ... fname.setText(person.getName()); faddress.setText(person.getAddress()); ...

  • Chargement paresseux. Puisque gwt est du côté client, le chargement paresseux n'est pas vraiment une option. Vous devrez concevoir vos RPCs et vos objets de domaine avec soin afin de

    • envoyez toutes les données de vos objets qui sont nécessaires
    • éviter de récupérer toutes vos données de manière avide
    • Vous devrez également vous assurer que vous n'enverrez pas de proxies/objets non sérialisables. hibernation4gwt peut vous aider sur ces points.
  • Conception de l'interface utilisateur. Il est plus difficile de visualiser une interface utilisateur en java (panneaux, boutons, etc.) qu'en html.

  • Soutien à l'histoire. GWT n'est pas livré avec un sous-système d'historique, ni avec aucun sous-système pour des urls agréables ou des marque-pages avec état. Vous devrez créer le vôtre (bien qu'il ait un support pour les jetons d'historique, ce qui est un début). Cela arrive avec toutes les boîtes à outils AJAX AFAIK.

IMHO, GWT manque d'un cadre qui a un support immédiat pour tous les problèmes mentionnés sur ce "fil".

9voto

JP Richardson Points 11920

Je travaille actuellement sur un projet qui utilise EXT GWT (GXT) à ne pas confondre avec GWT EXT. Il y a une différence, EXT GWT est celui qui est actuellement produit par la société qui a écrit ExtJS la bibliothèque javascript. GWT EXT est une enveloppe GWT autour de la bibliothèque ExtJS. GXT est GWT natif.

Quoi qu'il en soit, GXT est encore un peu immature et manque d'une communauté solide que je sens que GWT EXT a. Cependant, l'avenir est avec GXT, car c'est du GWT natif et développé par la société qui a fait ExtJS. GWT EXT est quelque peu handicapé par le changement de licence de la bibliothèque ExtJS, ce qui ralentit le développement de GWT EXT.

Globalement, je pense que GWT/GXT est une bonne solution pour développer une application web. En fait, j'aime bien le mode hébergé pour le développement, il rend les choses rapides et faciles. Vous avez également l'avantage de pouvoir déboguer votre code. Les tests unitaires avec JUnit sont également très solides. Je n'ai pas encore vu un grand cadre de test unitaire JavaScript que j'ai jugé suffisamment mature pour tester une application d'entreprise.

Pour plus d'informations sur GWT EXT : http://gwt-ext.com/

Pour plus d'informations sur EXT GWT (GXT) : http://extjs.com/products/gxt/

5voto

Michael Neale Points 7704

Pas d'écueils majeurs que je n'ai pas pu surmonter facilement. Utilisez fortement le mode hébergé. Comme vous utilisez GWT-ext, vous n'aurez presque jamais besoin de toucher aux CSS vous-même, à moins que vous ne vouliez modifier l'apparence de la boîte.

Ma recommandation est d'utiliser un widget GWT "natif" plutôt qu'un widget de bibliothèque lorsqu'ils sont proches en termes de fonctionnalités.

En ce qui concerne l'indexation par les moteurs de recherche : oui, le site n'aura pas d'URL navigables normalement (à moins que vous ne fassiez qu'ajouter des widgets à des éléments d'un site Web ordinaire). Vous pouvez cependant utiliser la fonctionnalité d'historique avant/arrière.

4voto

Ace Points 3076

J'ai utilisé GWT et GWT-ext ensemble sur un projet il y a quelque temps. J'ai trouvé l'expérience assez fluide en ce qui concerne le développement web, mais mon conseil serait le suivant :

Ne mélangez pas les widgets natifs GWT avec les widgets EXT. C'est très déroutant, car les noms sont généralement les mêmes (GWT.Button ou GWText.Button ?).

Une chose qui m'est arrivée et qui a vraiment rendu le code plus complexe que je ne l'aurais voulu, c'est que je voulais un Panel qui était a) actualisable dynamiquement b) cascadable

Les panneaux natifs GWT sont dynamiques, les panneaux Ext sont cascadables. Solution ? Un GWT.VerticalPanel enveloppant un GWTExt Panel... Chaos. :)

Mais bon, ça marche. ;)

4voto

Gregg Points 829

Je soutiens le commentaire de ykagano, le plus gros inconvénient est de perdre le V en MVC. Bien que vous puissiez séparer la véritable classe d'interface utilisateur du reste de votre code côté client, vous ne pouvez pas facilement utiliser une page HTML générée par un graphiste/concepteur Web. Cela signifie que vous avez besoin d'un développeur pour traduire le HTML en java.

Procurez-vous un éditeur d'interface utilisateur wysiwyg, il vous fera gagner beaucoup de temps. J'utilise GWTDesigner.

Le plus grand avantage de GWT est de pouvoir oublier les problèmes de croisement de navigateurs. Ce n'est pas à 100% mais cela supprime presque toute la douleur. Combiné avec l'avantage du débogage en mode hébergé (par opposition à Firebug qui est excellent mais pas le même qu'un débogueur java), cela donne au développeur un énorme avantage pour générer des applications ajax complexes.

Oh et il est rapide à l'exécution, surtout si vous utilisez un filtre gzip.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X