sroebuck/ScalaWebFrameworkReview.md

Panoramica

In generale questi framework forniscono funzionalità che coprono uno o più dei seguenti:

  • Routing: un meccanismo per prendere le richieste HTTP e instradarle a un codice che le gestisce e restituisce una risposta.

  • Templating: una o più sintassi per creare modelli di pagine web in modo che static e dynamiccontent possano essere descritti in modo ragionevolmente semplice e il codice possa essere incorporato o in qualche modo associato al modello per riempire gli spazi vuoti.

  • Persistenza: un meccanismo per memorizzare un recupero di oggetti da un negozio.

Tuttavia, alcuni vanno ben oltre l’incollaggio dei componenti web e forniscono framework che generano il proprio HTML, JavaScript, ecc. sul front-end e cercare di nascondere la separazione tracodice lato client e codice lato server. Per brevità, mi riferirò a queste applicazioni RichInternet (RIA) come GWT e Vaadin si riferiscono entrambi a se stessi come tali e sicuramente rientrano in questa categoria.

Un riferimento importante di vari framework di applicazioni Web (senza alcun riferimento a Scala!) può essere trovato su Wikipedia qui: Web Application Frameworks

Play Framework

  • Scritto in Java con supporto specifico Scala.
  • Enfasi sulla semplicità.
  • Strumento da riga di comando che genera automaticamente un modello di avviamento.
  • Compila il contenuto al volo senza la necessità di uno strumento di compilazione aggiuntivo.
  • Utilizza JPA e Hibernate come framework di persistenza sottostante.

Pro

  1. Veloce per iniziare.

Contro

  1. La compilazione automatica al volo significa che perdi parte del controllo dell’utilizzo del tuostrumento di compilazione standard.
  2. Si sente a disagio concentrato sulle caratteristiche che rendono per belle demo!
  3. La compilazione integrata esegue anche una generazione automatica di codice con i bean Java, il che significa che il codice potrebbe essere eseguito ma non compilato con un normale compilatore.

GWT (Google Web Toolkit)

  • Scritto in Java senza supporto Scala specifico.
  • La maggior parte dei commenti su sono ugualmente applicabili a GWT su cui si basa.

Vaadin

Il codice Vaadin assomiglia un po ‘ al codice Swing. Si sta effettivamente scrivendo un’applicazione Javaapplication interattiva che viene quindi eseguita come applicazione JavaScript all’interno di un client Web. Da un functionalperspective, questo sembra prendere un mondo di stile tradizionalmente dichiarativo di HTML e CSS e trasformarlo in uno stile molto imperativo. In breve, sembra un approccio all’indietro per risolvere il problema dell’interfacciamento con la programmazione front-end e back-end.

  • Scritto in Java senza supporto Scala specifico.
  • Una ricca applicazione Internet (RIA).
  • Basato su GWT (Google Web Toolkit).
  • Tutta la codifica è fatta lato server, Vaadin fa tutto il lavoro di generare HTML, JavaScript, ecc.
  • Il confronto di Vaadin con altri “framework RIA concorrenti”.Tra cui Flex, GWT, facce di ghiaccio, jQuery e Wicket.
  • È attualmente utilizzato da:
    • TNT
    • Devox
    • Logica

Pro

  1. Adatto a programmatori Java che non vogliono pasticciare con HTML e JavaScript.
  2. Toglie la responsabilità di consegnare le differenze tra i client web.

Contro

  1. Toglie il controllo sulla messa a punto del front-end HTML e CSS.
  2. Può apparire molto poco familiare a qualcuno che non ha familiarità con lo sviluppo di applicazioni Java GUI.
  3. È in grado di produrre applicazioni web con JavaScript front-end pesante.

Scalatra

Scalatra sembra essere fondamentalmente una forma di framework del motore di routing delle richieste. Fornisce un modo semplice di elaborare le richieste in arrivo e instradarle al codice che rende la risposta. Qualsiasi altrofunzionalità può essere scritta da soli o aggiunta come plugin opzionale.

  • Scritto in Scala.
  • Ispirato da Sinatra.
  • Costruisce con sbt.
  • Funziona sul molo.
  • Ha un supporto di test integrato.
  • Ha il supporto opzionale per:
    • Scalate templating engine.
    • Commons FileUpload supporto per il caricamento dei file.
  • È attualmente utilizzato da:
    • LinkedIn Segnale backend.

Pro

  1. Sembra essere molto chiaro cosa fa e come.
  2. Sembra adattarsi bene a qualsiasi progetto Scala combinato senza eccesso di DSL o impliciti.

Contro

  1. Se vuoi uno strumento completo, questo non è uno.

Scalate

Motore di template Scala.

  • Scritto in Scala.
  • Sembra costruire con Maven o sbt.
  • Modelli di supporto in Baffi, Scaml (Scala Markup Language) andSSP (Scala Server Pages).

Sollevare

Quadro Web.

  • Scritto in Scala.
  • Costruito con sbt (precedentemente con Maven).
  • Esibendo molte delle caratteristiche di Rich Internet Applications pur dando accesso alla manipolazione diretta di HTML, JavaScript, ecc. Questa libertà fornisce un certaindegree di sfocatura e tensione nel capire che cosa sta cercando di fare e come si va aboutdoing esso.
  • Fornisce templating, routing, sicurezza, framework di persistenza, davvero tutto!

Pro

  1. Può fare praticamente tutto il necessario.
  2. Ha un sacco di forti funzioni di sicurezza integrate per impostazione predefinita.
  3. Ha una particolare attenzione per lisciare la codifica del codice AJAX e Comet.

Cons

  1. Sembra sempre di aggiungere nuove funzionalità, ma raramente getta via quelle vecchie.
  2. La documentazione è frammentata e non allineata con gli aggiornamenti.
  3. Ci sono molti modi per fare la stessa cosa, quindi è difficile usare il codice di altre persone come riferimento per verificare che stai facendo la cosa giusta.

Bombetta

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.