Redefiniendo el MVC con Grails
Upcoming SlideShare
Loading in...5
×
 

Redefiniendo el MVC con Grails

on

  • 3,441 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,441
Views on SlideShare
3,343
Embed Views
98

Actions

Likes
2
Downloads
59
Comments
0

4 Embeds 98

http://www.springhispano.org 58
http://www.slideshare.net 22
http://springhispano.org 17
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