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?
Respuesta
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.
El paso se ve muy bien, pero no puedo hacer que funcione con Scala 2.8. –
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.
¿Cómo resolvió el problema '$ tag'? Al no usar Tapestry 5.1? –
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
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 –
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.
Creo que Lift es actualmente el marco web líder si desea escribir su aplicación en Scala.
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:
- Hay un libro de elevación de código abierto (una instantánea de lo que era publicado como The Definitive Guide to Lift) que puede encontrar en http://groups.google.com/group/the-lift-book (busque master.pdf en esa página).
- la puesta en marcha con Ascensor PDF es una introducción corta http://liftweb.net/docs/StartingWithLift.pdf
- La lista de correo es alto volumen (para mí), pero una gran fuente de información: http://groups.google.com/group/liftweb
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
play framework es ahora uno de los mayores frameworks de scala web.
- 1. ¿Cómo empiezo a construir aplicaciones web con Java?
- 2. ¿Por dónde empiezo con un bot web?
- 3. Aplicación web Clojure: ¿dónde empiezo?
- 4. ¿Cómo empiezo a aprender Assembly
- 5. Desarrollar una aplicación web con Mono (opensource .NET) ¿algún ejemplo?
- 6. ¿Cómo usar coffeescript para desarrollar sitios web?
- 7. ¿Cómo empiezo con zc.buildout y Distribute?
- 8. ¿Cómo empiezo a usar la programación multiproceso?
- 9. use xcode para desarrollar páginas web
- 10. ¿Por dónde empiezo con rJava?
- 11. herramientas para desarrollar servicios web RESTful
- 12. Usando Python para desarrollar la aplicación web
- 13. Mejor IDE para desarrollar servicios web de Java (para principiantes)
- 14. Cómo usar el juego! marco para desarrollar servicios web?
- 15. ¿Por dónde empiezo con la Programación Orientada a Aspectos?
- 16. ¿Cómo empiezo con Sub versión de trabajo + Delphi?
- 17. ¿Por dónde empiezo con Zend Framework?
- 18. ¿Puedo desarrollar Lego Mindstorms en Scala?
- 19. ¿Por dónde empiezo con la informática distribuida?
- 20. ¿Debo usar PHP/MySQL puro para desarrollar aplicaciones web?
- 21. ¿Cuáles son algunas cosas comunes a considerar al desarrollar una aplicación basada en web para venderse?
- 22. ¿Cómo empezar a desarrollar el servicio web de WCF con MonoDevelop?
- 23. Python vs C# /. NET: ¿cuáles son las principales diferencias a considerar para usar una para desarrollar una aplicación web grande?
- 24. ¿Cómo puedo empezar a desarrollar con Django en Cloud9?
- 25. Cómo desarrollar una aplicación web compatible con los sistemas de gestión de bases de datos múltiples
- 26. ¿Es seguro desarrollar aplicaciones web con especificaciones de HTML 5?
- 27. Cómo desarrollar una aplicación web que sea amigable con el balance de carga
- 28. ¿Cómo empiezo a leer en un desplazamiento en datos binarios?
- 29. Desarrollo de licencias en C#: ¿dónde empiezo?
- 30. ¿Cómo desarrollar una API web ASP.NET para aceptar un objeto complejo como parámetro?
¿Excluye el ascensor por algún motivo, o son válidas las respuestas sobre el ascensor? Esto no está claro. –
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