Griales (marco)


Grails es un marco de aplicación web de código abierto que utiliza el lenguaje de programación Apache Groovy (que a su vez se basa en la plataforma Java ). Se pretende que sea un marco de alta productividad siguiendo el paradigma de " codificación por convención ", proporcionando un entorno de desarrollo independiente y ocultando gran parte de los detalles de configuración al desarrollador. [ cita requerida ]

Grails se conocía anteriormente como "Groovy on Rails"; en marzo de 2006, ese nombre se eliminó en respuesta a una solicitud de David Heinemeier Hansson , fundador del marco Ruby on Rails . [2] El trabajo comenzó en julio de 2005, con la versión 0.1 el 29 de marzo de 2006 y la versión 1.0 anunciada el 18 de febrero de 2008.

Grails se desarrolló para abordar una serie de objetivos:

  • Proporcionar un marco web para la plataforma Java.
  • Reutilice las tecnologías Java existentes, como Hibernate y Spring, en una única interfaz.
  • Ofrezca un marco de desarrollo coherente.
  • Ofrezca documentación para partes clave del marco:
    • El marco de persistencia .
    • Plantillas que utilizan GSP (Groovy Server Pages).
    • Bibliotecas de etiquetas dinámicas para crear componentes de páginas web.
    • Soporte Ajax personalizable y extensible .
  • Proporcione aplicaciones de muestra que demuestren el marco.
  • Proporcionar un modo de desarrollo completo, incluido un servidor web y recarga automática de recursos.

Grails tiene tres propiedades que lo diferencian de los marcos web tradicionales de Java:

  • Sin configuración XML
  • Entorno de desarrollo listo para usar
  • Funcionalidad disponible a través de mixins

Sin configuración XML

La creación de aplicaciones web en Java implica tradicionalmente la configuración de entornos y marcos al inicio y durante el desarrollo. Esta configuración se externaliza muy a menudo en archivos XML para facilitar la configuración y evitar incrustar la configuración en el código de la aplicación.

Inicialmente, XML fue bienvenido ya que proporcionó mayor consistencia para configurar aplicaciones. Sin embargo, en los últimos años, se ha hecho evidente que, aunque XML es excelente para la configuración, puede resultar tedioso configurar un entorno. Esto puede reducir la productividad a medida que los desarrolladores dedican tiempo a comprender y mantener la configuración del marco a medida que crece la aplicación. Agregar o cambiar funcionalidad en aplicaciones que usan configuración XML agrega un paso adicional al proceso de cambio, lo que ralentiza la productividad y puede disminuir la agilidad de todo el proceso.

Grails elimina la necesidad de agregar configuración en archivos XML. En cambio, el marco utiliza un conjunto de reglas o convenciones mientras inspecciona el código de las aplicaciones basadas en Grails. Por ejemplo, un nombre de clase que termina con Controller(por ejemplo BookController) se considera un controlador web.

Entorno de desarrollo listo para usar

Cuando se utilizan los kits de herramientas web tradicionales de Java, los desarrolladores deben ensamblar las unidades de desarrollo, lo que puede resultar tedioso. Grails proporciona un entorno de desarrollo que incluye un servidor web para que los desarrolladores comiencen de inmediato. Todas las bibliotecas necesarias forman parte de la distribución de Grails, y Grails prepara el entorno web Java para su implementación automáticamente.

Funcionalidad disponible a través de mixins

Grails presenta métodos dinámicos en varias clases a través de mixins. Un mixin es un método que se agrega a una clase dinámicamente, como si la funcionalidad se hubiera compilado en el programa.

Estos métodos dinámicos permiten a los desarrolladores realizar operaciones sin tener que implementar interfaces o extender clases base. Grails proporciona métodos dinámicos basados ​​en el tipo de clase. Por ejemplo, las clases de dominio tienen métodos para automatizar operaciones de persistencia como guardar, eliminar y buscar

El marco web de Grails se ha diseñado de acuerdo con el paradigma MVC .

Controladores

Grails usa controladores para implementar el comportamiento de las páginas web. A continuación se muestra un ejemplo de un controlador:

class  BookController  {  def  list ()  {  [  libros:  Libro . lista ()  ]  } }

El controlador anterior tiene una listacción que devuelve un modelo que contiene todos los libros de la base de datos. Para crear este controlador grailsse utiliza el comando, como se muestra a continuación:

libro de creación-controlador de grails

Este comando crea una clase en el grails-app/controllerdirectorio del proyecto Grails. Crear la clase de controlador es suficiente para que Grails la reconozca. La listacción se asigna al http://localhost:8080/book/listmodo de desarrollo.

Puntos de vista

Grails admite JSP y GSP. El siguiente ejemplo muestra una vista escrita en GSP que enumera los libros en el modelo preparado por el controlador anterior:

     Nuestros libros       
in = "$ {books}" >
  • $ {it.title} ($ { it.author.name})