overzicht
in het algemeen bieden deze frameworks functionaliteit die een of meer van de volgende opties dekt:
-
Routing: een mechanisme voor het nemen van HTTP-aanvragen en het routeren ervan naar een code die ze afhandelt en een antwoord retourneert.
-
Templating: een of meer syntaxen voor het templeren van webpagina ‘ s, zodat de statische en dynamische inhoud op een redelijk eenvoudige manier kan worden beschreven en de code kan worden ingebed of op een of andere manier gekoppeld aan de sjabloon om de spaties in te vullen.
-
persistentie: een mechanisme voor het opslaan van ophalen van objecten uit een archief.
echter, sommige gaan veel verder dan het aan elkaar lijmen van de webcomponenten en bieden frameworks die hun eigen HTML, JavaScript, enz.genereren. op de front-end en proberen om de scheiding tussen client side code en server side code te verbergen. Om kort te gaan zal ik deze RichInternet Applications (Ria) noemen, omdat GWT en Vaadin beiden zichzelf als zodanig noemen en zeker in deze categorie passen.
een belangrijke referentie van verschillende webapplicatie frameworks (met geen enkele verwijzing naar Scala!) kan worden gevonden op Wikipedia hier: Web Application Frameworks
Play Framework
- geschreven in Java met Scala specifieke ondersteuning.
- nadruk op eenvoud.
- Commandoregelgereedschap dat automatisch een startersjabloon genereert.
- compileert inhoud on the fly zonder de noodzaak voor een extra build tool.
- gebruikt JPA en Hibernate als het onderliggende persistence framework.
Pros
- snel aan de slag.
Cons
- automatische compilatie on the fly betekent dat u een deel van de controle verliest over het gebruik van uw eigen standaard build tool.
- voelt zich ongemakkelijk gefocust op functies die zorgen voor leuke demo ‘ s!
- ingebouwde compilatie doet ook een aantal automatische code generatie met Java Beans wat betekent dat de code zou kunnen draaien, maar niet compileren met een normale compiler.
GWT (Google Web Toolkit)
- geschreven in Java zonder specifieke Scala-ondersteuning.
- de meeste opmerkingen zijn eveneens van toepassing op GWT waarop zij is gebaseerd.
Vaadin
Vaadin-code lijkt een beetje op Swing-code. U bent effectief het schrijven van een interactieve Javaapplication die vervolgens wordt uitgevoerd als een JavaScript-toepassing binnen een webclient. Vanuit een functionalperspectief, dit voelt als het nemen van een traditioneel declaratieve stijl wereld van HTML en CSS en het omzetten in een zeer imperatieve stijl. Kortom, het voelt als een achterwaartse aanpak om het probleem van de koppeling van front-end en back-end programmering op te lossen.
- geschreven in Java zonder specifieke Scala-ondersteuning.
- een Rich Internet applicatie (Ria).
- gebaseerd op GWT (Google Web Toolkit).
- alle codering wordt gedaan server kant, Vaadin doet al het werk van het genereren van HTML, JavaScript, enz.
- Vaadin ’s vergelijking met andere ‘concurrerende Ria frameworks’.Inclusief Flex, GWT, ICE Faces, JQuery en Wicket.
- wordt momenteel gebruikt door:
- TNT
- Devox
- Logica
Pros
- geschikt voor Java-programmeurs die niet willen knoeien met HTML en JavaScript.
- neemt de verantwoordelijkheid weg voor het doorgeven van de verschillen tussen webclients.
Cons
- neemt uw controle over het fine-tunen van de front-end HTML en CSS.
- kan zeer onbekend lijken voor iemand die niet bekend is met Java GUI applicatie ontwikkeling.
- mogelijk om webtoepassingen te produceren met een zwaargewicht front-end JavaScript.
Scalatra
Scalatra lijkt in principe een vorm van request routing engine framework te zijn. Het biedt een eenvoudige manier van het verwerken van inkomende verzoeken en het routeren van hen naar code die het antwoord maakt. Elke andere functionaliteit kan zelf worden geschreven of Toegevoegd als een optionele plugin.
- geschreven in Scala.
- geïnspireerd door Sinatra.
- bouwt met sbt.
- draait op jetty.
- heeft enige testondersteuning ingebouwd.
- heeft optionele ondersteuning voor:
- Scalate templating engine.
- Commons Ondersteuning Voor het uploaden van bestanden.
- wordt momenteel gebruikt door:
- LinkedIn Signal backend.
Pros
- Het lijkt heel duidelijk wat dit doet en hoe.
- het lijkt goed te passen in elk gecombineerd Scala-project zonder overmaat aan DSLs of implicits.
Cons
- Als u een uitgebreide tool wilt, is dit er geen.
Scalate
Scala templating engine.
- geschreven in Scala.
- lijkt te worden gebouwd met Maven of sbt.
- ondersteunende sjablonen in snor, Scaml (Scala Markup Language) en ssp (Scala Server Pages).
Lift
Web framework.
- geschreven in Scala.
- gebouwd met sbt (voorheen met Maven).
- die veel kenmerken van rijke internettoepassingen vertoont, terwijl ze toch toegang geven tot de directe manipulatie van HTML, JavaScript, enz. Deze vrijheid zorgt voor een zekere mate van onscherpte en spanning in het begrijpen wat het probeert te doen en hoe je het doet.
- biedt templating, routing, security, persistence framework, inderdaad alles!
Pros
- kan vrijwel alles doen wat u nodig hebt.
- heeft standaard veel sterke beveiligingsfuncties ingebouwd.
- heeft een bijzondere focus op het gladmaken van de codering van Ajax en Comet code.
Cons
- lijkt altijd nieuwe functies toe te voegen, maar gooit zelden oude weg.
- documentatie is gefragmenteerd en niet afgestemd op de updates.
- er zijn veel manieren om hetzelfde te doen, dus het is moeilijk om de code van andere mensen als referentie te gebruiken om te controleren of je het juiste doet.