Question

Je voudrais créer une application Web AJAX interactive basée sur une base de données et dotée d'un système de calendrier personnalisé (type spécifique d'événements, édition).Cela impliquerait beaucoup de JavaScript et d'AJAX, et j'ai pensé à Google Web Toolkit pour l'interface et à Ruby on Rails pour le côté serveur.

Google Web Toolkit est-il fiable et performant ?Quels pourraient être les risques cachés si je choisissais Google Web Toolkit ?Peut-on facilement le combiner avec Ruby on Rails côté serveur ?Ou dois-je essayer d'utiliser directement une bibliothèque JavaScript comme jQuery ?

Je n'ai aucune expérience en développement Web sauf un peu de HTML, mais je suis un programmeur expérimenté (c++, java, c#) et j'aimerais utiliser uniquement des outils gratuits pour ce projet.

Était-ce utile?

La solution

RoR est en fait l'une des choses avec lesquelles GWT est conçu pour bien fonctionner, tant que vous utilisez REST correctement.C'est dans le livre Google Web Toolkit Applications, et vous pouvez voir une démo du livre utilisant ce genre d'idée. ici.Cela ne veut pas dire que vous n’aurez aucun problème, mais je pense que le support est définitivement disponible.

Il existe un projet intéressant pour rendre RoR/GWT facile que vous pouvez trouver ici (Licence MIT).Je n'ai pas encore eu l'occasion de l'essayer, mais il semble qu'on y ait beaucoup réfléchi.Un problème est qu'il semble qu'il n'ait pas encore été entièrement testé avec Rails 2.1, seulement 2.0, vous pouvez donc rencontrer quelques erreurs (probablement mineures et réparables).

Autres conseils

Si vous souhaitez intégrer GWT avec des backends non Java tels que ROR, PHP, etc., vous devez garder à l'esprit que GWT 1.5 prend désormais en charge les types de superposition JavaScript.Cette fonctionnalité vous permet d'écrire des classes qui peuvent être mappées par-dessus des objets JavaScript natifs pour fournir facilement des méthodes d'accès aux propriétés de ces objets et d'autres fonctionnalités étendues.

Voir ce lien pour plus de détails :Types de superposition JavaScript

Ainsi, vous pouvez renvoyer des données codées JSON depuis votre backend via des appels AJAX, les analyser dans un objet JavaScript, puis accéder aux données via votre code Java GWT à l'aide des classes de superposition que vous avez créées.Ou lorsque vous affichez votre page, vous pouvez afficher les données de configuration statiques sous forme d'objets JavaScript et les lire via ce mécanisme, plutôt que d'avoir à effectuer un appel AJAX pour récupérer les données.

Si vous connaissez JAVA et que vous disposez d'un endroit où vous pouvez l'héberger (comme un conteneur Tomcat ou Glassfish), je recommanderais bien plus que d'utiliser Ruby pour le back-end.La raison principale est que vous pouvez alors partager tous vos objets et utiliser le mécanisme RPC intégré.J'ai fait cela pour un grand nombre de nos projets et c'est un gain de temps considérable, sans compter que le code est moins sujet aux erreurs, car vous ne convertissez pas vos objets Java en quoi que ce soit, puis inversement.

J'ai déjà lié mon GWT à Rails, en utilisant la fonction to_json dans Rails, puis en lisant le JSON dans GWT.Tout est pris en charge, mais c'est bien plus ennuyeux que de simplement faire le back-end en JAVA.

Bien sûr, si vous disposez d'un hébergement bon marché, les conteneurs Java sont pratiquement hors de question, auquel cas je pense que Rails serait la meilleure solution.

GWT est de très haute qualité avec une grande communauté.Cependant, vous devez connaître CSS si vous souhaitez ajuster l'apparence des choses (vous le ferez) - CSS peut faire une grande partie de la mise en page, tout comme le Web classique si vous le souhaitez.Des bibliothèques comme GWT-ext ou ExtGWT peuvent aider un peu car elles ont un superbe look "prêt à l'emploi", mais pour un prix (taille supplémentaire pour votre application).

Vous pouvez tout coder en Java à l'aide de GWT et vous pouvez y intégrer des bibliothèques javascript tierces existantes.C'est très bien.Cependant, je n'ai jamais beaucoup utilisé RoR, donc je ne peux rien en dire.

Si vous avez de l'expérience en Java mais pas en Javascript/CSS, alors GWT va vous sauver la vie (à moins que vous ne vouliez les apprendre, bien sûr).CSS a tellement de petits détails compliqués.Il n'est pas rare de passer une demi-journée à corriger un désalignement de 2 pixels qui ne se produit que dans IE6.

Je ne sais pas à quel point il serait facile d'utiliser ROR pour le back-end...C'est possible, j'en suis sûr, puisque la communication ajax GWT n'est que des servlets.Mais ils fournissent des fonctionnalités très intéressantes pour transmettre des objets Java que vous ne pourrez pas utiliser si votre serveur n'utilise pas également Java.

J'ai écrit sur certains de les inconvénients de GWT récemment.Les inconvénients sont principalement :cycle de déploiement long pour les modifications apportées à certaines parties de l'application et courbe d'apprentissage plutôt abrupte.En tant que programmeur Java chevronné, le second devrait poser moins de problèmes et si vous utilisez un backend séparé, le premier est également atténué (car un redéploiement complet est principalement requis lorsque vous modifiez la partie « serveur » de l'application).

GWT est un framework merveilleux avec beaucoup de potentiel.Gardez cependant à l’esprit que c’est encore assez nouveau.Il existe des bugs non résolus qui peuvent vraiment vous ennuyer, et ils nécessitent généralement des solutions de contournement laides pour être résolus.La communauté est formidable mais vous vous retrouverez probablement tôt ou tard avec quelques problèmes auxquels Google ne peut pas encore répondre.

Mais bon, je dis allez-y.Le potentiel de GWT est impressionnant et je parie que son avenir sera radieux.

Vous devez absolument utiliser GWT pour un nouveau projet (c'est également assez facile à utiliser dans un ancien projet).

D'après mon expérience, c'est très rapide à apprendre et à utiliser.Le code javascript compilé est bien meilleur que tout ce que vous pourriez écrire à la main et il fonctionne également rapidement.

Un autre avantage est la possibilité de déboguer votre code (ce qui est un enfer avec javascript seul)

Ce blog contient les contributions de nombreux utilisateurs expérimentés de GWT et propose d'excellents points de discussion.Personnellement, j'ai une grande expérience avec divers frameworks d'interface utilisateur.J'ajouterai mes deux cents.Regardons fondamental avantages et inconvénients de GWT

Avantage fondamental

GWT transfère la programmation de la couche Web vers JAVA.Ainsi, les avantages évidents de Java commencent à entrer en jeu.Il fournira une programmation orientée objet.Il fournira également d’excellents contrôles de débogage et de compilation.Puisqu'il génère du HTML et du Javascript, il aura également la capacité de cacher une certaine complexité au sein de son générateur.

Inconvénient fondamental

L'inconvénient part de la même affirmation.GWT transfère la programmation de la couche Web vers JAVA.Si vous connaissez JAVA, vous ne chercherez probablement jamais un langage alternatif pour écrire votre logique métier.C'est autonome et génial.Mais lorsqu'il s'agit d'écrire des configurations pour une application JAVA.Nous utilisons des fichiers de propriétés, une base de données, XML, etc.Nous ne stockons jamais les configurations dans un fichier de classe JAVA.Réfléchissez bien, pourquoi ?

En effet, la configuration est une donnée statique.Cela nécessite souvent une hiérarchie.C'est censé être lisible.Cela ne nécessite jamais de compilation.Cela ne nécessite pas de connaissance du langage de programmation JAVA.Bref, c'est un autre jeu de balle.Maintenant, la question est : quel est le rapport avec notre discussion ?

Pensons maintenant à une page Web.Pensez-vous que lorsque nous écrivons une page Web, nous écrivons une logique métier ?Absolument pas.La page Web n'est qu'une configuration.Il s'agit d'une configuration de conteneurs et de champs hiérarchiques.Nous devons écrire une logique métier pour les données qui seront capturées et affichées sur la page Web et non pour créer la page Web elle-même.

Le paragraphe précédent fait une déclaration très très forte.Cela expliquera pourquoi les pages Web basées sur HTML et XML restent les plus populaires.XML est le meilleur du marché pour écrire des configurations.Un framework doit permettre une séparation claire entre la page Web et la logique métier (l'objectif du framework MVC).En faisant cela, un concepteur de sites Web sera en mesure d'appliquer ses compétences en visualisation et son talent artistique pour créer des pages Web brillantes simplement en configurant des fichiers XML et sans se soucier des subtilités d'un langage de programmation.Les développeurs pourront utiliser le meilleur de leur JAVA professionnel pour écrire une logique métier.

Enfin, parlons des répercussions en termes directs.GWT rompt ce principe et est donc voué à l'échec.Le coût de développement de l'application GWT sera très élevé car vous aurez besoin de programmeurs polyvalents pour écrire des pages Web.L’apparence et la convivialité requises seront très difficiles à obtenir.Le temps de modification de la page Web sera très long en raison d’une compilation inutile.Et enfin, puisque vous écrivez des pages Web en JAVA, il est très facile de les corrompre avec la logique métier.Sans le savoir, vous introduirez des complexités qui doivent être évitées.

Vous pourriez également envisager Graal ("Groovy on Rails") qui vous fait bénéficier des avantages d'un framework Rails et de l'utilisation de la VM Java.

Notre équipe a récemment posé la même question et nous avons choisi d'opter pour GWT, d'autant plus que le plugin de conception rendait le travail avec GWT plus accessible aux experts non Java de l'équipe.Quiconque fait ce choix, faites juste attention à NE PAS utiliser le plugin GWT Designer !!Il n'a pas été mis à jour (depuis au moins un an, apparemment) pour créer une application GWT compatible avec IE8.

Notre équipe avait presque terminé la mise en page de nos applications, qui fonctionnaient parfaitement dans Chrome, FF et Safari.Puis ils ont explosé dans IE.IE 7 chargeait des pages partielles (mais pas des inclusions composites) et IE8 n'était même pas capable de charger l'application.Il vient de s'accrocher.

Le plugin designer dispose de boutons qui permettent à l'utilisateur d'ajouter des widgets CellTable qui ne sont pas compatibles avec IE (CellTable, DeckPanel, Horizontal Panel, Vertical Panel, entre autres).Cela entraînera une douleur intense lorsque les mises en page devront être refaites en Java sans l'aide du concepteur.

Les utilisateurs expérimentés de GWT l'adorent, mais le plugin de conception va vous tuer.

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