Différences entre GWT et Vaadin

Quelqu’un peut-il suggérer si “GWT” ou “Vaadin” sont un meilleur choix pour concevoir une application? Aussi: quelles sont les différences de style de codage?

Dans l’application GWT, la logique est normalement exécutée côté client. Il appelle uniquement le serveur lorsqu’il doit lire / enregistrer des données.

Dans Vaadin, la logique de l’application est côté serveur. Le client doit normalement appeler le serveur après chaque intervention de l’utilisateur.

Avantage GWT:
La logique de l’application (réponses à l’interaction de l’utilisateur) est plus rapide car elle est exécutée localement dans le navigateur. Il est également relativement insensible aux mauvaises conditions de réseau. Le réseau est utilisé uniquement en cas de besoin (pour lire / enregistrer de nouvelles données), ce qui permet d’économiser du trafic net (important pour les sites à fort trafic).

À cet égard, Vaadin est plus lent et introduit un décalage dans l’interaction de l’interface utilisateur, ce qui est agaçant pour l’utilisateur. Si le réseau est défectueux, cela montre la réactivité de l’interface utilisateur.

Avantage Vaadin:
La logique de l’application est exécutée sur le serveur afin que l’utilisateur ne puisse pas l’inspecter. Sans doute (prétend Vaadin) cela le rend plus sûr.

Quelques points supplémentaires:

  • Une différence fondamentale réside dans le fait que dans GWT, vous devez séparer votre application en code client et serveur, sans distinction de ce type dans Vaadin. Cela affectera l’architecture de votre application.

  • Dans le code client GWT, vous devez coder en Java et disposer d’un sous-ensemble limité de fonctionnalités linguistiques (que le compilateur GWT peut traduire en Javascript). Dans Vaadin, vous pouvez coder dans n’importe quel langage JVM, car tout fonctionne sur le serveur (j’utilise Vaadin avec Scala). Cela peut ou peut ne pas être pertinent pour vous.

  • La compilation de GWT est très lente, bien que dans le mode de développement vous avez l’émulateur. Cela rend les mises à jour de l’environnement de production pénibles (une application GWT que j’ai développée est devenue assez importante et nécessite environ 15 minutes de compilation).

  • Il est très simple d’étendre GWT avec des widgets tiers, ou d’envoyer vos propres widgets. La création de nouveaux widgets Vaadin est plus complexe.

Un autre avantage de Vaadin: vous n’avez pas besoin de concevoir ou d’implémenter la communication client-serveur intégrée.

Avec Vaadin, vous pouvez également utiliser la GWT intégrée lorsque vous souhaitez faire quelque chose du côté client. Cela vous offre à la fois la simplicité du modèle de programmation côté serveur (pas de communication, pas de programmation du navigateur) et un contrôle total de ce qui se passe dans le navigateur.

Différences entre Vaadin et GWT:

A) Vaadin comprend un modèle de développement côté serveur qui:

  • Réduit de moitié le nombre de lignes de code en réduisant les couches à implémenter pour l’interface utilisateur.
  • Vous permet d’utiliser n’importe quel langage JVM pour l’interface utilisateur – Scala, Groovy
  • Augmente la sécurité en conservant la logique de l’interface utilisateur sur le serveur
  • Autorise les appels synchrones vers n’importe quelle API principale à partir du serveur Web
  • Permet l’utilisation de toutes les bibliothèques et de tous les outils Java standard pour les applications d’architecture côté serveur dans l’interface serveur
  • Ne nécessite pas d’étape de compilation de Java à JavaScript qui prend souvent du temps ou complique l’outillage dans les projets GWT – au lieu de cela, vous avez le moteur client Vaadin
  • Fournit au serveur une sortie de boîte sans code supplémentaire

B) Vaadin fournit un grand ensemble de composants d’interface utilisateur de haut niveau. Pour GWT, il faudrait utiliser le Sencha GXT commercial pour un ensemble de composants comparable.

C) Vaadin comprend un moteur de thème Valo basé sur SASS qui facilite la création de thèmes personnalisés de qualité à partir de votre application. Valo est le dernier thème pour Vaadin.

D) Liaison de données: Vaadin a intégré la possibilité d’associer directement n’importe quel widget à une source de données telle qu’une firebase database, un fichier ou tout autre élément côté serveur. Cela permet de définir le comportement par défaut des widgets pour agir sur les sources de données.

Vaadin vs GWT

Je pense que Vaadin est un framework beaucoup plus avancé que GWT BUT Quand il s’agit d’optimiser les performances côté client, vous ne pouvez rien faire à moins de créer vos propres composants (et c’est là que s’arrête la beauté de Vaadin). En ce moment, 90% du personnel que j’ai fait a travaillé comme un charme Et puis j’ai dû utiliser une chronologie des événements à côté de quelques tables. Lorsque j’ai chargé plus de 400 événements sur la ligne de temps, ma page Web était presque inutilisable, pour ne pas dire terrible à l’initialisation. J’ai essayé d’optimiser le code au cours des deux derniers mois. À la fin, j’ai utilisé un composant GWT.

Je n’ai pas essayé Vaadin. Je suis un fan de GWT, mais je peux dire que j’ai été un peu déçu par le jeu de widgets par défaut fourni avec GWT. Vous avez vraiment besoin de quelque chose comme SmartGWT pour remplir le cadre.

Comme toute application doit afficher des informations d’affichage provenant du serveur, une exigence majeure pour un codage simple est la liaison automatique de données à vos formulaires et tables. Avec Vaadin, c’est aussi simple que quelques lignes de code. Dans GWT, vous n’avez d’abord aucun mappage de table. En ce qui concerne les formulaires, vous pouvez mapper un object à un formulaire, mais pour ce faire, vous devez implémenter un éditeur GWT pour votre object (et un pour chaque object à l’intérieur). Un éditeur n’est rien d’autre que la définition du formulaire à utiliser pour afficher / modifier l’object. Dans l’ensemble, il n’y a pas d’automatisation ici.