Quels cadres Web Scala sont disponibles? [fermé]


195

Je viens de commencer à apprendre Scala, et la première chose que je vais implémenter est une toute petite application web. J'utilise Erlang depuis un an pour implémenter un logiciel côté serveur, mais je n'ai jamais écrit d'applications Web auparavant. Ce sera une grande expérience.

Existe-t-il des cadres Web pour Scala, à l'exception de Lift ?

Ne vous méprenez pas, Lift a l'air génial. Je veux juste savoir combien de cadres il y a pour que je puisse ensuite choisir entre eux. C'est toujours bien d'avoir le choix, mais je n'ai trouvé que Lift.

Réponses:


77

Je suis très intéressé par Scala, mais je ne l'ai pas encore utilisé, donc avec cette mise en garde, les cadres que je connais qui ne sont pas mentionnés dans la réponse de HRJ (Lift, Sweet, Slinky) sont:


3
Intéressant. L'ascenseur est de loin le plus médiatisé: il est curieux que vous ne le connaissiez pas.
mcherm

13
Remarque: "... Je suis au courant et non mentionné par HRJ ..." HRJ a déjà mentionné Lift. Merci
bn.

6
le jeu a aussi une version scala
islon

1
/ moi soupire. <rant> Step est un très bon nom, pourquoi changer pour Scalatra? Express.js ne s'appelle pas Nodatra. Le flacon (pas tout à fait le même mais proche) ne s'appelle pas Pythatra. </rant>
Dave Jensen

1
@ djensen47 votre toujours libre de développer le vôtre;)
BAR

45

J'ai écrit un article de blog à ce sujet.

Pour résumer, certaines des options sont les suivantes:

  1. Ascenseur
  2. Doux
  3. Slinky

J'ai finalement trouvé qu'aucune ne me convenait et j'ai développé mon propre petit "framework". (Ce n'est pas encore open-source).


35

J'aime Lift ;-)

Le jeu est mon deuxième choix pour les frameworks Web compatibles avec Scala.

Le guichet est mon troisième choix.


46
David, comment avez-vous entendu parler de Lift? ;-)
Derek Mahar

6
@Derek Mahar Inside job je crois ;-)

5
Il semble que vous soyez affilié à Lift. Veuillez noter que notre politique d'auto-promotion vous oblige à divulguer ces informations dans des réponses comme celle-ci.
josliber

35

Voici un vidage de frameworks. Cela ne signifie pas que je les ai réellement utilisés:

  • Coeus . Un framework Web MVC traditionnel pour Scala.

  • Non filtré . Une boîte à outils pour gérer les requêtes HTTP dans Scala.

  • Uniscala Granite .

  • Gardel

  • Mondo

  • Amore . Un port Scala du framework web Ruby Sinatra

  • Met à l'échelle XML . Approche flexible de la gestion XML et une manière simplifiée d'interagir avec XML.

  • Ceinture . Une interface de type rack pour les applications Web basée sur Scalaz-HTTP

  • Frank . Application Web DSL construite sur Scalaz / Belt

  • MixedBits . Un cadre pour le langage de programmation Scala pour aider à créer des sites Web

  • Circumflex . Réunit plusieurs projets open source autonomes pour le développement d'applications à l'aide du langage de programmation Scala.

  • Scala Webmachine . Port de la webmachine de Basho à Scala, un système basé sur REST pour créer des applications web

  • Bowler . Un framework Web Scala prêt pour RESTful et multicanal


1
Unfiltered a un bon diaporama ici: lien
Rick-777

J'ai ajouté bowlerframework (je l'ai juste trouvé sur le web).
Adam Gent



8

Je trouve Unfiltered très intéressant https://github.com/unfiltered/unfiltered .

Il est mentionné dans la liste IttayD.

Voici une présentation à ce sujet http://unfiltered.lessis.me/#0 et la vidéo http://code.technically.us/post/942531598/doug-tangren-present-the-unfiltered-toolkit-for

Ici aussi, il y a un article avec plus d'informations http://code.technically.us/post/998251172/holding-the-parameter


1
Non filtré est très, très cool. C'est vraiment propre et fonctionnel mais pas trop complexe.
thatismatt

8

Il convient de noter qu'il existe également un intérêt considérable pour Wicket et Scala . Le guichet convient parfaitement à Scala. Si vous souhaitez profiter du projet Wicket très mature et de son écosystème (extensions) ainsi que de la syntaxe concise et de l'avantage de productivité de Scala, celui-ci peut être pour vous!

Voir également:

  1. Certains prosa

  2. Présentation

  3. Expérience avec Wicket et Scala

  4. Annonces en référence au projet de code de colle pour lier les fermetures Scala aux modèles


7

Le jeu est assez doux.

Il est maintenant prêt pour la production. Il comprend: un cadre de modèle sympa, le rechargement automatique des fichiers source en toute sécurité, un système d'action composable, la génialité akka, etc.

Il fait partie de la pile Typesafe .

L'ayant utilisé pour deux projets, je peux dire que cela fonctionne assez bien et que cela devrait être quelque chose à considérer la prochaine fois que vous chercherez à apprendre de nouveaux cadres Web.


5

J'ai tendance à utiliser JAX-RS en utilisant Jersey (vous pouvez écrire de jolis beans de ressources en Scala, Java ou Groovy) pour écrire des applications Web RESTul. Ensuite, j'utilise Scalate pour le rendu des vues en utilisant l'un des différents langages de modèles ( JADE , Scaml , Ssp (Scala Server Pages), Moustache , etc.).


Je suis intéressé de savoir quel IDE vous utilisez pour développer des projets Scalate?
Ali Shakiba

1
J'utilise IntelliJ pour tout mon développement
James Strachan

4

Il existe un nouveau cadre Web, appelé Scala Web Pages . Depuis le site:

Public cible

Le cadre Web Scala Pages est susceptible de plaire aux programmeurs Web qui viennent d'un arrière-plan Java et qui souhaitent programmer des applications Web dans Scala. L'accent est mis sur la POO plutôt que sur la programmation fonctionnelle.

Caractéristiques et fonctionnalités

  • Adhère au paradigme du contrôleur de vue du modèle
  • Moteur de modèle basé sur du texte
  • Syntaxe simple: $variableet<?scp-instruction?>
  • Encodage / détection de contenu, capable de gérer les encodages de texte internationaux
  • Extraits au lieu de balises personnalisées
  • Réécriture d'URL

4

Prikrutil, je pense que nous sommes sur le même bateau. Je viens aussi à Scala d'Erlang. J'aime l' azote , j'ai donc décidé de créer un framework Web Scala inspiré par celui-ci.

Jetez un oeil à Xitrum . Son doc est assez étendu. De README:

Xitrum est un cadre Web Scala asynchrone et en cluster et un serveur Web au-dessus de Netty et Hazelcast:

  • Il comble l'écart entre Scalatra et Lift: plus puissant que Scalatra et plus facile à utiliser que Lift. Vous pouvez facilement créer des API RESTful et des publications. Xitrum est un contrôleur comme Scalatra, pas un ascenseur comme Lift.
  • L'annotation est utilisée pour les routes URL, dans l'esprit de JAX-RS. Vous n'êtes pas obligé de déclarer tous les itinéraires en un seul endroit.
  • Typesafe, dans l'esprit de Scala.
  • Async, dans l'esprit de Netty.
  • Les sessions peuvent être stockées dans des cookies ou Hazelcast en cluster.
  • jQuery Validation est intégré pour la validation côté navigateur et côté serveur. i18n utilisant GNU gettext, ce qui signifie que contrairement à la plupart des autres solutions, les formes au singulier et au pluriel sont prises en charge.
  • GET conditionnel utilisant ETag.

Hazelcast donne également:

  • Cache en cours de traitement et en cluster, vous n'avez pas besoin de serveurs de cache séparés.
  • Comet en cours de traitement et en cluster, vous pouvez adapter Comet à plusieurs serveurs Web.

Suivez le tutoriel pour un démarrage rapide.


3

Il y a aussi Pinky, qui était sur bitbucket mais a été transféré sur github .

Soit dit en passant, github est un excellent endroit pour rechercher des projets Scala, car il y a beaucoup à faire.


3

Je voudrais ajouter mes propres efforts à cette liste. Vous pouvez trouver plus d'informations ici:

cadre brzy

C'est au début du développement et j'y travaille toujours de manière agressive. Il comprend des fonctionnalités telles que:

  • Un accent sur la simplicité et l'extensibilité.
  • Outil de construction intégré.
  • Conception modulaire; certains modules initiaux incluent la prise en charge de scalate, email, jms, jpa, squeryl, cassandra, cron services et plus.
  • Contrôleurs et actions RESTful simples.

Tous les commentaires sont très appréciés.

MISE À JOUR: 2011-09-078, je viens de publier une mise à jour majeure de la version 0.9.1. Il y a plus d'informations sur http://brzy.org qui comprend un screencast.


1

Sweet et Slinky semblent être ignorés pendant environ un an. Sweet Maven repo sweetsoftwaredesign.com est mort, il n'y a même aucun moyen de télécharger les dépendances.


1

Remarque: Spiffy est obsolète.

< prise >

Spiffy :

  • est écrit en Scala
  • utilise la fantastique bibliothèque et les acteurs Akka pour évoluer
  • utilise l'API servlet 3.0 pour la gestion des demandes asynchrones
  • est modulaire (le remplacement des composants est simple)
  • utilise des DSL pour réduire le code là où vous ne le voulez pas
  • prend en charge Scalate et Freemarker pour les modèles

Spiffy est un framework Web utilisant Scala, Akka (une implémentation d'acteur Scala) et l'API Java Servlet 3.0. Il utilise l'interface asynchrone et vise à fournir un environnement massivement parallèle et évolutif pour les applications Web. Les différents composants de Spiffy sont tous basés sur l'idée qu'ils doivent être des modules minimalistes indépendants qui effectuent de petites quantités de travail très rapidement et transfèrent la demande au composant suivant dans le pipeline. Une fois que le dernier composant a terminé le traitement de la demande, il signale le conteneur de servlet en "complétant" la demande et en la renvoyant au client.

https://github.com/mardambey/spiffy

< / plug >


0

Vous pouvez également essayer Context . Il a été conçu pour être un framework Java mais je l'ai utilisé avec succès avec Scala également sans difficultés. Il s'agit d'un cadre basé sur des composants et possède des propriétés similaires à celles de l'ascenseur ou de la tapisserie.


0

Je suis tombé sur votre question il y a quelques semaines, mais depuis, j'ai également entendu Circumflex . Il s'agit d'un cadre agréable et minimal qui est donc facile à apprendre, et il dispose également d'une très bonne documentation.

En plus de son caractère minimal, il prétend également fonctionner correctement avec d'autres bibliothèques et vous permet d'utiliser votre propre implémentation de choses lorsque vous en avez besoin.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.