Redefiniendo el MVC con Grails

2.744 visualizaciones

Publicado el

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

Publicado en: Tecnología
0 comentarios
2 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

Sin descargas
Visualizaciones
Visualizaciones totales
2.744
En SlideShare
0
De insertados
0
Número de insertados
102
Acciones
Compartido
0
Descargas
63
Comentarios
0
Recomendaciones
2
Insertados 0
No insertados

No hay notas en la diapositiva.

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 />

×