Presentación del tema "Redefiniendo el MVC con Grails" presentada por mí el día Sábado 22 de Agosto en la Reunión de SpringHispano.org, grails.org.mx y JavaMexico
7. Hablemos de MVC MVC = Model–View–Controller Es un patrón de diseño que provee un mecanismo para construir una esbelta y limpia capa web Claramente separa el negocio, la navegación y la lógica de presentación Aunque…ya no solo aplica a Web, ahora también es implementado en Desktop( el mejor caso: Griffon - ?:D )
9. Motivaciones Facilita la carga de mantenimiento Los cambios en el negocio tienen impacto mínimo en el mejor de los casos nulo Facilita el desarrollo en un equipo multidisciplinario Zapatero a tu zapato, DBA a tu base de datos, desarrollador de persistencia a tus DAO’s, Diseñador a tu diseño…. Uso de herramientas especializadas Existen lenguajes de plantillas y etiquetado que son mejores para crear HTML Facilita las pruebas Podríamos probar mucho más código fuera de un contenedor Web
35. Mejor: A la manera Groovy!!! classMiClase{ String nombre def saluda(){ return "Hola $nombre !!!"; } } defm = newMiClase() m.setNombre("SpringHispano") println(m.saluda())
36. MVC en Grails Modelo Clases del dominio Validaciones en las clases de dominio GORM Se puede personalizar el mapeo Relaciones entre clases Uno a Uno Uno a Muchos Muchos a Muchos Herencia Objetos embedidos Testing
37. MVC en Grails Controller Definidos por Acciones en Closures Provee de atributos en el request que facilitan el manejo Ejemplos: flash, params Provee un scope adicional a context y session: flash Mejora en el manejo del Data Binding a través de params CommandObjects Restricciones en los métodos HTTP Manejo de upload de archivos más sencillo Interceptores Filtros Testing
38. MVC en Grails View Scriptlets GSP Provee de una librería de tags poderosa Tags lógicos Tags iterativos Tags para crear vínculos Incluso podemos crear las propias :D Sencillismo manejo de formularios a través de Tags Paginación Uso de templates Ajax Testing
39. Un ejemplo… Claro si no a que venimos a la reunión… Creemos una aplicación… Veamos que podemos hacer enfocandonos en el MVC…
40. Más Grails Mappings Internacionalización Ajax WebFlow GORM Servicios Plugins Seguridad Web Services Más…