2009-08-13 15 views
8

Ahora, estoy familiarizado con el lenguaje Scala y estoy listo para el desarrollo web. El único marco con el que me encontré es Lift y no sé nada al respecto. ¿Cómo abordas el desarrollo web con Scala?¿Cómo empiezo a desarrollar para una web con Scala?

+0

¿Excluye el ascensor por algún motivo, o son válidas las respuestas sobre el ascensor? Esto no está claro. –

+0

No excluyo el ascensor. Solo digo que no sé cuán maduro es comenzar a usarlo. Quiero saber cuál es el enfoque general para el desarrollo web de Scala. – Cory

Respuesta

4

Existen al menos 2 frameworks scala para desarrollo web. Uno, como mencionó, es Lift.

También hay Step, que es un micro-marco en la vena de Sinatra para ruby. Parece muy bueno y tiene un buen DSL.

Ligeramente más experimental, la última troncal scalaz tiene un paquete para tratar aplicaciones web. Sin embargo, carece de documentación y ejemplos, y es probable que experimente algunos cambios importantes en los próximos meses (soy committer). Si desea seguir las últimas tendencias que estoy pensando en usarlo, puede consultar scapps. Espero tener una aplicación de ejemplo pronto.

+0

El paso se ve muy bien, pero no puedo hacer que funcione con Scala 2.8. –

2

He usado tanto Wicket como Tapestry para crear aplicaciones web en Scala.

La razón principal por la que no fui con, digamos, Lift es porque nuestros desarrolladores tienen bastante experiencia con los dos frameworks y por lo tanto la conversión a Scala sería más fácil para ellos.

Por supuesto, hay algunas cosas a tener en cuenta cuando se utiliza un framework de desarrollo web Java con Scala:

  • clases de colección. Las colecciones de Scala son mucho más ricas que sus contrapartes de Java, pero la mayoría de los frameworks de Java no pueden usarlas. (Aparentemente se introducirá algo para remediar esto con Scala 2.8)
  • Problemas ocasionales de compatibilidad, por ejemplo, Tapestry 5.1 no acepta métodos que no requiera en las clases de módulo, pero Scala agrega implícitamente un $tag() a cada clase. Esto hará que Tapestry rechace la clase.
+0

¿Cómo resolvió el problema '$ tag'? Al no usar Tapestry 5.1? –

+0

Acabo de escribir esa clase en Java :) Esta es una solución hackish, pero aparentemente Scala 2.8 retirará el método $ tag de todos modos y ya no será un problema. – andri

+0

Consejo: Puede usar colecciones de Java en Scala, y colecciones de Scala en Java, con 2.7.x, con http://github.com/jorgeortiz85/scala-javautils/tree/master –

1

He tenido éxito con Struts 2 y Scala. Las anotaciones @BeanInfo y @BeanProperty en el paquete scala.reflect son útiles para el acceso a la propiedad.

1

Creo que Lift es actualmente el marco web líder si desea escribir su aplicación en Scala.

2

Usando Ascensor para el desarrollo web en Scala tiene algunos aspectos positivos:

  • apoyo de la comunidad de respuesta activa,,;
  • el marco está diseñado para Scala en lugar de ser compatible con Scala;
  • ha tenido un esfuerzo sustancial invertido en ella por varios contribuidores.

aspectos negativos:

  • posiblemente un desafío si (como yo) se desplaza de marcos como puntales;
  • gran parte de la capacidad de respuesta a las solicitudes de los usuarios se produce en 1.1-SNAPSHOT en lugar de versiones específicas, lo que significa que está codificando contra el destino móvil. No es un gran problema en la práctica, pero puedo ver que esto es inquietante para algunos. Claramente, este punto no envejecerá bien una vez que 1.1 es lanzado.

Como Nick Partridge señaló en su respuesta, hay otros marcos. Como no sé lo que quiere o espera de un marco que sólo puedo apuntar a algunos recursos de elevación que puede ayudarle a tomar una decisión:

También es posible que desee echar un vistazo a la motivación e influencias de Lift ("Sesiones y seguridad muy granulares de Seaside, Rails rápidos flash-to-bang, Django" más que solo CRUD está incluido ", plantillas de diseño de Wicket ...") enumeradas en http://liftweb.net/ para ver si coincide con lo que quieres

Cuestiones relacionadas