Přehled
obecně platí tyto rámce poskytují funkce, které se vztahuje na jednu nebo více z následujících:
-
Směrování: mechanismus pro přijímání požadavků HTTP a směrování je, aby nějaký kód, který zpracovává a vrátí odpověď.
-
Templating: Jeden nebo více syntaxí pro templating webové stránky tak, aby statické a dynamiccontent může být popsán poměrně jednoduchý způsob, a kód může být vložen nebo v některých wayassociated s šablony s cílem zaplnit prázdná místa.
-
Persistence: mechanismus pro ukládání načtených objektů z úložiště.
některé však přesahují lepení webových komponent dohromady a poskytují rámce, které generují vlastní HTML, JavaScript atd. na předním konci a pokuste se skrýt oddělení mezikód klienta a kód na straně serveru. Pro stručnost budu odkazovat na tyto RichInternet Aplikací (RIA) jako GW a Vaadin oba odkazují na sebe jako takový, a oni certainlyfit do této kategorie.
hlavní odkaz na různé rámce webových aplikací (bez odkazu na Scala vůbec!) lze nalézt na Wikipedii zde: webové aplikační rámce
Play Framework
- napsané v Javě se specifickou podporou Scala.
- důraz na jednoduchost.
- nástroj příkazového řádku, který automaticky generuje šablonu startéru.
- sestavuje obsah za běhu bez nutnosti dalšího sestavení nástroje.
- používá JPA a Hibernate jako základní rámec persistence.
Pros
- rychle začít.
nevýhody
- automatická kompilace za běhu znamená, že ztratíte část kontroly používání vlastního nástroje pro sestavení.
- se cítí nepříjemně zaměřený na funkce, které vytvářejí pěkné ukázky!
- vestavěný kompilace také dělá nějaké automatické generování kódu s Java fazole, což znamená, že thatcode může běžet, ale ne kompilovat s normálním kompilátorem.
GWT (Google Web Toolkit)
- napsáno v Javě bez specifické podpory Scala.
- většina komentářů se vztahuje stejně na GWT, na kterém je založena.
Vaadin
Vaadin kód vypadá trochu jako Swing kód. Efektivně píšete interaktivní Javaapplication, který je pak spuštěn jako JavaScript aplikace v rámci webového klienta. Z funkčního hlediska je to jako vzít tradičně deklarativní styl světa HTML a CSS a přeměnit jej na velmi imperativní styl. Stručně řečeno, je to jako zpětný přístup k řešeníproblém propojení front-end a back-end programování.
- napsáno v Javě bez specifické podpory Scala.
- bohatá internetová aplikace (RIA).
- na základě GWT (Google Web Toolkit).
- veškeré kódování se provádí na straně serveru, Vaadin provádí veškerou práci při generování HTML, JavaScriptu atd.
- Vaadinovo srovnání s jinými „konkurenčními ria frameworky“.Včetně Flex, GWT, ICE Faces, JQuery a Wicket.
- Je v současné době používán:
- TNT
- Devox
- Logica
Výhody
- Vhodný pro Java programátory, kteří nechtějí, aby nepořádek s HTML a JavaScript.
- odstraňuje odpovědnost za předávání rozdílů mezi webovými klienty.
nevýhody
- bere kontrolu nad doladěním front-end HTML a CSS.
- se může zdát velmi neznámé někomu, kdo není obeznámen s vývojem aplikací Java GUI.
- podléhá vytváření webových aplikací s těžkým frontendem JavaScript.
Scalatra
Scalatra se v podstatě jeví jako forma frameworku request routing engine. Poskytuje jednoduchý způsob zpracování příchozích požadavků a jejich směrování do kódu, který činí odpověď. Jakýkoli jinýfunkčnost lze napsat sami nebo přidat jako volitelný plugin.
- napsáno ve Scale.
- inspirováno Sinatrou.
- staví s sbt.
- běží na molu.
- má zabudovanou podporu testování.
- má volitelnou podporu pro:
- Scalate templating engine.
- Commons fileupload podpora nahrávání souborů.
- je v současné době používán:
- LinkedIn Signal backend.
Pros
- zdá se být velmi jasné, co to dělá a jak.
- zdá se, že dobře zapadá do jakéhokoli kombinovaného projektu Scala bez přebytku DSL nebo implicitů.
nevýhody
- Pokud chcete nějaký komplexní nástroj, není to jeden.
Scala templating engine.
- napsáno ve Scale.
- se zdá, že staví s Maven nebo sbt.
- podpora šablon v Mustache, Scaml (Scala Markup Language) assp (Scala Server Pages).
Lift
webový rámec.
- napsáno ve Scale.
- postaven s sbt (dříve s Maven).
- vykazuje mnoho charakteristik bohatých internetových aplikací, zatímco stále dává přístup k přímé manipulaci s HTML, JavaScriptem atd. Tato svoboda poskytuje jistotustupeň rozmazání a napětí v pochopení toho, co se snaží dělat a jak to jde.
- poskytuje šablony, směrování, zabezpečení, persistence framework, opravdu všechno!
Pros
- může dělat prakticky vše, co potřebujete.
- má ve výchozím nastavení mnoho silných bezpečnostních funkcí.
- se zaměřuje zejména na vyhlazování kódování Ajaxu a kódu komety.
nevýhody
- zdá se, že vždy přidává nové funkce, ale jen zřídka vyhodí staré.
- dokumentace je roztříštěná a není zarovnána s aktualizacemi.
- existuje mnoho způsobů, jak dělat totéž, takže je těžké použít kód jiných lidí jako přes odkaz ke kontrole děláte správnou věc.