Est-il logique d'utiliser Google Web Toolkit (GWT) en tant que framework web Java complet?

StackOverflow https://stackoverflow.com/questions/744515

Question

Je suis intéressé par la possibilité que GWT pourrait servir de base pour toute ma couche de présentation.

Je serais intéressé de savoir si quelqu'un a essayé avec succès - ou sans succès - et ne pouvait persuader ou me unpersuade de tenter cela.

Était-ce utile?

La solution

J'ai travaillé avec GWT il y a environ un an. A l'époque, il semblait être une bonne idée, avec un certain nombre de mises en garde:

  • J'ai eu des problèmes « Gotcha » avec certaines parties de l'API, qui étaient probablement liés au fait que vous codez comme si vous êtes en java quand, en fait, vous écrivez en fait pour un environnement compilé séparément qui agit comme java, de sorte que vous faites des hypothèses incorrectes (dans ce cas, en passant des valeurs imbriquées à l'extrémité avant). Je pense qu'il y avait une autre réécrivait mes scripts fourmi d'utiliser une machine virtuelle 32 bits pour la compilation GWT.
  • J'ai passé un peu de temps à essayer de modifier l'apparence - nous ne avons jamais déployé un projet fini donc je ne suis pas sûr combien de travail cela aurait pris pour arriver à un niveau professionnel, mais il semblait (logiquement) comme elle « d être comparable à peaufinage une interface swing. peut-être un peu plus difficile à manier, visuellement, que le HTML.
  • Parce que la ajax est tellement caché de vous dans le produit final, j'ai eu quelques inquiétudes au sujet de ce que je pourrais faire si la performance était pauvre.

Cela étant dit, il semble vraiment la peine de jouer avec, et mes expériences ont été une longue, il y a longtemps dans les années Internet, en particulier étant donné qu'il est probablement beaucoup plus mature maintenant. Il est également intéressant de souligner qu'il est très différent (et rafraîchissant) façon de développer le code de l'interface graphique de la plupart des frameworks MVC, et vaut le détour si pour aucune autre raison que cela.

Mon sentiment est que si vous construisez un site professionnel de haute charge avec les exigences graphiques très exigeants GWT est probablement pas un bon choix, sinon ok.

Autres conseils

Vous avez mentionné que GWT gérerait la couche de présentation. Seriez-vous en train de faire la couche métier en Java aussi? Si tel est le cas, je voudrais vous diriger vers IT Mill Toolkit , qui fait exactement ceci: Il est une boîte à outils utilise GWT pour rendre ses composants de l'interface graphique, vous permettant de faire vos applications entièrement en Java. Je pense que le terme, il essaie de pièce est « serveur à l'AIR ».

Je viens d'un fond de PHP, mais instantanément venu à aimer la boîte à outils. Mais il est probablement mieux que je ne dirai rien de plus et laissez-vous faire vos propres décisions.

Désistement:. Je travaille au moulin, bien que ce soit hors de propos à mes opinions

GWT est relativement nouveau. Le processus de compilation tend à obtenir un peu lent que votre base de code se développe. Lorsque nous avons travaillé avec elle, nous avons trouvé de nombreux problèmes avec la mise en page et le rendu des widgets plus sophistiqués, et l'émulateur agissions totalement différent de serveurs réels. De plus, nous avons eu du mal avec i18n pour les langues de droite à gauche ...

Dans l'ensemble, GWT a (l'habituel?) Problèmes des jeunes technologies. Cependant, il ne fait certaines choses vraiment facile, comme Ajaxifying comme vous l'avez nommé.

Nous avons fait cela pour un très grand projet, et aussi longtemps que vous savez limites, c'est des forces et des faiblesses, il fonctionne très bien. présentation plaisamment était le moindre de nos tracas, comme nous venons de la peau, il juste comme vous le feriez pour tout autre page HTML, en utilisant CSS. Le projet a été mis en, et a couru parfaitement donc j'ai rien à redire.

Les pièges que j'ai trouvé avec elle vous pouvez trouver ici:

Biggest GWT Pitfalls?

Nous avons développé une application de portail RH avec toute la couche de présentation faite en GWT. Le back-end est le printemps. Tout fonctionne très bien et l'interface utilisateur a été très bien accueillie par les utilisateurs. Très important, il est facile pour nous d'ajouter de nouvelles fonctionnalités et de maintenir l'application. Je pense que ce serait beaucoup plus difficile de faire quelque chose de comparable et maintenable en utilisant les bibliothèques Javascript.

Vous avez besoin d'une sorte de cadre côté client ou vous finirez par écrit un (comme nous!): Notre application est construite sur de GWT portlets (source libre et ouvert).

Nous utilisons des fragments HTML pour écorcher l'application pour différents déploiements et la mise en page de chaque « page » est stockée dans un fichier XML.

GWT dans son auto est une bibliothèque d'amélioration de l'interface utilisateur, et non pas un cadre. Si vous l'utilisez avec Google App Engine vous avez alors un cadre de base. (C'est une autre histoire, et pendant que je regardais, j'ai décidé de ne pas inclure cela dans notre architecture).

Il est une grande bibliothèque, nous avons fait des choses spectaculaires avec elle. Comme il est une bibliothèque mais il est aussi bon que votre architecture lui permet d'être.

En ce qui concerne ANT va pas de problème avec un compilateur 64 bits.

<- dir.GWTCompile est le répertoire contenant GWT ->      classpath                            

En ce qui concerne le code généré, il est tout ce qu'il ya dans votre guerre si vous voulez regarder à travers elle. (Il est également open source, donc vous pouvez regarder là-bas.)

Qu'est-ce que GWT fait au cours du processus de compilation: Il crée plusieurs copies de bibliothèques JS pour différents ensembles de navigateur (Une raison pour laquelle il peut prendre quelques minutes pour compiler), vous pouvez ajouter / supprimer au besoin ceux-ci. Cela réduit le paquet JS qui doit être téléchargé et augmente la vitesse car il n'a pas besoin d'avoir ces méchants si (EI) ce else if (FF) qui. Toutefois, lorsque vous faites le débogage local (au moins dans l'éclipse) vous ne devez pas attendre, ce qui permet de laisser que le serveur de build (ou lorsque vous avez besoin pour construire et déployer manuellement (Néandertaliens)).

L'inconvénient de GWT. Comme il est un côté client javascript (presque uniquement), vous ne pouvez pas l'utiliser pour des choses qui ne supportent pas ou prennent en charge l'une des versions. Donc, pour des choses comme les iPads et les iPhones, vous pouvez rencontrer quelques problèmes si vous n'utilisez pas des bibliothèques supplémentaires conçues pour combler ces lacunes (comme mgwt).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top