sroebuck/ScalaWebFrameworkReview.md

översikt

i allmänhet ger dessa ramar funktionalitet som täcker ett eller flera av följande:

  • Routing: en mekanism för att ta HTTP-förfrågningar och dirigera dem till någon kod som hanterar themand returnerar ett svar.

  • mallning: en eller flera syntaxer för mallning av webbsidor så att det statiska och dynamiska innehållet kan beskrivas på ett rimligt enkelt sätt och koden kan inbäddas eller på något sättassocieras med mallen för att fylla i tomrummen.

  • Persistens: en mekanism för att lagra en hämta objekt från en butik.

men vissa går långt utöver limning av webbkomponenterna och ger ramar somgenererar sin egen HTML, JavaScript, etc. på framsidan och försök att dölja separationen mellanklient sidokod och server sidokod. För korthetens skull kommer jag att hänvisa till dessa som RichInternet Applications (RIA) som GWT och Vaadin hänvisar båda till sig själva som sådana och de passar säkert in i denna kategori.

en viktig referens för olika webbapplikationsramar (utan hänvisning till Scala alls!) kan hittas på Wikipedia här: Webbapplikationsramar

Play Framework

  • skrivet i Java med Scala specifikt stöd.
  • betoning på enkelhet.
  • kommandoradsverktyg som automatiskt genererar en startmall.
  • sammanställer innehåll i farten utan behov av ytterligare byggverktyg.
  • använder JPA och Hibernate som underliggande persistence framework.

fördelar

  1. snabbt att komma igång.

nackdelar

  1. Automatisk kompilering i farten innebär att du förlorar en del av kontrollen över att använda din ownstandardbyggnadsverktyg.
  2. känns obehagligt fokuserad på funktioner som gör för fina demos!
  3. inbyggd kompilering gör också en viss automatisk kodgenerering med Java Beans vilket innebär att koden kan köras men inte kompileras med en vanlig kompilator.

GWT (Google Web Toolkit)

  • skrivet i Java utan specifikt Scala-stöd.
  • de flesta av kommentarerna om är lika tillämpliga på GWT som den bygger på.

Vaadin

Vaadin-kod ser lite ut som Swing-kod. Du skriver effektivt en interaktiv Javaapplication som sedan körs som en JavaScript-applikation i en webbklient. Från en funktionellperspektiv känns det som att ta en traditionellt deklarativ stilvärld av HTML och CSS och förvandla den till en mycket nödvändig stil. Kort sagt, det känns som ett bakåtriktat tillvägagångssätt för att lösaproblemet med gränssnitt för front-och back-end-programmering.

  • skrivet i Java utan specifikt Scala-stöd.
  • en Rich Internet Application (RIA).
  • baserat på GWT (Google Web Toolkit).
  • all kodning är klar serversidan, Vaadin gör allt arbete med att generera HTML, JavaScript, etc.
  • Vaadins jämförelse mot andra konkurrerande Ria-ramverk.Inklusive Flex, GWT, ICE Faces, JQuery och Wicket.
  • används för närvarande av:
    • TNT
    • Devox
    • Logica

Pros

  1. lämpad för Java-programmerare som inte vill röra med HTML och JavaScript.
  2. tar bort ansvaret för att lämna skillnaderna mellan webbklienter.

Cons

  1. tar bort din kontroll över finjustering av frontend HTML och CSS.
  2. kan verka mycket obekant för någon som inte är bekant med Java GUI applikationsutveckling.
  3. kan producera webbapplikationer med tungvikt front end JavaScript.

Scalatra

Scalatra verkar i grunden vara en form av request routing engine framework. Det ger en simpleway att bearbeta inkommande förfrågningar och dirigera dem till kod som gör svaret. Alla andrafunktionalitet kan skrivas själv eller läggas till som ett valfritt plugin.

  • skrivet i Scala.
  • inspirerad av Sinatra.
  • bygger med sbt.
  • körs på bryggan.
  • har ett visst teststöd inbyggt.
  • har valfritt stöd för:
    • Scalate mall motor.
    • Commons FileUpload filuppladdning stöd.
  • används för närvarande av:
    • LinkedIn Signal backend.

Pros

  1. Det verkar vara mycket tydligt vad detta gör och hur.
  2. Det verkar passa bra till alla kombinerade Scala-projekt utan överskott av DSLs eller implicits.

nackdelar

  1. Om du vill ha ett omfattande verktyg är det inte en.

Scalate

Scala mall motor.

  • skrivet i Scala.
  • verkar bygga med Maven eller sbt.
  • Stödmallar I mustasch, Scaml (Scala Markup Language) anssp (Scala Serversidor).

lyft

webbramverk.

  • skrivet i Scala.
  • byggd med sbt (tidigare med Maven).
  • uppvisar många av egenskaperna hos rika internetapplikationer samtidigt som de fortfarande gertillgång till direkt manipulation av HTML, JavaScript, etc. Denna frihet ger en vissgrad av blurriness och spänning för att förstå vad det försöker göra och hur du går omgör det.
  • ger Mall, routing, säkerhet, uthållighet ram, verkligen allt!

Pros

  1. kan göra praktiskt taget allt du behöver.
  2. har många starka säkerhetsfunktioner inbyggda som standard.
  3. har ett särskilt fokus på att utjämna kodningen av AJAX och Comet-kod.

nackdelar

  1. verkar alltid lägga till nya funktioner men kastar sällan några gamla bort.
  2. dokumentationen är fragmenterad och inte anpassad till uppdateringarna.
  3. Det finns många sätt att göra samma sak så det är svårt att använda andras kod som över referens för att kontrollera att du gör rätt sak.

Bowler

Lämna ett svar

Din e-postadress kommer inte publiceras.