Redefiniendo el MVC con Grails

  • 2,374 views
Uploaded 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

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

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
2,374
On Slideshare
0
From Embeds
0
Number of Embeds
3

Actions

Shares
Downloads
62
Comments
0
Likes
2

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 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…
  • 6. Los ponentes…
  • 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 )
  • 8. ¿Cómo trabaja MVC?
  • 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. Frameworks MVC en Java
    JPublish
    Jucas
    WebOnSwing
    Chrysalis
    VRaptor
    Swinglets
    Millstone
    Wicket
    Java Server Faces
    SpringMVC
  • 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
  • 24. Pero nosotros hablaremos de…
  • 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)
  • 30. Stack de tecnologías de Grails
  • 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
  • 32. Repasemos un poco…
  • 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