Veo que no ha habido aquí ningún artículo de introducción a Grails, por lo que me decidí a crearlo.
Esto pretende ser una serie de artículos al estilo de los que ya se han publicado aquí, como los de Tapestry de ezamudio o los de Play! de wishmaster, o como el de RTFS de luxspes... bueno como este último no.
Grails es un framework para desarrollo de aplicaciones web sobre la plataforma Java, escrito en el lenguaje Groovy, creado por Graeme Rocher y mantenido en un inicio por G2One, ahora parte de SpringSource.
La idea de Grails, es crear un marco de desarrollo que favorezca la productividad al crear aplicaciones web, integrando de facto configuraciones comunes a la mayoría de los escenarios, en resumen: convention over configuration.
Una de las características de Grails que han hecho que me llame la atención fuertemente, incluso para integrarlo como framework de desarrollo para proyectos en Sintel TI, es que funciona como una capa que debajo de sí misma integra tecnologías ya conocidas y de probada efectividad, como Spring (core, mvc) y Hibernate. Esto resulta conveniente al momento en el que Grails realiza de facto muchas cosas por nosotros, sin embargo si deseamos que alguna de éstas sea diferente existe la flexibilidad de modificar lo que convenga, ya que sabemos cómo funciona por debajo. No se trata solamente de un framework que es fácil, también es flexible y altamente configurable y extensible.
Algunas características aparte de la que mencioné que me han gustado sobre Grails son las siguientes:
- Grails integra en un mismo framework lo que varios frameworks por separado cubren. Con la creación de un nuevo proyecto Grails, ya contamos con capacidades out-of-the-box para MVC basadas en Spring MVC, un completo ORM basado en Hibernate, unit testing basado en JUnit, taglibs, soporte para internacionalización, webservices, seguridad básica, soporte AJAX, layouts, etc, etc, etc... Normalmente esto es lo que se integra en muchos proyectos, la diferencia es que no tenemos que lidiar con implementar dicha integración o con los problemas que resulten a partir de ella, porque en Grails las partes integradas ya se hablan bien entre sí.
- Lo que pudiera faltar a nuestro proyecto, es probable que ya está disponible mediante algún plugin, o se puede desarrollar como tal. Grails está diseñado para ser extensible mediante plugins que cubren determinada área. Por ejemplo, existen plugins para integrar Grails con Spring Security, Neo4j, Scala o para CAS. Existen plugins para muchos propósitos.
- Un proyecto Grails ya está preconfigurado para switchear entre ambientes de desarrollo, pruebas y producción.
- Al iniciar un proyecto Grails en ambiente de desarrollo, cuando hagamos cambios en el código, Grails hará live class reloading, lo que nos libra de tener que detener el servidor, hacer nuevamente el despliegue y volverlo a iniciar para ver el cambio reflejado. Grails actualiza incluso archivos de recursos, como messages.properties.
- Grails integra para algunos tipos de clases métodos dinámicos, por ejemplo para clases de dominio (lo que serían entities en JPA) ya existen métodos que Grails integra a la metaclase para guardar, buscar, eliminar y esas cosas que regularmente tienen el mismo comportamiento en cualquier aplicación.
- Seguramente hay muchas características relevantes más... si se les ocurre alguna siéntanse en confianza de señalarla en los comentarios.
Ahora sí...
Comentarios recientes
hace 2 semanas 3 días
hace 2 semanas 3 días
hace 2 semanas 3 días
hace 26 semanas 6 días
hace 28 semanas 1 día
hace 34 semanas 6 días
hace 1 año 27 semanas
hace 2 años 39 semanas
hace 2 años 43 semanas
hace 2 años 50 semanas