Overview
En general, estos frameworks proporcionan una funcionalidad que cubre uno o más de los siguientes:
-
Enrutamiento: Un mecanismo para tomar solicitudes HTTP y enrutarlas a algún código que las maneja y devuelve una respuesta.
-
Plantillas: Una o más sintaxis para crear plantillas de páginas web de modo que el contenido estático y dinámico se pueda describir de una manera razonablemente simple y el código se pueda incrustar o asociar de alguna manera con la plantilla para rellenar los espacios en blanco.Persistencia
-
: Un mecanismo para almacenar objetos de recuperación de una tienda.
Sin embargo, algunos van mucho más allá de pegar los componentes web y proporcionan marcos que generan su propio HTML, JavaScript, etc. en la parte frontal e intente ocultar la separación entre el código del lado del cliente y el código del lado del servidor. En aras de la brevedad, me referiré a ellas como Aplicaciones de RichInternet (RIA), ya que GWT y Vaadin se refieren a sí mismas como tales y sin duda encajan en esta categoría.
Una referencia importante de varios marcos de aplicaciones web (¡sin referencia a Scala en absoluto!) puede encontrarse en Wikipedia aquí: Web Application Frameworks
Play Framework
- Escrito en Java con soporte específico de Scala.
- Énfasis en la simplicidad.
- Herramienta de línea de comandos que genera automáticamente una plantilla de inicio.
- Compila contenido sobre la marcha sin necesidad de una herramienta de compilación adicional.
- Utiliza JPA e Hibernate como marco de persistencia subyacente.
Pros
- Rápida para empezar.
Cons
- La compilación automática sobre la marcha significa que pierdes parte del control de usar tu propia herramienta de compilación estándar.
- Se siente incómodamente centrado en características que hacen que las demostraciones sean agradables.
- La compilación incorporada también genera código automáticamente con Java Beans, lo que significa que el código puede ejecutarse pero no compilarse con un compilador normal.
GWT (Google Web Toolkit)
- Escrito en Java sin soporte específico para Scala.
- La mayoría de los comentarios sobre son igualmente aplicables al GWT en el que se basa.
Vaadin
El código Vaadin se parece un poco al código Swing. Está escribiendo efectivamente una aplicación Java interactiva que luego se ejecuta como una aplicación JavaScript dentro de un cliente web. Desde una perspectiva funcional, esto se siente como tomar un mundo de estilo tradicionalmente declarativo de HTML y CSS y convertirlo en un estilo muy imperativo. En resumen, se siente como un enfoque hacia atrás para resolver el problema de la interfaz de programación front-end y back-end.
- Escrito en Java sin soporte específico para Scala.
- Una Aplicación de Internet Enriquecida (RIA).
- Basado en GWT (Google Web Toolkit).
- Toda la codificación se realiza en el lado del servidor, Vaadin hace todo el trabajo de generar HTML, JavaScript, etc.
- Comparación de Vaadin con otros ‘frameworks RIA competidores’.Incluye Flex, GWT, Caras de HIELO, jQuery y Wicket.
- Es utilizado actualmente por:
- TNT
- Devox
- Logica
Pros
- Adecuado para los programadores de Java que no quiere meterse con HTML y JavaScript.
- Elimina la responsabilidad de gestionar las diferencias entre los clientes web.
Cons
- Le quita el control sobre el ajuste fino del HTML y CSS del front-end.
- puede parecer muy desconocido para alguien que no esté familiarizado con el desarrollo de aplicaciones de interfaz gráfica de usuario de Java.
- Responsable de producir aplicaciones web con JavaScript de interfaz de usuario pesado.
Scalatra
Scalatra parece, básicamente, una forma de solicitud de motor de enrutamiento de marco. Proporciona una manera sencilla de procesar las solicitudes entrantes y enrutarlas al código que renderiza la respuesta. Cualquier otra funcionalidad puede escribirse usted mismo o agregarse como un complemento opcional.
- Escrito en Scala.
- Inspirado en Sinatra.
- Se construye con sbt.
- se Ejecuta en el embarcadero.
- Tiene soporte para pruebas incorporado.
- Tiene soporte opcional para:
- Motor de plantillas escaladas.
- Soporte de carga de archivos de Commons FileUpload.
- Es utilizado actualmente por:
- LinkedIn Señal de respaldo.
Pros
- parece ser muy claro lo que hace y cómo.
- Parece encajar bien en cualquier proyecto Scala combinado sin exceso de DSL o implicitos.
Cons
- Si quieres alguna herramienta completa, esta no es una.
Escalar
Motor de plantillas Scala.
- Escrito en Scala.
- Parece compilar con Maven o sbt.
- Plantillas compatibles en Bigote, Scaml (Lenguaje de marcado Scala) y SSP (Páginas de servidor Scala).
Lift
Marco web.
- Escrito en Scala.
- Construido con sbt (anteriormente con Maven).
- Exhibiendo muchas de las características de las Aplicaciones de Internet enriquecidas a la vez que da acceso a la manipulación directa de HTML, JavaScript, etc. Esta libertad proporciona un cierto grado de confusión y tensión en la comprensión de lo que está tratando de hacer y cómo lo haces.
- Proporciona plantillas, enrutamiento, seguridad, marco de persistencia, ¡de hecho todo!
Pros
- Puede hacer prácticamente todo lo que necesita.
- Tiene muchas características de seguridad sólidas integradas de forma predeterminada.
- Tiene un enfoque particular en suavizar la codificación de código AJAX y Comet.
Cons
- Siempre parece estar agregando nuevas características, pero rara vez elimina las antiguas.
- La documentación está fragmentada y no está alineada con las actualizaciones.
- Hay muchas formas de hacer lo mismo, por lo que es difícil usar el código de otras personas como referencia cruzada para verificar que estás haciendo lo correcto.