Jakie frameworki Scala są dostępne? [Zamknięte]


195

Właśnie zacząłem uczyć się Scali, a pierwszą rzeczą, którą zamierzam wdrożyć, jest niewielka aplikacja internetowa. Używam Erlanga przez ostatni rok do wdrażania oprogramowania po stronie serwera, ale nigdy wcześniej nie pisałem aplikacji internetowych. To będzie wspaniałe doświadczenie.

Czy istnieją ramy dla Scali oprócz Lift ?

Nie zrozum mnie źle, Lift wygląda niesamowicie. Chcę tylko wiedzieć, ile jest ram, aby móc następnie wybierać między nimi. Zawsze dobrze jest mieć wybór, ale jedyną rzeczą, jaką znalazłem, był Lift.

Odpowiedzi:


77

Jestem bardzo zainteresowany Scalą, ale jeszcze jej nie użyłem, więc z tym zastrzeżeniem, ramy, o których wiem, że nie są wymienione w odpowiedzi HRJ (Lift, Sweet, Slinky) to:


3
Ciekawy. Winda jest zdecydowanie najbardziej rozpowszechniona: ciekawe, że jej nie znałeś.
mcherm

13
Uwaga oświadczenie „... Jestem świadomy i nie wspomniany przez HRJ ...” HRJ już wspomniał o Lift. Dzięki
bn.

6
gra ma również wersję Scala
islon

1
/ ja wzdycha. <rant> Krok to doskonale dobre imię, po co zmieniać Scalatrę? Express.js nie nazywa się Nodatra. Kolba (niezupełnie taka sama, ale blisko) nie nazywa się Pythatra. </rant>
Dave Jensen

1
@ djensen47 zawsze możesz rozwijać własne;)
BAR

45

Napisałem o tym post na blogu .

Podsumowując, niektóre z opcji to:

  1. Winda
  2. Słodkie
  3. Slinky

W końcu odkryłem, że żaden z nich nie był dla mnie odpowiedni, i opracowałem swój własny „framework”. (To nie jest jeszcze open-source).


35

Lubię Lift ;-)

Play jest moim drugim wyborem dla platform internetowych przyjaznych Scali.

Furtka to mój trzeci wybór.


46
David, jak dowiedziałeś się o Lift? ;-)
Derek Mahar

6
@Derek Mahar Wewnątrz praca wierzę ;-)

5
Wygląda na to, że jesteś powiązany z Lift. Pamiętaj, że nasze zasady autopromocji wymagają ujawnienia tych informacji w odpowiedziach takich jak ta.
josliber

35

Poniżej znajduje się zrzut ram. To nie znaczy, że faktycznie ich użyłem:

  • Coeus . Tradycyjny framework internetowy MVC dla Scali.

  • Niefiltrowane . Zestaw narzędzi do obsługi żądań HTTP w Scali.

  • Uniscala Granite .

  • Gardel

  • Mondo

  • Amore . Port Scala w Ruby Web Framework Sinatra

  • Skaluje XML . Elastyczne podejście do obsługi XML i uproszczony sposób interakcji z XML.

  • Pas . Interfejs typu rack dla aplikacji internetowych zbudowany na Scalaz-HTTP

  • Frank . Aplikacja internetowa DSL zbudowana na Scalaz / Belt

  • MixedBits . Ramy dla języka programowania Scala, które pomagają w tworzeniu stron internetowych

  • Circumflex . Łączy kilka niezależnych projektów open source do tworzenia aplikacji przy użyciu języka programowania Scala.

  • Scala Webmachine . Port of the Basho's webmachine in Scala, oparty na REST system do tworzenia aplikacji internetowych

  • Bowler . Oszczędna, gotowa na wiele kanałów platforma internetowa Scala


1
Unfiltered ma dobry pokaz slajdów tutaj: link
Rick-777

Dodałem bowlerframework (właśnie znalazłem go w sieci).
Adam Gent,



8

Uważam, że Unfiltered jest bardzo interesujący https://github.com/unfiltered/unfiltered .

Jest wspomniany na liście IttayD.

Oto prezentacja na ten temat http://unfiltered.lessis.me/#0 oraz wideo http://code.technically.us/post/942531598/doug-tangren-presents-the-unfiltered-toolkit-for

Również tutaj jest artykuł z dodatkowymi informacjami http://code.technically.us/post/998251172/holding-the-parameter


1
Niefiltrowane jest bardzo, bardzo fajne. Jest naprawdę czysty i funkcjonalny, ale niezbyt skomplikowany.
thatismatt,

8

Należy zauważyć, że istnieje również duże zainteresowanie Wicket i Scala . Furtka zaskakująco dobrze pasuje do Scali. Jeśli chcesz skorzystać z bardzo dojrzałego projektu Wicket i jego ekosystemu (rozszerzeń) oraz zwięzłej składni i przewagi produkcyjnej Scali, ten może być dla Ciebie!

Zobacz też:

  1. Trochę prosa

  2. Prezentacja

  3. Trochę doświadczenia z Wicket i Scalą

  4. Ogłoszenia dotyczące projektu kodu kleju do wiązania zamknięć Scala z modelami


7

Gra jest całkiem słodka.

Teraz jest gotowy do produkcji. Zawiera: fajne środowisko szablonów, automatyczne ponowne ładowanie plików źródłowych po bezpiecznym, kompozycyjny system akcji, akka niesamowitość itp.

Jest to część stosu Typesafe .

Korzystając z niego w dwóch projektach, mogę powiedzieć, że działa całkiem sprawnie i powinno być czymś do rozważenia następnym razem, gdy chcesz nauczyć się nowych frameworków internetowych.


5

Zwykle używam JAX-RS przy użyciu Jersey (możesz pisać fajne zasoby w Scali, Javie lub Groovy) do pisania aplikacji internetowych RESTul. Następnie używam Scalate do renderowania widoków przy użyciu jednego z różnych języków szablonów ( JADE , Scaml , Ssp (strony serwera Scala), wąsy itp.).


Chcę wiedzieć, jakiego IDE używasz do tworzenia projektów Scalate?
Ali Shakiba,

1
Używam IntelliJ do całego mojego rozwoju
James Strachan

4

Istnieje nowa platforma internetowa, zwana stronami Scala . Ze strony:

Grupa docelowa

Schemat stron internetowych Scala Pages prawdopodobnie spodoba się programistom, którzy pochodzą z języka Java i chcą programować aplikacje sieciowe w Scali. Nacisk kładziony jest raczej na OOP niż na programowanie funkcjonalne.

Charakterystyka i funkcje

  • Przestrzega paradygmatu widok-model-kontroler
  • Tekstowy silnik szablonów
  • Prosta składnia: $variable i<?scp-instruction?>
  • Wykrywanie kodowania / treści, w stanie obsłużyć międzynarodowe kodowanie tekstu
  • Fragmenty zamiast tagów niestandardowych
  • Przepisywanie adresów URL

4

Prikrutil, myślę, że jesteśmy na tej samej łodzi. Ja również przyjeżdżam do Scali z Erlangu. Lubię azot dlatego postanowiłem stworzyć inspirowany nim framework internetowy Scala.

Spójrz na Xitrum . Jego dokument jest dość obszerny. Z README:

Xitrum to asynchroniczna i klastrowa platforma internetowa Scala oraz serwer sieciowy na platformie Netty i Hazelcast:

  • Wypełnia lukę między Scalatrą a Windą: mocniejszy niż Scalatra i łatwiejszy w użyciu niż Winda. Możesz łatwo tworzyć zarówno RESTful API, jak i postbacki. Xitrum jest pierwszym kontrolerem jak Scalatra, a nie pierwszym jak Lift.
  • Adnotacje są używane do tras adresów URL w duchu JAX-RS. Nie musisz deklarować wszystkich tras w jednym miejscu.
  • Typesafe, w duchu Scali.
  • Async w duchu Netty.
  • Sesje mogą być przechowywane w plikach cookie lub klastrze Hazelcast.
  • Sprawdzanie poprawności jQuery jest zintegrowane do sprawdzania poprawności przeglądarki i serwera. i18n używa GNU gettext, co oznacza, że ​​w przeciwieństwie do większości innych rozwiązań, obsługiwane są zarówno formy pojedyncze, jak i mnogie.
  • Warunkowe GET przy użyciu ETag.

Hazelcast daje również:

  • W trakcie procesu i klastrowanej pamięci podręcznej nie potrzebujesz osobnych serwerów pamięci podręcznej.
  • W trakcie procesu i klastrowania komety można przeskalować kometę do wielu serwerów WWW.

Postępuj zgodnie z samouczkiem, aby szybko rozpocząć.


3

Jest też Pinky, który kiedyś grał na bitbucket, ale został przeniesiony do github .

Nawiasem mówiąc, github to świetne miejsce do wyszukiwania projektów Scala, ponieważ jest tam wiele rzeczy.


3

Chciałbym dodać własne wysiłki do tej listy. Więcej informacji znajdziesz tutaj:

ramy brzy

Jest na wczesnym etapie rozwoju i nadal pracuję nad tym agresywnie. Zawiera funkcje takie jak:

  • Nacisk na prostotę i rozszerzalność.
  • Zintegrowane narzędzie do budowania.
  • Modułowa konstrukcja; niektóre początkowe moduły obejmują obsługę skalate, e-mail, jms, jpa, squeryl, cassandra, cron i wiele innych.
  • Proste RESTful kontrolery i działania.

Wszelkie opinie są mile widziane.

AKTUALIZACJA: 2011-09-078, właśnie opublikowałem ważną aktualizację do wersji 0.9.1. Więcej informacji na stronie http://brzy.org, która zawiera screencast.


1

Zarówno Sweet, jak i Slinky wydają się nieopracowani przez około rok. Sweetwareredesign.com repo Sweet Maven nie żyje, więc nie ma nawet sposobu na pobranie zależności.


1

Uwaga: Spiffy jest przestarzały.

< wtyczka >

Spiffy :

  • jest napisane w Scali
  • wykorzystuje fantastyczną bibliotekę Akka i aktorów do skalowania
  • używa serwletowego API 3.0 do obsługi żądań asynchronicznych
  • ma budowę modułową (wymiana elementów jest prosta)
  • używa DSL do cięcia kodu tam, gdzie go nie chcesz
  • obsługuje Scalate i Freemarker do tworzenia szablonów

Spiffy to framework internetowy wykorzystujący Scalę, Akkę (implementację aktora Scali) oraz API Java Servlet 3.0. Wykorzystuje interfejs asynchroniczny i ma na celu zapewnienie masowo równoległego i skalowalnego środowiska dla aplikacji internetowych. Różne komponenty Spiffy oparte są na założeniu, że muszą to być niezależne, minimalistyczne moduły, które wykonują niewielkie ilości pracy bardzo szybko i przekazują żądanie do następnego komponentu w potoku. Po zakończeniu przetwarzania ostatniego komponentu żądanie sygnalizuje kontenerowi serwletu poprzez „uzupełnienie” żądania i odesłanie go z powrotem do klienta.

https://github.com/mardambey/spiffy

< / plug >


0

Możesz także wypróbować kontekst . Został zaprojektowany jako środowisko Java, ale z powodzeniem korzystałem z niego również w Scali. Jest to struktura oparta na komponentach i ma podobne właściwości jak Lift lub Tapestry.


0

Natknąłem się na twoje pytanie kilka tygodni temu, ale od tego czasu dowiedziałem się również o Circumflex . Jest to ładna, minimalna struktura, która jest łatwa do nauczenia i ma również całkiem dobrą dokumentację.

Oprócz swojej minimalności, twierdzi również, że dobrze współpracuje z innymi bibliotekami i pozwala korzystać z własnej implementacji rzeczy, gdy jej potrzebujesz.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.