web-dev-qa-db-fra.com

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?

51
sundhar

Dans GWT, la logique d'application est normalement exécutée côté client. Il appelle le serveur uniquement lorsqu'il a besoin de lire/enregistrer des données.

Dans Vaadin, la logique d'application est côté serveur. Le côté client doit normalement appeler le serveur après chaque interaction avec 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 économise le 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 qui est ennuyeux pour l'utilisateur. Si le réseau est mauvais, cela apparaîtra dans la réactivité de l'interface utilisateur.

Avantage Vaadin:
La logique de l'application est exécutée sur le serveur, elle ne peut donc pas être inspectée par l'utilisateur. On peut dire (affirme Vaadin) que cela le rend plus sûr.

57
Peter Knego

Quelques points supplémentaires:

  • Une différence fondamentale est que dans GWT, vous devez séparer votre application en code client et code serveur, aucune distinction de ce genre à 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 de langage (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 non vous concerner.

  • La compilation GWT est TRÈS lente, bien qu'en mode développement vous ayez l'émulateur. Cela rend les mises à jour de l'environnement de production douloureuses (une application GWT que j'ai développée est devenue assez grande et prend actuellement environ 15 minutes à compiler).

  • Il est très simple d'étendre GWT avec des widgets tiers ou de lancer le vôtre. La création de nouveaux widgets Vaadin est plus complexe.

32
hbatista

Autre avantage Vaadin: vous n'avez pas à concevoir ou à mettre en œuvre la communication client-serveur, c'est intégré.

16
Jouni

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

8
Joonas

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 basé sur JVM pour l'interface utilisateur - Scala, Groovy
  • Augmente la sécurité en conservant la logique de l'interface utilisateur dans le serveur
  • Permet des appels synchrones vers n'importe quelle API backend depuis le serveur Web
  • Permet l'utilisation de toutes les bibliothèques et outils standard Java Java pour les applications d'architecture côté serveur dans la couche UI)
  • N'a pas besoin de Java à l'étape de compilation JavaScript qui prend souvent du temps ou complique l'outillage dans les projets GWT - à la place, vous avez le moteur client Vaadin
  • Fournit un serveur Push-out de la boîte sans code supplémentaire nécessaire

B) Vaadin fournit un large éventail de composants d'interface utilisateur de haut niveau. Pour GWT, il faudrait utiliser 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 beaux thèmes personnalisés à partir de votre application. Valo est le dernier thème pour Vaadin.

D) Liaison de données: Vaadin a incorporé la possibilité d'associer n'importe quel widget directement à une source de données telle qu'une base de données, un fichier ou toute autre chose 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

7

Je crois que Vaadin est un cadre beaucoup plus avancé que GWT MAIS Lorsqu'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 la beauté de Vaadin s'arrête) Dans un projet i ' Je travaille en ce moment 90% du personnel que j'ai fait a fonctionné comme un charme Et puis j'ai dû utiliser une chronologie d'événement à côté de quelques tables. Lorsque j'ai chargé plus de 400 événements sur la chronologie, ma page Web était presque inutilisable, sans parler de la lenteur de l'initialisation. J'ai essayé d'optimiser le code ces deux derniers mois. À la fin, j'ai utilisé un composant GWT.

4
Dr.Halvid

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 l'ensemble de widgets par défaut fourni avec GWT. Vous avez vraiment besoin de quelque chose comme SmartGWT pour remplir le cadre.

3
Curtis

Comme toute application doit afficher des informations d'affichage provenant du serveur, une exigence majeure pour un codage simple est une liaison de données automatisée à vos formulaires et tableaux. 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 objet à un formulaire, mais pour ce faire, vous devez implémenter un soi-disant éditeur GWT pour votre objet (et un pour chaque objet à l'intérieur de celui-ci). Un éditeur n'est rien d'autre que la définition du formulaire à utiliser pour afficher/modifier l'objet. Donc, dans l'ensemble, il n'y a pas d'automatisation ici.

2
user1469130