• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Redefiniendo el MVC con Grails
 

Redefiniendo el MVC con Grails

on

  • 3,353 views

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

Statistics

Views

Total Views
3,353
Views on SlideShare
3,257
Embed Views
96

Actions

Likes
2
Downloads
59
Comments
0

4 Embeds 96

http://www.springhispano.org 57
http://www.slideshare.net 22
http://springhispano.org 16
http://www.linkedin.com 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Redefiniendo el MVC con Grails Redefiniendo el MVC con Grails Presentation Transcript

    • 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
      • Struts
      • Turbine
      • Expresso
      • Tapestry
      • Apache Cocoon
      • Maverik
      • Anvil
      • Jaffa
      • Japple
      JPublish
      Jucas
      WebOnSwing
      Chrysalis
      VRaptor
      Swinglets
      Millstone
      Wicket
      Java Server Faces
      • MyFaces
      • Tomahawk
      • IceFaces
      • Trinidad
      • Tobago
      SpringMVC
    • 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)
    • Stack de tecnologías de Grails
    • ¿qué me provee?
      MVC zero-configurationDependency_Injectiongsptransacciones JNDI groovyInternacionalización Web_FlowTag_librariesCachinghibernatescaffolding RESTLayoutsAJAX JettyUnit testingIntegrationtestinggrailsplugins quartzacegiactivemqamazon-s3 gaeaxiscamelcriteriaGORM dwrextSpring
      flexfreemarkerjava geoipgwtivyjpajqueryldap mail openidpaypalpdfsakaispringmvctaggableterracottatomcattwitterwebtestxfireyui
    • Repasemos un poco…
    • 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());
      }
      }
    • 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());
      }
      }
    • Mejor: A la manera Groovy!!!
      classMiClase{
      String nombre
      def saluda(){
      return "Hola $nombre !!!";
      }
      }
      defm = newMiClase()
      m.setNombre("SpringHispano")
      println(m.saluda())
    • 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
    • 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
    • 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
    • Un ejemplo…
      Claro si no a que venimos a la reunión…
      Creemos una aplicación…
      Veamos que podemos hacer enfocandonos en el MVC…
    • Más Grails
      Mappings
      Internacionalización
      Ajax
      WebFlow
      GORM
      Servicios
      Plugins
      Seguridad
      Web Services
      Más…
    • ¿Preguntas?
      …o comentarios…
      http://springhispano.org
      http://grails.org.mx
      @neodevelop