przegląd
ogólnie te frameworki zapewniają funkcjonalność, która obejmuje Jedną Lub Więcej z następujących funkcji:
-
Routing: mechanizm pobierania żądań HTTP i przekierowywania ich do jakiegoś kodu, który je obsługuje i zwraca odpowiedź.
-
Szablony: jedna lub więcej składni do tworzenia szablonów stron internetowych, dzięki czemu statyczny i dynamiczny kontent można opisać w dość prosty sposób, a kod może być osadzony lub w jakiś sposób powiązany z szablonem w celu wypełnienia spacji.
-
Persistence: mechanizm do przechowywania pobieranych obiektów ze sklepu.
jednak niektóre wykraczają daleko poza sklejanie komponentów internetowych i dostarczają frameworki, które generują własny HTML, JavaScript itp. na front endzie i spróbuj ukryć oddzielenie kodu po stronie serwera od kodu po stronie serwera. Dla zwięzłości będę odnosić się do tych aplikacji jako RichInternet (RIA) jak GWT i Vaadin oba odnoszą się do siebie jako takie i na pewno pasują do tej kategorii.
główne odniesienie do różnych frameworków aplikacji internetowych (bez odniesienia do Scali w ogóle!) można znaleźć na Wikipedii tutaj: frameworki aplikacji internetowych
Play Framework
- napisane w Javie ze wsparciem specyficznym dla Scali.
- nacisk na prostotę.
- narzędzie wiersza poleceń, które automatycznie generuje szablon startowy.
- kompiluje zawartość w locie bez potrzeby dodatkowego narzędzia kompilacji.
- używa JPA i Hibernate jako podstawowej struktury trwałości.
plusy
- szybkie rozpoczęcie pracy.
Cons
- automatyczna Kompilacja w locie oznacza, że tracisz kontrolę nad używaniem własnego narzędzia do budowania.
- czuje się niewygodnie skupiony na funkcjach, które tworzą ładne dema!
- Wbudowana kompilacja również wykonuje pewne automatyczne generowanie kodu za pomocą Javy, co oznacza, że kod może być uruchamiany, ale nie kompilowany za pomocą normalnego kompilatora.
GWT (Google Web Toolkit)
- napisany w Javie bez konkretnej obsługi Scali.
- większość komentarzy na temat dotyczy również GWT, na którym się opiera.
Vaadin
Kod Vaadin wygląda trochę jak kod Swing. Skutecznie piszesz interaktywną aplikację Java, która jest następnie uruchamiana jako aplikacja JavaScript w kliencie sieci web. Z functionalperspective, to czuje się jak biorąc tradycyjnie deklaratywny świat stylu HTML i CSS i zamieniając go w bardzo imperatywny styl. Krótko mówiąc, wydaje się to wstecznym podejściem do rozwiązania problemu łączenia programowania front-end I back-end.
- napisany w Javie bez specyficznego wsparcia dla Scali.
- bogata aplikacja internetowa (RIA).
- oparty na GWT (Google Web Toolkit).
- całe kodowanie odbywa się po stronie serwera, Vaadin wykonuje całą pracę generowania HTML, JavaScript, itp.
- porównanie Vaadina z innymi „konkurencyjnymi ramami RIA”.W tym Flex, GWT, ICE Faces, JQuery i Wicket.
- jest obecnie używany przez:
- TNT
- Devox
- Logica
Pros
- przeznaczony dla programistów Java, którzy nie chcą zadzierać z HTML i JavaScript.
- zabiera odpowiedzialność za przekazywanie różnic między klientami sieciowymi.
Cons
- odbiera Ci kontrolę nad dostrajaniem frontendu HTML i CSS.
- może wydawać się bardzo obca dla kogoś, kto nie jest zaznajomiony z tworzeniem aplikacji Java GUI.
- zajmuje się tworzeniem aplikacji internetowych z zaawansowanym front-end JavaScript.
Scalatra
Scalatra wydaje się być zasadniczo formą frameworka silnika routingu żądań. Zapewnia prosty sposób przetwarzania przychodzących żądań i przekierowywania ich do kodu, który renderuje odpowiedź. Każda inna funkcjonalność może być napisana samodzielnie lub dodana jako Opcjonalna wtyczka.
- napisane w Scala.
- zainspirowany Sinatrą.
- buduje z sbt.
- działa na molo.
- ma wbudowane wsparcie dla testów.
- ma opcjonalne wsparcie dla:
- Scalate templating engine.
- Commons FileUpload obsługa wysyłania plików.
- jest obecnie używany przez:
- LinkedIn signal backend.
Pros
- wydaje się być bardzo jasne, co to robi i jak.
- wydaje się, że dobrze pasuje do każdego połączonego projektu Scali bez nadmiaru DSL lub niejawnych.
Cons
- jeśli potrzebujesz jakiegoś wszechstronnego narzędzia, nie jest to jedno.
Scalate
silnik szablonów Scala.
- napisane w Scala.
- wydaje się budować z Maven lub sbt.
- Obsługa szablonów w Mustache, Scaml (Scala Markup Language) i ssp (Scala Server Pages).
Lift
web framework.
- napisane w Scala.
- zbudowany z sbt (dawniej z Maven).
- pokazuje wiele cech bogatych aplikacji internetowych, jednocześnie dając możliwość bezpośredniej manipulacji HTML, JavaScript itp. Ta wolność zapewnia pewien stopień zamazania i napięcia w zrozumieniu tego, co stara się zrobić i jak się z tym uporać.
- zapewnia szablony, routing, bezpieczeństwo, trwałość framework, rzeczywiście wszystko!
profesjonaliści
- mogą zrobić praktycznie wszystko, czego potrzebujesz.
- ma wiele silnych funkcji bezpieczeństwa wbudowanych domyślnie.
- ma szczególny nacisk na wygładzanie kodu AJAX i Comet code.
wady
- zawsze wydaje się dodawać nowe funkcje, ale rzadko wyrzuca stare.
- dokumentacja jest fragmentowana i nie jest zgodna z aktualizacjami.
- istnieje wiele sposobów na zrobienie tego samego, więc trudno jest użyć kodu innych osób jako referencji, aby sprawdzić, czy robisz właściwą rzecz.