gvNIX: Entorno de trabajo basado en Roo

La Generalitat Valenciana siempre ha apostado por el desarrollo de soluciones basadas en productos open-source y a su vez publicadas como tal, ahora mismo recuerdo:

Moskitt: herramienta de modelado sobre UML

gvSIG: herramienta para manejo de información GIS

todos dentro del marco de gvPontis (como gvNIX).

gvNIX es un entorno de trabajo Java de código abierto para el desarrollo rápido de aplicaciones web, altamente productivo, flexible y que no compromete la calidad de los proyectos.

Está compuesto de un conjunto de herramientas de código abierto entra las que destaca su núcleo: Spring Roo.

gvNIX está patrocinado por la CIT (Consellería de Infraestructuras y Transportes de la Generalitat Valenciana) al iniciar su andadura en Java.

Aprovechando las similitudes (grandes similitudes) entre este proyecto y uno de los temas en los que estoy involucrado 🙂 he aprovechado para hacer un pequeño análisis de lo que ofrece gvNIX (a ver si hay algo que me sirva de inspiración para ampliar…).

Los objetivos que se buscaban con gvNIX me resultan familiares:

· No reinventar la rueda: este debería ser obligatorio para cualquier proyecto 😀

· Coste de mantenimiento bajo: En Roo hay toda una comunidad evolucionando el core, los addons, creando nuevos,…

· Personalizable a las necesidades de un proyecto: personalización vs imposición!

· Productividad del desarrollador: como dice la canción eso lo buscamos todos!

· Simplificar arranque con tecnología Java: yo añadiría con Spring también, y en eso Roo si que aporta muchooooo

Y lo que consigue gvNIX n con Roo es:

· Generación de código en Java.

· Eliminar el trabajo tedioso centrando al desarrollador en la lógica de negocio.

· Convención sobre configuración

· Desarrollo dirigido por el dominio (Domain-Driven Development)

· Diseño dirigido por modelos

· Lógica en las entidades (Real Object Oriented)

· Arquitectura en capas

· Crear un proyecto en segundos

· Realimentación: Añade valor durante todo el ciclo de vida

· No incorporar elementos adicionales al entorno de ejecución, por lo que no se penaliza la velocidad la aplicación

Os recomiendo esta presentación en la que se explica las premisas, objetivos, evolución (desde AppFuse 2)… me gusta la definición de Roo de su creador 😀

gvNIX integra sobre el core de Roo algunos addons interesantes, a mi me han gustado especialmente estos:

· Addon para gestionar temas visuales: sobre los temas que carga Spring Roo permite instalar y usar temas creados

· Addon para gestionar menús: permite instalary usar diferentes sistemas de menús (apart del ya ofrecido por Roo) con múltiples niveles

· Addon para aplicar patrones de visualización sobre entidades permite aplicar patrones de visualización sobre las entidades de un proyecto determinado. Los patrones actualmente soportados son: Maestro tabular, Maestro registro y Maestro registro – Detalle tabular

· Addon para control de concurrencia optimista basada en cheksum: Roo usa columna en tabla que es el modelo recomendado

· Addon para crear diálogos modales para mostrar las excepciones