SlideShare una empresa de Scribd logo
1 de 29
El MVC redefinido con Grails (Controllers y GSP) José Juan R. Zuñiga (@neodevelop)
Agenda Reuniones previas Groovy MVC Grails
Reuniones previas 6ta. Reunión de SpringHispano.org, grails.orgmx y JavaMexico.org http://springhispano.org/?q=node/469 http://www.slideshare.net/domingo.suarez/taller-groovy
Reuniones previas 6ta. Reunión de SpringHispano.org, grails.orgmx y JavaMexico.org http://springhispano.org/?q=node/374 http://www.slideshare.net/neodevelop/spring-mvc-final-presentation http://www.slideshare.net/domingo.suarez/grailsorgmx-priemra-reunion-presentation
Lo más importante de todo esto…
Los ponentes…
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 )
¿Cómo trabaja MVC?
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
Frameworks MVC en Java ,[object Object]
Turbine
Expresso
Tapestry
Apache Cocoon
Maverik
Anvil
Jaffa
JappleJPublish Jucas WebOnSwing Chrysalis VRaptor Swinglets Millstone Wicket Java Server Faces ,[object Object]
Tomahawk
IceFaces
Trinidad
TobagoSpringMVC
Otros frameworks MVC Ruby RubyonRails Perl Catalyst Cyclone Maypole Solstice … PHP Zend Tlalokes Kumbia CakePHP … Python Turbogears Django .Net MonoRail Maverick ASP.Net MVC
Pero nosotros hablaremos de…
¿Qué es Grails? Una plataforma para desarrollo ágil en Web Un framework MVC full-stack
¿Qué es Grails? Open Source Corre en la JVM
¿Qué es Grails? Desarrollo de aplicaciones con Groovy Altamente expresivo
¿Qué es Grails? Totalmente orientado a objetos Dinámico Sintaxis familiar Perfecta integración con Java
¿Qué es Grails? Convención sobre configuración DRY (Don’trepeatyourself)

Más contenido relacionado

La actualidad más candente

Curso node.js
Curso node.js Curso node.js
Curso node.js Redradix
 
Extracción de datos de páginas web con Python (webscraping)
Extracción de datos de páginas web con Python (webscraping)Extracción de datos de páginas web con Python (webscraping)
Extracción de datos de páginas web con Python (webscraping)Ernesto Crespo
 
Greach 2013 - Todo lo que me hubiera gustado saber cuando empecé a desarrolla...
Greach 2013 - Todo lo que me hubiera gustado saber cuando empecé a desarrolla...Greach 2013 - Todo lo que me hubiera gustado saber cuando empecé a desarrolla...
Greach 2013 - Todo lo que me hubiera gustado saber cuando empecé a desarrolla...Iván López Martín
 
Codemotion 2013 - Quiero tiempo real y lo quiero para ayer
Codemotion 2013 - Quiero tiempo real y lo quiero para ayerCodemotion 2013 - Quiero tiempo real y lo quiero para ayer
Codemotion 2013 - Quiero tiempo real y lo quiero para ayerIván López Martín
 
Java 9, 10, 11 ,12, 13 and more
Java 9, 10, 11 ,12, 13 and moreJava 9, 10, 11 ,12, 13 and more
Java 9, 10, 11 ,12, 13 and moreHillmerC
 
Movimientos celin robotica
Movimientos celin roboticaMovimientos celin robotica
Movimientos celin roboticavalerylaraCH
 
Gradle Glam: Plugins Galore
Gradle Glam: Plugins GaloreGradle Glam: Plugins Galore
Gradle Glam: Plugins GaloreSoftware Guru
 
Integrando Groovy & Grails en el proceso de desarrollo
Integrando Groovy & Grails en el proceso de desarrolloIntegrando Groovy & Grails en el proceso de desarrollo
Integrando Groovy & Grails en el proceso de desarrolloJose Juan R. Zuñiga
 
Groovy&Grails: desarrollo rápido de aplicaciones
Groovy&Grails: desarrollo rápido de aplicacionesGroovy&Grails: desarrollo rápido de aplicaciones
Groovy&Grails: desarrollo rápido de aplicacionesFran García
 
Madrid-GUG - ¡Micronaut en acción!
Madrid-GUG - ¡Micronaut en acción!Madrid-GUG - ¡Micronaut en acción!
Madrid-GUG - ¡Micronaut en acción!Iván López Martín
 
Taller PyConEs 2016: Introducción a TDD
Taller PyConEs 2016: Introducción a TDDTaller PyConEs 2016: Introducción a TDD
Taller PyConEs 2016: Introducción a TDDAlea Soluciones, S.L.
 

La actualidad más candente (20)

Grails
GrailsGrails
Grails
 
Introducción a groovy & grails
Introducción a groovy & grailsIntroducción a groovy & grails
Introducción a groovy & grails
 
Grails en SG08
Grails en SG08Grails en SG08
Grails en SG08
 
Sobre GrooScript
Sobre GrooScriptSobre GrooScript
Sobre GrooScript
 
Spring boot + spock
Spring boot + spockSpring boot + spock
Spring boot + spock
 
Curso node.js
Curso node.js Curso node.js
Curso node.js
 
Introducción a Node.js
Introducción a Node.jsIntroducción a Node.js
Introducción a Node.js
 
Extracción de datos de páginas web con Python (webscraping)
Extracción de datos de páginas web con Python (webscraping)Extracción de datos de páginas web con Python (webscraping)
Extracción de datos de páginas web con Python (webscraping)
 
Greach 2013 - Todo lo que me hubiera gustado saber cuando empecé a desarrolla...
Greach 2013 - Todo lo que me hubiera gustado saber cuando empecé a desarrolla...Greach 2013 - Todo lo que me hubiera gustado saber cuando empecé a desarrolla...
Greach 2013 - Todo lo que me hubiera gustado saber cuando empecé a desarrolla...
 
Codemotion 2013 - Quiero tiempo real y lo quiero para ayer
Codemotion 2013 - Quiero tiempo real y lo quiero para ayerCodemotion 2013 - Quiero tiempo real y lo quiero para ayer
Codemotion 2013 - Quiero tiempo real y lo quiero para ayer
 
Java 9, 10, 11 ,12, 13 and more
Java 9, 10, 11 ,12, 13 and moreJava 9, 10, 11 ,12, 13 and more
Java 9, 10, 11 ,12, 13 and more
 
Movimientos celin robotica
Movimientos celin roboticaMovimientos celin robotica
Movimientos celin robotica
 
Migrando CI a Docker
Migrando CI a DockerMigrando CI a Docker
Migrando CI a Docker
 
Gradle Glam: Plugins Galore
Gradle Glam: Plugins GaloreGradle Glam: Plugins Galore
Gradle Glam: Plugins Galore
 
Integrando Groovy & Grails en el proceso de desarrollo
Integrando Groovy & Grails en el proceso de desarrolloIntegrando Groovy & Grails en el proceso de desarrollo
Integrando Groovy & Grails en el proceso de desarrollo
 
Groovy&Grails: desarrollo rápido de aplicaciones
Groovy&Grails: desarrollo rápido de aplicacionesGroovy&Grails: desarrollo rápido de aplicaciones
Groovy&Grails: desarrollo rápido de aplicaciones
 
Etiquetas en JSP
Etiquetas en JSPEtiquetas en JSP
Etiquetas en JSP
 
Madrid-GUG - ¡Micronaut en acción!
Madrid-GUG - ¡Micronaut en acción!Madrid-GUG - ¡Micronaut en acción!
Madrid-GUG - ¡Micronaut en acción!
 
Taller PyConEs 2016: Introducción a TDD
Taller PyConEs 2016: Introducción a TDDTaller PyConEs 2016: Introducción a TDD
Taller PyConEs 2016: Introducción a TDD
 
Skipfish
SkipfishSkipfish
Skipfish
 

Similar a Redefiniendo el MVC con Grails

Dragome en JavaConf Buenos Aires 2014
Dragome en JavaConf Buenos Aires 2014 Dragome en JavaConf Buenos Aires 2014
Dragome en JavaConf Buenos Aires 2014 Fernando Petrola
 
Jobsket.com, Grails en un proyecto real
Jobsket.com, Grails en un proyecto realJobsket.com, Grails en un proyecto real
Jobsket.com, Grails en un proyecto realJobsket
 
Grails 2013 - PUCMM - Santiago - Sistemas
Grails 2013 - PUCMM - Santiago - SistemasGrails 2013 - PUCMM - Santiago - Sistemas
Grails 2013 - PUCMM - Santiago - SistemasCarlos Camacho
 
MyBatis como alternativa a Hibernate
MyBatis como alternativa a HibernateMyBatis como alternativa a Hibernate
MyBatis como alternativa a HibernateRubén Aguilera
 
Groovy&Grails: Cambia la forma de desarrollar tus aplicaciones web
Groovy&Grails: Cambia la forma de desarrollar tus aplicaciones webGroovy&Grails: Cambia la forma de desarrollar tus aplicaciones web
Groovy&Grails: Cambia la forma de desarrollar tus aplicaciones webParadigma Digital
 
Cambia la forma de desarrollar tus aplicaciones web con groovy y grails
Cambia la forma de desarrollar tus aplicaciones web con groovy y grailsCambia la forma de desarrollar tus aplicaciones web con groovy y grails
Cambia la forma de desarrollar tus aplicaciones web con groovy y grailsFátima Casaú Pérez
 
Jobsket Spring 2GX Madrid
Jobsket Spring 2GX MadridJobsket Spring 2GX Madrid
Jobsket Spring 2GX MadridJobsket
 
Usando Django con Docker
Usando Django con DockerUsando Django con Docker
Usando Django con DockerErnesto Crespo
 
Taller de Grails
Taller de GrailsTaller de Grails
Taller de GrailsJobsket
 
Jc Web20 Open Source Why Floss2007
Jc Web20 Open Source Why Floss2007Jc Web20 Open Source Why Floss2007
Jc Web20 Open Source Why Floss2007guest976d083
 
Jc Web20 Open Source Why Floss2007
Jc Web20 Open Source Why Floss2007Jc Web20 Open Source Why Floss2007
Jc Web20 Open Source Why Floss2007guestd24c393
 
Jerónimo López | Introducción a GraalVM | Codemotion Madrid 2018
Jerónimo López | Introducción a GraalVM | Codemotion Madrid  2018  Jerónimo López | Introducción a GraalVM | Codemotion Madrid  2018
Jerónimo López | Introducción a GraalVM | Codemotion Madrid 2018 Codemotion
 
Introducción a NodeJS
Introducción a NodeJSIntroducción a NodeJS
Introducción a NodeJSBEEVA_es
 
Primeros pasos Symfony PHPVigo
Primeros pasos Symfony PHPVigoPrimeros pasos Symfony PHPVigo
Primeros pasos Symfony PHPVigoPHP Vigo
 
Django
DjangoDjango
Djangoykro
 

Similar a Redefiniendo el MVC con Grails (20)

Dragome en JavaConf Buenos Aires 2014
Dragome en JavaConf Buenos Aires 2014 Dragome en JavaConf Buenos Aires 2014
Dragome en JavaConf Buenos Aires 2014
 
Jobsket.com, Grails en un proyecto real
Jobsket.com, Grails en un proyecto realJobsket.com, Grails en un proyecto real
Jobsket.com, Grails en un proyecto real
 
Taller de Grails
Taller de GrailsTaller de Grails
Taller de Grails
 
Grails 2013 - PUCMM - Santiago - Sistemas
Grails 2013 - PUCMM - Santiago - SistemasGrails 2013 - PUCMM - Santiago - Sistemas
Grails 2013 - PUCMM - Santiago - Sistemas
 
Grails
GrailsGrails
Grails
 
[Code Camp 2009] Desarrollando sitios web escalables con ASP.NET MVC (Rodolfo...
[Code Camp 2009] Desarrollando sitios web escalables con ASP.NET MVC (Rodolfo...[Code Camp 2009] Desarrollando sitios web escalables con ASP.NET MVC (Rodolfo...
[Code Camp 2009] Desarrollando sitios web escalables con ASP.NET MVC (Rodolfo...
 
MyBatis como alternativa a Hibernate
MyBatis como alternativa a HibernateMyBatis como alternativa a Hibernate
MyBatis como alternativa a Hibernate
 
Groovy&Grails: Cambia la forma de desarrollar tus aplicaciones web
Groovy&Grails: Cambia la forma de desarrollar tus aplicaciones webGroovy&Grails: Cambia la forma de desarrollar tus aplicaciones web
Groovy&Grails: Cambia la forma de desarrollar tus aplicaciones web
 
Cambia la forma de desarrollar tus aplicaciones web con groovy y grails
Cambia la forma de desarrollar tus aplicaciones web con groovy y grailsCambia la forma de desarrollar tus aplicaciones web con groovy y grails
Cambia la forma de desarrollar tus aplicaciones web con groovy y grails
 
JQuery Mvc
JQuery   MvcJQuery   Mvc
JQuery Mvc
 
Jobsket Spring 2GX Madrid
Jobsket Spring 2GX MadridJobsket Spring 2GX Madrid
Jobsket Spring 2GX Madrid
 
Usando Django con Docker
Usando Django con DockerUsando Django con Docker
Usando Django con Docker
 
Taller de Grails
Taller de GrailsTaller de Grails
Taller de Grails
 
myprofly
myproflymyprofly
myprofly
 
Jc Web20 Open Source Why Floss2007
Jc Web20 Open Source Why Floss2007Jc Web20 Open Source Why Floss2007
Jc Web20 Open Source Why Floss2007
 
Jc Web20 Open Source Why Floss2007
Jc Web20 Open Source Why Floss2007Jc Web20 Open Source Why Floss2007
Jc Web20 Open Source Why Floss2007
 
Jerónimo López | Introducción a GraalVM | Codemotion Madrid 2018
Jerónimo López | Introducción a GraalVM | Codemotion Madrid  2018  Jerónimo López | Introducción a GraalVM | Codemotion Madrid  2018
Jerónimo López | Introducción a GraalVM | Codemotion Madrid 2018
 
Introducción a NodeJS
Introducción a NodeJSIntroducción a NodeJS
Introducción a NodeJS
 
Primeros pasos Symfony PHPVigo
Primeros pasos Symfony PHPVigoPrimeros pasos Symfony PHPVigo
Primeros pasos Symfony PHPVigo
 
Django
DjangoDjango
Django
 

Más de Jose Juan R. Zuñiga

Más de Jose Juan R. Zuñiga (15)

Apps software development with Vert.X
Apps software development with Vert.XApps software development with Vert.X
Apps software development with Vert.X
 
A lil' of Groovy for Ruby developers
A lil' of Groovy for Ruby developersA lil' of Groovy for Ruby developers
A lil' of Groovy for Ruby developers
 
Herramientas para el desarrollo de software
Herramientas para el desarrollo de softwareHerramientas para el desarrollo de software
Herramientas para el desarrollo de software
 
Agile Software Development
Agile Software DevelopmentAgile Software Development
Agile Software Development
 
Webapps testing with Groovy
Webapps testing with GroovyWebapps testing with Groovy
Webapps testing with Groovy
 
Creación de plugins con Grails
Creación de plugins con GrailsCreación de plugins con Grails
Creación de plugins con Grails
 
El desarrollador de software
El desarrollador de softwareEl desarrollador de software
El desarrollador de software
 
Groovy in Java7mx
Groovy in Java7mxGroovy in Java7mx
Groovy in Java7mx
 
Mirando hacia atrás: Retrospectivas
Mirando hacia atrás: RetrospectivasMirando hacia atrás: Retrospectivas
Mirando hacia atrás: Retrospectivas
 
Equipos en Scrum ¡oing!
Equipos en Scrum ¡oing!Equipos en Scrum ¡oing!
Equipos en Scrum ¡oing!
 
Creación de Builders y DSL's con Groovy
Creación de Builders y DSL's con GroovyCreación de Builders y DSL's con Groovy
Creación de Builders y DSL's con Groovy
 
El proceso de desarrollo con herramientas Open Source
El proceso de desarrollo con herramientas Open SourceEl proceso de desarrollo con herramientas Open Source
El proceso de desarrollo con herramientas Open Source
 
Introduccion a grails en Campusparty
Introduccion a grails en CampuspartyIntroduccion a grails en Campusparty
Introduccion a grails en Campusparty
 
Spring
SpringSpring
Spring
 
Spring Mvc Final
Spring Mvc FinalSpring Mvc Final
Spring Mvc Final
 

Último

Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxAlexander López
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..RobertoGumucio2
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxMariaBurgos55
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 

Último (20)

Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptx
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 

Redefiniendo el MVC con Grails

  • 1. El MVC redefinido con Grails (Controllers y GSP) José Juan R. Zuñiga (@neodevelop)
  • 2. Agenda Reuniones previas Groovy MVC Grails
  • 3. Reuniones previas 6ta. Reunión de SpringHispano.org, grails.orgmx y JavaMexico.org http://springhispano.org/?q=node/469 http://www.slideshare.net/domingo.suarez/taller-groovy
  • 4. Reuniones previas 6ta. Reunión de SpringHispano.org, grails.orgmx y JavaMexico.org http://springhispano.org/?q=node/374 http://www.slideshare.net/neodevelop/spring-mvc-final-presentation http://www.slideshare.net/domingo.suarez/grailsorgmx-priemra-reunion-presentation
  • 5. Lo más importante de todo esto…
  • 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
  • 10.
  • 16. Anvil
  • 17. Jaffa
  • 18.
  • 23. Otros frameworks MVC Ruby RubyonRails Perl Catalyst Cyclone Maypole Solstice … PHP Zend Tlalokes Kumbia CakePHP … Python Turbogears Django .Net MonoRail Maverick ASP.Net MVC
  • 25. ¿Qué es Grails? Una plataforma para desarrollo ágil en Web Un framework MVC full-stack
  • 26. ¿Qué es Grails? Open Source Corre en la JVM
  • 27. ¿Qué es Grails? Desarrollo de aplicaciones con Groovy Altamente expresivo
  • 28. ¿Qué es Grails? Totalmente orientado a objetos Dinámico Sintaxis familiar Perfecta integración con Java
  • 29. ¿Qué es Grails? Convención sobre configuración DRY (Don’trepeatyourself)
  • 31. ¿qué me provee? MVC zero-configurationDependency_Injectiongsptransacciones JNDI groovyInternacionalización Web_FlowTag_librariesCachinghibernatescaffolding RESTLayoutsAJAX JettyUnit testingIntegrationtestinggrailsplugins quartzacegiactivemqamazon-s3 gaeaxiscamelcriteriaGORM dwrextSpring flexfreemarkerjava geoipgwtivyjpajqueryldap mail openidpaypalpdfsakaispringmvctaggableterracottatomcattwitterwebtestxfireyui
  • 33. Recordemos nuestro HolaMundo(Java) publicclassMiClase{ privateString nombre; publicvoidsetNombre(String nombre){ this.nombre = nombre; } publicStringgetNombre(){ returnthis.nombre; } publicString saluda(){ return "Hola " + nombre + "!!!"; } publicstaticvoidmain(String[] args){ MiClasem = newMiClase(); m.setNombre("SpringHispano"); System.out.println(m.saluda()); } }
  • 34. Recordemos nuestro HolaMundo(Groovy) publicclassMiClase{ privateString nombre; publicvoidsetNombre(String nombre){ this.nombre = nombre; } publicStringgetNombre(){ returnthis.nombre; } publicString saluda(){ return "Hola " + nombre + "!!!"; } publicstaticvoidmain(String[] args){ MiClasem = newMiClase(); m.setNombre("SpringHispano"); System.out.println(m.saluda()); } }
  • 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…
  • 41. ¿Preguntas? …o comentarios… http://springhispano.org http://grails.org.mx @neodevelop