Please enable JavaScript.
Coggle requires JavaScript to display documents.
TEMA 30 : HERRAMIENTAS DE GENERACIÓN DE CÓDIGO gvNIX y gvHIDRA (gvHIDRA…
TEMA 30 : HERRAMIENTAS DE GENERACIÓN DE CÓDIGO gvNIX y gvHIDRA
gvHIDRA (generalitat valenciana Herramienta Integral de Desarrollo Rápido de Aplicaciones)
Definición :
framework para el desarrollo de aplicaciones de gestión en entornos web con PHP siguiendo una guía de estilo (con el fin de unificar criterios de aspecto y usabilidad de las aplicaciones).
Historia
A partir del proyecto
gvPONTIS
que pretendía migrar todos los sistemas a código abierto. Se seleccionaron PHP y Java como lenguajes de programación y Postgresql como SGBD. Desarrollo web en 3 capas
Se decidió crear un proyecto en PHP que aportará una guía de estilo de las aplicaciones para aumentar la productividad
Ante la complejidad del nuevo ámbito de trabajo (entorno web, HTML, JavaScript, OpenSOurce.) se decidió incorporar como requerimiento la simplificación del entorno de trabajo para el desarrollador
Se creo un proyecto (igep: implementación de la guía de estilo de PHP) a finales de 2004, que al ser liberado con licencia GPL tomó la denominación de gvHIDRA
Características
Patrones de interfaz
: se han definido una serie de patrones de básicos que determinan la forma de representación de la información (formato tabular, registro..) y la forma en la que interacciona el usuario con dicha información
Componentes complejos
:todas las aplicaciones necesitan este tipo de objetos : ventanas de selección, listas enlazadas, acciones de interfaz, mensajes de información. El framework genera estos componentes simplificando su uso en las aplicaciones
Operaciones preprogramadas y parametrizadas
: control de acceso concurrente, generación de sentencias SQL para crear, leer, actualizar y borrar un registro, persistencia y validación de tipos.
Soporte a diferentes SGBD
: a través del proyecto PEAR:MDB2, el framework permite trabajar con diversos SGBD, además de incorporar una capa intermedia que permite independizarnos de las diferentes interpretaciones de SQL que hace cada gestor
Listados e informes
: gracias al proyecto jasprreports y apoyado por herramientas como iReport, se elaboran listado e informes completos y de diferentes formatos
Arquitectura MVC
: separa en los desarrollo la lógica del negocio de la presentación.
Control de la vista
: se evita la introducción de líneas en HTML o JavaScript, de modo que el desarrollador se centre en PHP, siendo mucho más productivo
Custom y temas
: se distribuye en una arquitectura App/Custom/COre que permite modificar los aspectos (CSS, imágenes..) como los comportamientos propios de cada organización
Testing
: PHPUnit es la herramienta para hacer testeos sobre el código generado
Autenticación, auditoría y depuración
: Incorpora un mecanismo de validación extensible, siendo capaz de acoplarse a cualquier sistema de validación a través de PHP. Dispone de herramientas para hacer auditorías y depuración
Filosofía
: se trata de un proyecto OpenSource diseñado para poder ser utilizado en todo tipo de organizaciones
Arquitectura de configuraciones y carga de las mismas
: para permitir la reutilización, las características de configuración se cargan en forma de herencia en el siguiente orden :
Framework :
carga las características de configuración por defecto del FW
Custom :
permite modificar las características de configuración para toda la organización. De este modo, no será necesario añadir dicha modificación en todas las aplicaciones
App :
permite modificar las características de configuración a nivel de aplicación actual.
Entorno y arquitectura
Sigue una arquitectura MVC :
divide en capas diferentes la lógica de negocio, la lógica de control y la presentación
Se consiguen desarrollos más robustos ante los cambios de requisitos
En gvHidra se materializa de la siguiente manera :
actions :
corresponde al modelo y en él se alojan las clases manejadoras, que nos permiten acceder a los datos y realizar tratamientos sobre ellos.
include/mappings.php :
se corresponde con el controlador. Basado en el proyecto Phrame, se compone de un fichero que nos permite asociar una acción (solicitud del usuario) con la clase que lo va a resolver
views :
corresponde con la vista. Aquí se encuentran las vistas que designarán la pantalla a visualizarse
A las capas habría que añadir la
interfaz de usuario,
las pantallas
Para su realización se hace uso de Smarty y unos plugins propios.. Directorio templates
Flujo interno de una petición de pantalla
Aparece un estímulo de pantalla lanzado por el usuario
Este estímulo es transmitido al controlador (phrame) en forma de acción. Phrame, consulta con el fichero de mapeos (mappings.php) para conocer qué clase es la encargada de gestionar la acción. La "levanta" y le cede el control pasándole todos los datos de la petición
La clase (manejadora) realiza varios pasos :
Reconecta de forma automática a la base de datos.
Parsea el contenido de la petición (Request) encapsulando un objeto iterador que agrupa el contenido en matrices por operación
Lanza las diferentes operaciones con el comportamiento extra añadido por el programador.
La clase manejadora devuelve un actionForward a Phrame. Éste lo descompone y se localiza la view seleccionada.
Finalmente, el view recoge la información y con la plantilla (fichero tpl de Smarty) muestra la información en pantalla
gvNIX
Definición :
es un entorno de trabajo Java de código abierto para el desarrollo rápido de aplicaciones web sobre tecnología Spring. Es un entorno altamente productivo, flexible y que no compromete la calidad de los proyectos
Patrocinado por la DGTIC de la COnsellería de hacienda y Modelo Económico de la GV, gestionado por la Asociación gvSIG y dirigido por DISID
Está disponible dentro del proyecto de migración a software de fuentes abiertas
gvPONTIS
Funcionalidades
Control de concurrencia a nivel de aplicación sin campos en base de datos
Utilidades de generación de consultas
Utilidades de modificaciones múltiples de entidades
Gestión de temas visuales usando JQuery, Bootstrap, CSS3 y HTML5
Gestión de visualización de excepciones
Gestión de la estructura de páginas en el menú
Gestión de patrones de visualización de entidades y sus relaciones usando el componente Datatables
Gestión de transformación de cadenas vacías a valores nulos
Gestión de servicios locales y servicios web (importación y exposición)
Gestión de acceso (integrado con Spring Security)
Gestión de configuraciones por entorno
Gestión de documentos (reportes)
Gestión de información geográfica
Gestión de GeoPortales interactivos
Spring Roo
: es un entorno de trabajo Java que permite el desarrollo de aplicaciones web de forma rápida y cómoda para el desarrollaror
Características
Generación de código en Java (lenguaje estático)
Desarrollo dirigido por el dominio (Domain-Driven Development) . Diseño dirigido por el modelo de entidades.
Lógica en las entidades, eliminando capas redundantes. La lógica se especifica en las clases de negocio
Crea un proyecto en segundos a través de la consola Roo. Se integra con Eclipse y STS
Realimentación :añade valor durante todo el ciclo de vida.
Recibe instrucciones a través de una consola interactiva
No necesita más conocimiento que el necesario para el desarrollo de aplicaciones J EE