Your SlideShare is downloading. ×
0
El MVC redefinido con Grails (Controllers y GSP)<br />José Juan R. Zuñiga (@neodevelop)<br />
Agenda<br />Reuniones previas<br />Groovy<br />MVC<br />Grails<br />
Reuniones previas<br />6ta. Reunión de SpringHispano.org, grails.orgmx y JavaMexico.org<br />http://springhispano.org/?q=n...
Reuniones previas<br />6ta. Reunión de SpringHispano.org, grails.orgmx y JavaMexico.org<br />http://springhispano.org/?q=n...
Lo más importante de todo esto…<br />
Los ponentes…<br />
Hablemos de MVC<br />MVC = Model–View–Controller<br />Es un patrón de diseño que provee un mecanismo para construir una es...
¿Cómo trabaja MVC?<br />
Motivaciones<br />Facilita la carga de mantenimiento<br />Los cambios en el negocio tienen impacto mínimo en el mejor de l...
Frameworks MVC en Java<br /><ul><li>Struts
Turbine
Expresso
Tapestry
Apache Cocoon
Maverik
Anvil
Jaffa
Japple</li></ul>JPublish<br />Jucas<br />WebOnSwing<br />Chrysalis<br />VRaptor<br />Swinglets<br />Millstone<br />Wicket<...
Tomahawk
IceFaces
Trinidad
Tobago</li></ul>SpringMVC<br />
Otros frameworks MVC<br />Ruby<br />RubyonRails<br />Perl<br />Catalyst<br />Cyclone<br />Maypole<br />Solstice<br />…<br ...
Pero nosotros hablaremos de…<br />
¿Qué es Grails?<br />Una plataforma para desarrollo ágil en Web<br />Un framework MVC full-stack<br />
¿Qué es Grails?<br />Open Source<br />Corre en la JVM<br />
¿Qué es Grails?<br />Desarrollo de aplicaciones con Groovy<br />Altamente expresivo<br />
¿Qué es Grails?<br />Totalmente orientado a objetos<br />Dinámico<br />Sintaxis familiar<br />Perfecta integración con Jav...
¿Qué es Grails?<br />Convención sobre configuración<br />DRY (Don’trepeatyourself)<br />
Upcoming SlideShare
Loading in...5
×

Redefiniendo el MVC con Grails

2,456

Published on

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

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,456
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
63
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Transcript of "Redefiniendo el MVC con Grails"

  1. 1. El MVC redefinido con Grails (Controllers y GSP)<br />José Juan R. Zuñiga (@neodevelop)<br />
  2. 2. Agenda<br />Reuniones previas<br />Groovy<br />MVC<br />Grails<br />
  3. 3. Reuniones previas<br />6ta. Reunión de SpringHispano.org, grails.orgmx y JavaMexico.org<br />http://springhispano.org/?q=node/469<br />http://www.slideshare.net/domingo.suarez/taller-groovy<br />
  4. 4. Reuniones previas<br />6ta. Reunión de SpringHispano.org, grails.orgmx y JavaMexico.org<br />http://springhispano.org/?q=node/374<br />http://www.slideshare.net/neodevelop/spring-mvc-final-presentation<br />http://www.slideshare.net/domingo.suarez/grailsorgmx-priemra-reunion-presentation<br />
  5. 5. Lo más importante de todo esto…<br />
  6. 6. Los ponentes…<br />
  7. 7. Hablemos de MVC<br />MVC = Model–View–Controller<br />Es un patrón de diseño que provee un mecanismo para construir una esbelta y limpia capa web<br />Claramente separa el negocio, la navegación y la lógica de presentación<br />Aunque…ya no solo aplica a Web, ahora también es implementado en Desktop( el mejor caso: Griffon - ?:D )<br />
  8. 8. ¿Cómo trabaja MVC?<br />
  9. 9. Motivaciones<br />Facilita la carga de mantenimiento<br />Los cambios en el negocio tienen impacto mínimo en el mejor de los casos nulo<br />Facilita el desarrollo en un equipo multidisciplinario<br />Zapatero a tu zapato, DBA a tu base de datos, desarrollador de persistencia a tus DAO’s, Diseñador a tu diseño….<br />Uso de herramientas especializadas<br />Existen lenguajes de plantillas y etiquetado que son mejores para crear HTML<br />Facilita las pruebas<br />Podríamos probar mucho más código fuera de un contenedor Web<br />
  10. 10. Frameworks MVC en Java<br /><ul><li>Struts
  11. 11. Turbine
  12. 12. Expresso
  13. 13. Tapestry
  14. 14. Apache Cocoon
  15. 15. Maverik
  16. 16. Anvil
  17. 17. Jaffa
  18. 18. Japple</li></ul>JPublish<br />Jucas<br />WebOnSwing<br />Chrysalis<br />VRaptor<br />Swinglets<br />Millstone<br />Wicket<br />Java Server Faces<br /><ul><li>MyFaces
  19. 19. Tomahawk
  20. 20. IceFaces
  21. 21. Trinidad
  22. 22. Tobago</li></ul>SpringMVC<br />
  23. 23. Otros frameworks MVC<br />Ruby<br />RubyonRails<br />Perl<br />Catalyst<br />Cyclone<br />Maypole<br />Solstice<br />…<br />PHP<br />Zend<br />Tlalokes<br />Kumbia<br />CakePHP<br />…<br />Python<br />Turbogears<br />Django<br />.Net<br />MonoRail<br />Maverick<br />ASP.Net MVC<br />
  24. 24. Pero nosotros hablaremos de…<br />
  25. 25. ¿Qué es Grails?<br />Una plataforma para desarrollo ágil en Web<br />Un framework MVC full-stack<br />
  26. 26. ¿Qué es Grails?<br />Open Source<br />Corre en la JVM<br />
  27. 27. ¿Qué es Grails?<br />Desarrollo de aplicaciones con Groovy<br />Altamente expresivo<br />
  28. 28. ¿Qué es Grails?<br />Totalmente orientado a objetos<br />Dinámico<br />Sintaxis familiar<br />Perfecta integración con Java<br />
  29. 29. ¿Qué es Grails?<br />Convención sobre configuración<br />DRY (Don’trepeatyourself)<br />
  30. 30. Stack de tecnologías de Grails<br />
  31. 31. ¿qué me provee?<br />MVC zero-configurationDependency_Injectiongsptransacciones JNDI groovyInternacionalización Web_FlowTag_librariesCachinghibernatescaffolding RESTLayoutsAJAX JettyUnit testingIntegrationtestinggrailsplugins quartzacegiactivemqamazon-s3 gaeaxiscamelcriteriaGORM dwrextSpring <br />flexfreemarkerjava geoipgwtivyjpajqueryldap mail openidpaypalpdfsakaispringmvctaggableterracottatomcattwitterwebtestxfireyui<br />
  32. 32. Repasemos un poco…<br />
  33. 33. Recordemos nuestro HolaMundo(Java)<br />publicclassMiClase{<br />privateString nombre;<br />publicvoidsetNombre(String nombre){<br />this.nombre = nombre;<br /> }<br />publicStringgetNombre(){<br />returnthis.nombre;<br /> }<br />publicString saluda(){<br />return &quot;Hola &quot; + nombre + &quot;!!!&quot;;<br /> }<br />publicstaticvoidmain(String[] args){<br />MiClasem = newMiClase();<br />m.setNombre(&quot;SpringHispano&quot;);<br />System.out.println(m.saluda());<br /> }<br />}<br />
  34. 34. Recordemos nuestro HolaMundo(Groovy)<br />publicclassMiClase{<br />privateString nombre;<br />publicvoidsetNombre(String nombre){<br />this.nombre = nombre;<br /> }<br />publicStringgetNombre(){<br />returnthis.nombre;<br /> }<br />publicString saluda(){<br />return &quot;Hola &quot; + nombre + &quot;!!!&quot;;<br /> }<br />publicstaticvoidmain(String[] args){<br />MiClasem = newMiClase();<br />m.setNombre(&quot;SpringHispano&quot;);<br />System.out.println(m.saluda());<br /> }<br />}<br />
  35. 35. Mejor: A la manera Groovy!!!<br />classMiClase{<br />String nombre<br />def saluda(){<br />return &quot;Hola $nombre !!!&quot;;<br /> }<br />}<br />defm = newMiClase()<br />m.setNombre(&quot;SpringHispano&quot;)<br />println(m.saluda())<br />
  36. 36. MVC en Grails<br />Modelo<br />Clases del dominio<br />Validaciones en las clases de dominio<br />GORM<br />Se puede personalizar el mapeo<br />Relaciones entre clases<br />Uno a Uno<br />Uno a Muchos<br />Muchos a Muchos<br />Herencia<br />Objetos embedidos<br />Testing<br />
  37. 37. MVC en Grails<br />Controller<br />Definidos por Acciones en Closures<br />Provee de atributos en el request que facilitan el manejo<br />Ejemplos: flash, params<br />Provee un scope adicional a context y session: flash<br />Mejora en el manejo del Data Binding a través de params<br />CommandObjects<br />Restricciones en los métodos HTTP<br />Manejo de upload de archivos más sencillo<br />Interceptores<br />Filtros<br />Testing<br />
  38. 38. MVC en Grails<br />View<br />Scriptlets<br />GSP<br />Provee de una librería de tags poderosa<br />Tags lógicos<br />Tags iterativos<br />Tags para crear vínculos<br />Incluso podemos crear las propias :D<br />Sencillismo manejo de formularios a través de Tags<br />Paginación<br />Uso de templates<br />Ajax<br />Testing<br />
  39. 39. Un ejemplo…<br />Claro si no a que venimos a la reunión…<br />Creemos una aplicación…<br />Veamos que podemos hacer enfocandonos en el MVC…<br />
  40. 40. Más Grails<br />Mappings<br />Internacionalización<br />Ajax<br />WebFlow<br />GORM<br />Servicios<br />Plugins<br />Seguridad<br />Web Services<br />Más…<br />
  41. 41. ¿Preguntas?<br />…o comentarios…<br />http://springhispano.org<br />http://grails.org.mx<br />@neodevelop<br />
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×