sroebuck/ScalaWebFrameworkReview.md

Aperçu

En général, ces frameworks fournissent des fonctionnalités qui couvrent un ou plusieurs des éléments suivants :

  • Routage : Un mécanisme permettant de prendre des requêtes HTTP et de les acheminer vers un code qui les gère et renvoie une réponse.

  • Templating: Une ou plusieurs syntaxes pour modéliser des pages Web afin que le contenu statique et dynamique puisse être décrit de manière raisonnablement simple et que le code puisse être incorporé ou d’une certaine manière associé au modèle afin de remplir les blancs.

  • Persistance: Un mécanisme pour stocker un objet de récupération à partir d’un magasin.

Cependant, certains vont bien au-delà du collage des composants Web et fournissent des frameworks qui génèrent leur propre HTML, JavaScript, etc. sur le front et essayez de masquer la séparation entrecode côté client et code côté serveur. Par souci de concision, je les appellerai Applications RichInternet (RIA) car GWT et Vaadin se désignent tous deux comme tels et ils entrent certainement dans cette catégorie.

Une référence majeure de divers frameworks d’applications web (sans aucune référence à Scala !) peut être trouvé sur Wikipedia ici: Web Application Frameworks

Play Framework

  • Écrit en Java avec un support spécifique à Scala.
  • Accent mis sur la simplicité.
  • Outil de ligne de commande qui génère automatiquement un modèle de démarrage.
  • Compile le contenu à la volée sans avoir besoin d’un outil de construction supplémentaire.
  • Utilise JPA et Hibernate comme framework de persistance sous-jacent.

Avantages

  1. Rapide pour commencer.

Inconvénients

  1. La compilation automatique à la volée signifie que vous perdez une partie du contrôle de l’utilisation de votre propre outil de construction standard.
  2. Se sent mal à l’aise de se concentrer sur les fonctionnalités qui font de belles démos!
  3. La compilation intégrée fait également une génération de code automatique avec des Beans Java, ce qui signifie que thatcode peut s’exécuter mais ne pas compiler avec un compilateur normal.

GWT (Google Web Toolkit)

  • Écrit en Java sans prise en charge spécifique de Scala.
  • La plupart des commentaires sur sont également applicables au GWT sur lequel il est basé.

Vaadin

Le code Vaadin ressemble un peu au code Swing. Vous écrivez efficacement une application Javaapplication interactive qui est ensuite exécutée en tant qu’application JavaScript dans un client Web. D’un aspect fonctionnel, cela ressemble à prendre un monde de style traditionnellement déclaratif de HTML et CSS et à le transformer en un style très impératif. En bref, cela ressemble à une approche en arrière pour résoudre le problème de l’interfaçage de la programmation frontale et arrière.

  • Écrit en Java sans support spécifique de Scala.
  • Une Application Internet Riche (RIA).
  • Basé sur GWT (Google Web Toolkit).
  • Tout le codage se fait côté serveur, Vaadin fait tout le travail de génération de HTML, JavaScript, etc.
  • Comparaison de Vaadin avec d’autres « cadres RIA concurrents ».Y compris Flex, GWT, ICE Faces, jQuery et Wicket.
  • Est actuellement utilisé par:
    • TNT
    • Devox
    • Logica

Pros

  1. Convient aux programmeurs Java qui ne veulent pas jouer avec HTML et JavaScript.
  2. Enlève la responsabilité de gérer les différences entre les clients Web.

Cons

  1. Vous enlève le contrôle sur le réglage fin du code HTML et CSS frontal.
  2. Peut sembler très peu familier à quelqu’un qui ne connaît pas le développement d’applications Java GUI.
  3. Susceptible de produire des applications web avec JavaScript frontal lourd.

Scalatra

Scalatra semble être essentiellement une forme de framework de moteur de routage de requêtes. Il fournit un moyen simple de traiter les demandes entrantes et de les acheminer vers du code qui rend la réponse. Toute autre fonctionnalité peut être écrite vous-même ou ajoutée en tant que plugin facultatif.

  • Écrit en Scala.
  • Inspiré par Sinatra.
  • Construit avec sbt.
  • Fonctionne sur la jetée.
  • A un support de test intégré.
  • Prend en charge en option :
    • Scalate templating engine.
    • Prise en charge du téléchargement de fichiers Commons FileUpload.
  • Est actuellement utilisé par :
    • Moteur de signal LinkedIn.

Pros

  1. Il semble très clair ce que cela fait et comment.
  2. Il semble bien s’intégrer à tout projet Scala combiné sans excès de DSL ou d’implicits.

Inconvénients

  1. Si vous voulez un outil complet, ce n’en est pas un.

Scalate

Moteur de modélisation Scala.

  • Écrit en Scala.
  • Semble être construit avec Maven ou sbt.
  • Modèles compatibles avec Moustache, Scaml (Langage de balisage Scala) etssp (Pages Serveur Scala).

Lift

Cadre Web.

  • Écrit en Scala.
  • Construit avec sbt (anciennement avec Maven).
  • Présentant de nombreuses caractéristiques des applications Internet riches tout en donnant accès à la manipulation directe de HTML, JavaScript, etc. Cette liberté fournit un certain degré de flou et de tension dans la compréhension de ce qu’elle essaie de faire et de la façon dont vous vous y prenez.
  • Fournit des modèles, du routage, de la sécurité, un framework de persistance, en effet tout!

Les pros

  1. Peuvent faire pratiquement tout ce dont vous avez besoin.
  2. Possède de nombreuses fonctionnalités de sécurité intégrées par défaut.
  3. Met particulièrement l’accent sur le lissage du codage du code AJAX et du code Comet.

Cons

  1. Semble toujours ajouter de nouvelles fonctionnalités mais jette rarement les anciennes.
  2. La documentation est fragmentée et non alignée avec les mises à jour.
  3. Il y a beaucoup de façons de faire la même chose, il est donc difficile d’utiliser le code des autres comme référence pour vérifier que vous faites la bonne chose.

Lanceur

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.