2011-08-13 10 views
5

¿Existe un barebone web framework de Scala? Básicamente necesito las características esenciales tales como:A bare bones web framework?

  • Enrutamiento.
  • Gestión de parámetros GET/POST/PUT.
  • A simple motor de plantillas (basado en la sustitución de contenido).
  • serialización (JSON, YAML)

no me gusta Ascensor como lo hace demasiado para mí, ya que me gustaría un control completo sobre el HTML generado, lo que significa que quiero ser capaz de escribir 100 % del código HTML/CSS/JS.

¿Existe ese marco? ¿O es posible utilizar Lift de forma que no HTML se genere detrás de escena? ¿O sería mejor escribir un servlet normal?

Respuesta

7

Tal vez le gustaría algo como Scalatra o Unfiltered? En una nota aparte, no es necesario que pierda ningún control de su HTML/CSS/JS en la aplicación Lift si no lo desea.

+0

¡Gracias @ ethan-jewett por corregir mi analfabeto analfabeto! ;-) – pr1001

+0

+1 para Lift. * Puede * hacer mucho por usted, pero no tiene que ser – Dylan

+0

Sin filtro parece una buena opción para lo que el operador busca. – AndreasScheinert

0

No es un framework de Scala per-se, pero he tenido buena suerte con Jetty + JAX-RS + Scala + Freemarker. Todas estas son tecnologías bastante probadas en batalla, y no hay problemas con la integración de Scala. Se necesita una pequeña corrección para adaptar Freemarker a las colecciones y propiedades de Scala, pero nada desafiante.

1

Dos marcos más para que usted considere:

  • El juego es un marco simple descanso que está ganando en popularidad, y tiene una bonita Scala interface. Sus plantillas se traducen de forma relativamente simple en funciones de Scala. Desde hace un par de meses hubo dificultades con el uso de paquetes JSON (como lift-json) que descomponen datos en clases de casos porque Play tiene un cargador de clases personalizado para un desarrollo rápido. No estoy seguro si este problema está resuelto. La empresa Scala Typesafe usa Play para their site. Play se integra con Akka, y uno de los desarrolladores principales de Akka, Viktor Klang, recomendó Play hace un tiempo.

  • Un poco más allá de la ruta establecida, hay Spray. No puedo hablar sobre los detalles, pero el Wiki parece intrigante. En mi opinión, Spray parece elegantemente diseñado para la integración de Akka. No creo que venga con un motor de plantillas, pero probablemente sería posible interactuar con Scalate (ver mailing list discussion).

+2

No llamaría Play a "bare-bones", son cientos de megabytes. –

+0

Yo tampoco lo llamaría simple. Es muy complejo. – rightfold

0

Scalatra es bastante básico con la calidad scala. Fácil de configurar, material HTTP sencillo y fácil de usar. Es similar al sinatra de scala. Scalatra también tiene buen soporte Maven y convive bien con los servlets java tradicionales.

2

Peter dio una gran respuesta ... Lo ampliaré un poco.

Lift le ofrece un montón de control y acceso a las solicitudes HTTP sin procesar, además de proporcionar una gran cantidad de abstracciones en la parte superior del nivel HTTP. Es tu elección sobre cuánto o qué tan poco quieres que Lift lo haga.

Puede construir una aplicación basada en REST usando Lift's RestHelper. Consulte http://simply.liftweb.net/index-Chapter-5.html La ventaja que Lift's RestHelper le brinda sobre la mayoría de los enfoques basados ​​en MVC/Routing es la seguridad de tipo y el control de acceso en el límite de su aplicación. Pero utilizando los extractores de coincidencia de patrones de Scala, puede asegurarse de que los parámetros entregados a la lógica comercial de su aplicación ya se hayan materializado y verificado para el control de acceso. Además, el soporte REST de Lift será tan conciso o más conciso que otros frameworks web.

En términos de manejo de HTML de Lift, tiene mucho control sobre la creación del HTML, siempre que desee generar HTML como un DOM válido en lugar de como una serie de cadenas.

La mayoría de los marcos web te obligan a emitir cadenas cuando estás componiendo HTML. Depende del desarrollador escaparse correctamente de cadenas de HTML. Depende del desarrollador asegurarse de que las etiquetas de cierre se alineen correctamente. Con Lift, obtienes este tipo de cosas gratis.

Puede servir HTML desde las aplicaciones Lift en estilo MVC. Consulte https://github.com/dpp/hoisted (este es el código que alimenta http://liftweb.net)

En la configuración "estándar" de las aplicaciones de elevación, Lift realiza un procesamiento posterior del HTML si, y solo si, utiliza cierta construcción. Por lo tanto, si coloca una etiqueta <head> en el cuerpo, la página HTML, Lift tomará el contenido de esa etiqueta <head> y lo moverá a la sección principal de la página. Si incluye llamadas al soporte de Lift's Comet, Lift insertará JavaScript en la página para realizar un sondeo largo. Pero estas características son opcionales y solo ocurren si usa ciertas funciones en Lift.

Espero que esto lo ayude a comprender los beneficios del uso de Lift.

Cuestiones relacionadas