SlideShare ist ein Scribd-Unternehmen logo
1 von 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)

Weitere ähnliche Inhalte

Was ist angesagt?

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.
 

Was ist angesagt? (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
 

Ähnlich wie 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
 

Ähnlich wie 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
 

Mehr von Jose Juan R. Zuñiga

Mehr von 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
 

Kürzlich hochgeladen

POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxRogerPrieto3
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 

Kürzlich hochgeladen (15)

POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptx
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 

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