2009-08-13 17 views
8

Ora conosco il linguaggio di Scala e sono pronto per lo sviluppo web. L'unica struttura che ho trovato è Lift e non ne so nulla. Come ti avvicini allo sviluppo web usando Scala?Come posso iniziare a sviluppare per un web usando Scala?

+0

Stai escludendo Lift per qualche motivo o le risposte sono valide? Questo non è chiaro. –

+0

Non escludo Lift. Sto solo dicendo che non so quanto sia maturo iniziare a usarlo. Voglio sapere qual è l'approccio generale per lo sviluppo web di Scala? – Cory

risposta

4

Esistono almeno 2 scala framework per lo sviluppo web. Uno, come hai detto, è Lift.

C'è anche Step, che è un micro-quadro nella vena di Sinatra per rubino. Sembra abbastanza bello e ha una bella DSL.

Leggermente più sperimentale, l'ultima busta scalaz dispone di un pacchetto per la gestione delle applicazioni Web. È un po 'carente nella documentazione e negli esempi, ed è probabile che subisca alcune pesanti modifiche nei prossimi mesi (sono un committer). Se desideri seguire i modi più sanguinanti che sto pensando di usarlo, puoi dare un'occhiata allo scapps. Spero di avere presto un app di esempio.

+0

Il passaggio sembra ottimo, ma non posso fallo funzionare con Scala 2.8. –

2

Ho usato sia Wicket e Tapestry per creare applicazioni Web in Scala.

Il motivo principale per cui non sono andato con, per esempio, Lift è perché i nostri sviluppatori hanno abbastanza esperienza con i due framework e quindi la conversione in Scala sarebbe più facile per loro.

Naturalmente, ci sono alcune cose da tenere a mente quando si utilizza un framework web Java con Scala:

  • classi Collection. Le collezioni Scala sono molto più ricche delle loro controparti Java, ma la maggior parte dei framework Java non è in grado di usarle. (Apparentemente qualcosa da rimediare sarà introdotto con Scala 2.8)
  • Problemi di compatibilità occasionali, ad esempio Tapestry 5.1 non accetta metodi che non richiede nelle classi modulo, ma Scala aggiunge implicitamente uno $tag() ad ogni classe. Ciò causerà a Tapestry il rigetto della classe.
+0

Come hai risolto il problema del '$ tag'? Non usando Tapestry 5.1? –

+0

Ho appena scritto quella classe in Java :) Questa è una soluzione hacker, ma apparentemente Scala 2.8 ritirerà comunque il metodo $ tag e quindi non sarà più un problema. – andri

+0

Suggerimento: è possibile utilizzare le raccolte Java in Scala e le raccolte Scala in Java con 2.7.x, con http://github.com/jorgeortiz85/scala-javautils/tree/master –

1

Ho avuto successo con Struts 2 e Scala. Le annotazioni @BeanInfo e @BeanProperty nel pacchetto scala.reflect sono utili per l'accesso alle proprietà.

1

Credo che Lift sia attualmente il framework Web leader se si desidera scrivere la propria applicazione in Scala.

2

Utilizzando Ascensore per lo sviluppo web a Scala ha alcuni aspetti positivi:

  • attiva, solidale, comunità reattivo;
  • il framework è progettato per Scala anziché essere compatibile con Scala;
  • ha già subito notevoli sforzi per investirlo da più contributori.

Gli aspetti negativi:

  • forse una sfida, se (come me) ci si sposta da framework come Struts;
  • la maggior parte della reattività alle richieste degli utenti avviene in 1.1-SNAPSHOT rispetto alle versioni specifiche, il che significa che stai codificando contro lo spostamento del bersaglio. Non è un grosso problema in pratica, ma posso vedere questo essere inquietante per alcuni. Chiaramente questo punto non invecchierà bene una volta 1.1 è stato rilasciato.

Come ha sottolineato Nick Partridge nella sua risposta, ci sono altri quadri. Come io non so che cosa si desidera o aspetto di un quadro posso solo puntare ad alcune risorse ascensore che possono aiutare a rendere la vostra mente:

Si consiglia inoltre di dare un'occhiata a motivazione e le influenze di Lift ("Sessioni e sicurezza altamente granulari di Seaside, Rails flash-to-bang veloce, Django's" più di un semplice CRUD è incluso ", Wicket's design-friendly templating ....") elencato su http://liftweb.net/ per vedere se abbina quello che vuoi

Problemi correlati