SlideShare a Scribd company logo
1 of 33
Download to read offline
Introducción a Grails


                            Graeme Rocher
                             SpringSource




                               NOT CONFIDENTIAL -- TELL EVERYONE


Friday, 30 September 2011
¿Que es Grails?

   • MVC sistema web inspirado en:
         – Convención en lugar de configuración
         – Don’t Repeat Yourself (Nó te repitas) (DRY)
         – Contiene características de sistemas como Rails, Django y
           TurboGears
   • http://grails.org




                                     NOT CONFIDENTIAL -- TELL EVERYONE   2


Friday, 30 September 2011
Why Groovy & Grails?

   • Toda la potencia de otros sistemas con plataformas dinámicas.
   • Construido con base de tecnologías Java.
         – Diseñado para Java por Ingenieros de Java.
   • Beneficiandose de tecnologías y herramientas existentes.
         – Caches distribuidos, replicando tecnologías etc.
         – Monitorización y debugging herramientas
         – Análisis de rendimiento




                                      NOT CONFIDENTIAL -- TELL EVERYONE   3


Friday, 30 September 2011
Quien utiliza Grails?




                            NOT CONFIDENTIAL -- TELL EVERYONE   4


Friday, 30 September 2011
Los Mejores en su clase

   •    Spring
   •    Hibernate
   •    Groovy                     Groovy               Spring
   •    Quartz
   •    Sitemesh
   •    Tomcat              Sitemesh
   •    Java                                                       Hibernate


                                      Java
                                                       Quartz




                               NOT CONFIDENTIAL -- TELL EVERYONE               5


Friday, 30 September 2011
Componentes de Grails


                                 Grails




                                                                                 Groovy
                Java
             Enterprise       Spring        Hibernate         SiteMesh
            Edition (JEE)


                                             The Java Development
                 The Java Language
                                                   Kit (JDK)



                                     The Java Virtual Machine




                                             NOT CONFIDENTIAL -- TELL EVERYONE            6


Friday, 30 September 2011
Como empezar




        Descargar Grails de                     Descargar Groovy de
        http://grails.org/Download              http://groovy.codehaus.org
        Descomprimir el archivo zip             Descomprimir el archivo zip en
        en una carpeta del disco duro           una carpeta del disco duro
        Configurar la variable de               Configurar la variable de
        enterno GRAILS_HOME                     enterno GROOVY_HOME
        haciendo referencia a la                haciendo referencia a la carpeta
        carpeta del punto anterior              del punto anterior
        Añadir a la variable PATH del           Añadir a la variable PATH del
        sistema la carpeta                      sistema la carpeta
        $GRAILS_HOME/bin                        $GROOVY_HOME/bin

                                    NOT CONFIDENTIAL -- TELL EVERYONE      7


Friday, 30 September 2011
Demo - Como Empezar




                            NOT CONFIDENTIAL -- TELL EVERYONE


Friday, 30 September 2011
Ejemplo de estructura de carpetas


                            Web Controllers
                            The Domain Model
                            Business Logic
                            View Helpers in Tags
                            Views & Layouts
                            JAR Archives
                            Additional Sources

                            Web Resources

                                                                 12
                             NOT CONFIDENTIAL -- TELL EVERYONE        9


Friday, 30 September 2011
Grails - Las Características Mas Importantes

       GORM - ORM construido en Hibernate
       MVC Completo
       “Domain Specific Languages”
         • Reglas de validación
         • “ORM Mapping”
         • “URL Mapping”
       Comunidad de desarrollo de plugins activa.
         • http://grails.org/Plugins
         • Mas 600 plugins desarrallodos por los usuarios.
         • Existen plugins para integrar otras tecnologías
            como Flex y SOAP.




                                      NOT CONFIDENTIAL -- TELL EVERYONE   10


Friday, 30 September 2011
Fácil ORM con GORM

     class Album {                            table - album
       String title
                                   id       title           artist   release_date
       String artist
       Date releaseDate
       static hasMany = [songs:Song]
     }
     class Song {                               table - song
         String title
         Double duration          id        title       duration     album_id
     }



                                       GORM classes, also
                                       known as domain
                                       classes, go in the domain
                                       directory


                                NOT CONFIDENTIAL -- TELL EVERYONE               11


Friday, 30 September 2011
Demo - GORM




                            NOT CONFIDENTIAL -- TELL EVERYONE


Friday, 30 September 2011
Fácil MVC con Grails

       Sistema MVC integral construido en Spring
         •   “Command objects”
         •   “Data binding”
         •   “Zero configuration”
         •   “URL Mappings”
         •   “Groovy Server Pages (GSP) “
         •   “Tag libraries”
         •   “CRUD (Scaffolding)”
         •   Internacionalización (i18n)




                                      NOT CONFIDENTIAL -- TELL EVERYONE   13


Friday, 30 September 2011
Fácil MVC con Grails


                                          Actions are properties
         class AlbumController {          assigned a block or
             def search = {               closure
                def albums= Album.findByTitleLike("%${params.q}%")

                  [albumResults:albums]
             }
         }
                                                       Return a model
                                                       as a map


                                                     Controllers go in
                                                     the “controllers”
                                                     directory


                                     NOT CONFIDENTIAL -- TELL EVERYONE   14


Friday, 30 September 2011
Demo - Controllers




                            NOT CONFIDENTIAL -- TELL EVERYONE


Friday, 30 September 2011
Plugins



           Plugin                 Plugin                 Plugin                  Plugin




                                                                       Register Bean Definitions
     Read Conventions



                    GrailsApplication                          ApplicationContext


                                  Grails Runtime Environment



                                             NOT CONFIDENTIAL -- TELL EVERYONE              16


Friday, 30 September 2011
Que puedes obtener con plugins...




                            NOT CONFIDENTIAL -- TELL EVERYONE   17


Friday, 30 September 2011
Que puedes obtener con plugins...


     • Pruebas con Grails: selenium,
       fitnesse, code coverage etc.




                             NOT CONFIDENTIAL -- TELL EVERYONE   17


Friday, 30 September 2011
Que puedes obtener con plugins...


     • Pruebas con Grails: selenium,
       fitnesse, code coverage etc.
     • JavaScript con Grails: Flex,
       GWT, ZK, jQuery etc.




                             NOT CONFIDENTIAL -- TELL EVERYONE   17


Friday, 30 September 2011
Que puedes obtener con plugins...


     • Pruebas con Grails: selenium,
       fitnesse, code coverage etc.
     • JavaScript con Grails: Flex,
       GWT, ZK, jQuery etc.
     • Seguridad con Grails: Spring
       Security, JSecurity, OpenID etc.




                                NOT CONFIDENTIAL -- TELL EVERYONE   17


Friday, 30 September 2011
Que puedes obtener con plugins...


     • Pruebas con Grails: selenium,
       fitnesse, code coverage etc.
     • JavaScript con Grails: Flex,
       GWT, ZK, jQuery etc.
     • Seguridad con Grails: Spring
       Security, JSecurity, OpenID etc.
     • Persistencia: MongoDB, Redis,
       SimpleDB etc.




                               NOT CONFIDENTIAL -- TELL EVERYONE   17


Friday, 30 September 2011
Página de Plugins

   • http://grails.org/Plugins




                                 NOT CONFIDENTIAL -- TELL EVERYONE   18


Friday, 30 September 2011
Novedades en Grails 2.0




                            NOT CONFIDENTIAL -- TELL EVERYONE


Friday, 30 September 2011
Grails 2.0

   • Librerías actualizadas: Groovy 1.8, Spring 3.1,
     Hibernate 3.6, Servlet 3.0 and Tomcat 7
   • Nueva línea de comandos y Modo Interactivo
   • Plugins precompilados como archivos JAR
   • Reloading Agent
   • HTML5 Scaffolding UI
   • Nuevos Modelos de Test y Documentación
   • Dirección de Archivos Estáticos Integrados (CSS,
     JS, Images)
   • Mejor Testing.

                            NOT CONFIDENTIAL -- TELL EVERYONE   20


Friday, 30 September 2011
Grails 2.0

   •    GORM Mejoras
   •    “Detached Criteria”
   •    Soporte de Multiples Bases De Datos
   •    Soporte de Migración de Databases
   •    jQuery Por Defecto
   • http://grails.org/doc/2.0.x/guide/
        introduction.html#whatsNew




                            NOT CONFIDENTIAL -- TELL EVERYONE   21


Friday, 30 September 2011
New UI




                            NOT CONFIDENTIAL -- TELL EVERYONE   22


Friday, 30 September 2011
New Unit Testing


    @TestFor(MyController)
    @Mock(Person)
    class MyControllerUnitTests {
        void setUp() {
                 new Person(...).save()
                 new Person(...).save()
           }

           void testIndex() {
               def model = this.controller.index()
               ...
           }
    }




                                          NOT CONFIDENTIAL -- TELL EVERYONE   23


Friday, 30 September 2011
GORM API




                            NOT CONFIDENTIAL -- TELL EVERYONE   24


Friday, 30 September 2011
GORM API




                            NOT CONFIDENTIAL -- TELL EVERYONE   24


Friday, 30 September 2011
Demo - Grails 2.0




                            NOT CONFIDENTIAL -- TELL EVERYONE


Friday, 30 September 2011
Libros




                            NOT CONFIDENTIAL -- TELL EVERYONE   26


Friday, 30 September 2011
Mas Información

       Grails
         • Pagina web: http://grails.org
         • Guia de usuario: http://grails.org/doc/latest
       Groovy
         • http://groovy.codehaus.org
       SpringSource
         • http://www.springsource.com




                                        NOT CONFIDENTIAL -- TELL EVERYONE   27


Friday, 30 September 2011
Preguntas & Respuestas




                            NOT CONFIDENTIAL -- TELL EVERYONE


Friday, 30 September 2011

More Related Content

Similar to Introduction grails-es

Jobsket Spring 2GX Madrid
Jobsket Spring 2GX MadridJobsket Spring 2GX Madrid
Jobsket Spring 2GX MadridJobsket
 
Java 9, 10, 11 ,12, 13 and more
Java 9, 10, 11 ,12, 13 and moreJava 9, 10, 11 ,12, 13 and more
Java 9, 10, 11 ,12, 13 and moreHillmerC
 
Introducción a Symfony
Introducción a SymfonyIntroducción a Symfony
Introducción a SymfonyIsmael Ambrosi
 
Construccion de proyectos con gradle
Construccion de proyectos con gradleConstruccion de proyectos con gradle
Construccion de proyectos con gradleDavid Gómez García
 
Gradle Glam: Plugins Galore
Gradle Glam: Plugins GaloreGradle Glam: Plugins Galore
Gradle Glam: Plugins GaloreSoftware Guru
 
Presentacion Spring Roo Java Mania
Presentacion Spring Roo Java ManiaPresentacion Spring Roo Java Mania
Presentacion Spring Roo Java ManiaJavier Onsurbe
 
Entorno de desarrollo productivo
Entorno de desarrollo productivoEntorno de desarrollo productivo
Entorno de desarrollo productivoPablo Godel
 
Conociendo las tecnologías de TypeSafe (Primer meetup Scala Perú Nov 2015)
Conociendo las tecnologías de TypeSafe (Primer meetup Scala Perú Nov 2015)Conociendo las tecnologías de TypeSafe (Primer meetup Scala Perú Nov 2015)
Conociendo las tecnologías de TypeSafe (Primer meetup Scala Perú Nov 2015)Marco Antonio Ordoñez Valverde
 
Grails: Aumenta tu productividad en tus aplicaciones web Java
Grails: Aumenta tu productividad en tus aplicaciones web JavaGrails: Aumenta tu productividad en tus aplicaciones web Java
Grails: Aumenta tu productividad en tus aplicaciones web JavaDani Latorre
 
Qué puede aprender Drupal de Plone
Qué puede aprender Drupal de PloneQué puede aprender Drupal de Plone
Qué puede aprender Drupal de Plonementtes
 
Greach 2011 - Cloud Foundry
Greach 2011 - Cloud FoundryGreach 2011 - Cloud Foundry
Greach 2011 - Cloud Foundrygreach_es
 
Presentacion Spring Roo Java Mania
Presentacion Spring Roo Java ManiaPresentacion Spring Roo Java Mania
Presentacion Spring Roo Java ManiaJavier Onsurbe
 
Codemotion Madrid 2019 - ¡GraalVM y Micronaut: compañeros perfectos!
Codemotion Madrid 2019 - ¡GraalVM y Micronaut: compañeros perfectos!Codemotion Madrid 2019 - ¡GraalVM y Micronaut: compañeros perfectos!
Codemotion Madrid 2019 - ¡GraalVM y Micronaut: compañeros perfectos!Iván López Martín
 
Frontend Tools | Herramientas para Frontends
Frontend Tools | Herramientas para FrontendsFrontend Tools | Herramientas para Frontends
Frontend Tools | Herramientas para FrontendsDavid Ballén
 

Similar to Introduction grails-es (20)

Jobsket Spring 2GX Madrid
Jobsket Spring 2GX MadridJobsket Spring 2GX Madrid
Jobsket Spring 2GX Madrid
 
Java 9, 10, 11 ,12, 13 and more
Java 9, 10, 11 ,12, 13 and moreJava 9, 10, 11 ,12, 13 and more
Java 9, 10, 11 ,12, 13 and more
 
Grails
GrailsGrails
Grails
 
Introducción a Symfony
Introducción a SymfonyIntroducción a Symfony
Introducción a Symfony
 
Construccion de proyectos con gradle
Construccion de proyectos con gradleConstruccion de proyectos con gradle
Construccion de proyectos con gradle
 
Gradle Glam: Plugins Galore
Gradle Glam: Plugins GaloreGradle Glam: Plugins Galore
Gradle Glam: Plugins Galore
 
Presentacion Spring Roo Java Mania
Presentacion Spring Roo Java ManiaPresentacion Spring Roo Java Mania
Presentacion Spring Roo Java Mania
 
Intro a Grails @ ITESCA
Intro a Grails @ ITESCAIntro a Grails @ ITESCA
Intro a Grails @ ITESCA
 
ATICA DevOps
ATICA DevOpsATICA DevOps
ATICA DevOps
 
Entorno de desarrollo productivo
Entorno de desarrollo productivoEntorno de desarrollo productivo
Entorno de desarrollo productivo
 
Conociendo las tecnologías de TypeSafe (Primer meetup Scala Perú Nov 2015)
Conociendo las tecnologías de TypeSafe (Primer meetup Scala Perú Nov 2015)Conociendo las tecnologías de TypeSafe (Primer meetup Scala Perú Nov 2015)
Conociendo las tecnologías de TypeSafe (Primer meetup Scala Perú Nov 2015)
 
Grails: Aumenta tu productividad en tus aplicaciones web Java
Grails: Aumenta tu productividad en tus aplicaciones web JavaGrails: Aumenta tu productividad en tus aplicaciones web Java
Grails: Aumenta tu productividad en tus aplicaciones web Java
 
Grails barcamp 2013
Grails barcamp 2013Grails barcamp 2013
Grails barcamp 2013
 
Qué puede aprender Drupal de Plone
Qué puede aprender Drupal de PloneQué puede aprender Drupal de Plone
Qué puede aprender Drupal de Plone
 
Springboot Overview
Springboot  OverviewSpringboot  Overview
Springboot Overview
 
Greach 2011 - Cloud Foundry
Greach 2011 - Cloud FoundryGreach 2011 - Cloud Foundry
Greach 2011 - Cloud Foundry
 
Presentacion Spring Roo Java Mania
Presentacion Spring Roo Java ManiaPresentacion Spring Roo Java Mania
Presentacion Spring Roo Java Mania
 
Codemotion Madrid 2019 - ¡GraalVM y Micronaut: compañeros perfectos!
Codemotion Madrid 2019 - ¡GraalVM y Micronaut: compañeros perfectos!Codemotion Madrid 2019 - ¡GraalVM y Micronaut: compañeros perfectos!
Codemotion Madrid 2019 - ¡GraalVM y Micronaut: compañeros perfectos!
 
Dbdeployer
DbdeployerDbdeployer
Dbdeployer
 
Frontend Tools | Herramientas para Frontends
Frontend Tools | Herramientas para FrontendsFrontend Tools | Herramientas para Frontends
Frontend Tools | Herramientas para Frontends
 

Recently uploaded

POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxRogerPrieto3
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 

Recently uploaded (15)

POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptx
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 

Introduction grails-es

  • 1. Introducción a Grails Graeme Rocher SpringSource NOT CONFIDENTIAL -- TELL EVERYONE Friday, 30 September 2011
  • 2. ¿Que es Grails? • MVC sistema web inspirado en: – Convención en lugar de configuración – Don’t Repeat Yourself (Nó te repitas) (DRY) – Contiene características de sistemas como Rails, Django y TurboGears • http://grails.org NOT CONFIDENTIAL -- TELL EVERYONE 2 Friday, 30 September 2011
  • 3. Why Groovy & Grails? • Toda la potencia de otros sistemas con plataformas dinámicas. • Construido con base de tecnologías Java. – Diseñado para Java por Ingenieros de Java. • Beneficiandose de tecnologías y herramientas existentes. – Caches distribuidos, replicando tecnologías etc. – Monitorización y debugging herramientas – Análisis de rendimiento NOT CONFIDENTIAL -- TELL EVERYONE 3 Friday, 30 September 2011
  • 4. Quien utiliza Grails? NOT CONFIDENTIAL -- TELL EVERYONE 4 Friday, 30 September 2011
  • 5. Los Mejores en su clase • Spring • Hibernate • Groovy Groovy Spring • Quartz • Sitemesh • Tomcat Sitemesh • Java Hibernate Java Quartz NOT CONFIDENTIAL -- TELL EVERYONE 5 Friday, 30 September 2011
  • 6. Componentes de Grails Grails Groovy Java Enterprise Spring Hibernate SiteMesh Edition (JEE) The Java Development The Java Language Kit (JDK) The Java Virtual Machine NOT CONFIDENTIAL -- TELL EVERYONE 6 Friday, 30 September 2011
  • 7. Como empezar Descargar Grails de Descargar Groovy de http://grails.org/Download http://groovy.codehaus.org Descomprimir el archivo zip Descomprimir el archivo zip en en una carpeta del disco duro una carpeta del disco duro Configurar la variable de Configurar la variable de enterno GRAILS_HOME enterno GROOVY_HOME haciendo referencia a la haciendo referencia a la carpeta carpeta del punto anterior del punto anterior Añadir a la variable PATH del Añadir a la variable PATH del sistema la carpeta sistema la carpeta $GRAILS_HOME/bin $GROOVY_HOME/bin NOT CONFIDENTIAL -- TELL EVERYONE 7 Friday, 30 September 2011
  • 8. Demo - Como Empezar NOT CONFIDENTIAL -- TELL EVERYONE Friday, 30 September 2011
  • 9. Ejemplo de estructura de carpetas Web Controllers The Domain Model Business Logic View Helpers in Tags Views & Layouts JAR Archives Additional Sources Web Resources 12 NOT CONFIDENTIAL -- TELL EVERYONE 9 Friday, 30 September 2011
  • 10. Grails - Las Características Mas Importantes GORM - ORM construido en Hibernate MVC Completo “Domain Specific Languages” • Reglas de validación • “ORM Mapping” • “URL Mapping” Comunidad de desarrollo de plugins activa. • http://grails.org/Plugins • Mas 600 plugins desarrallodos por los usuarios. • Existen plugins para integrar otras tecnologías como Flex y SOAP. NOT CONFIDENTIAL -- TELL EVERYONE 10 Friday, 30 September 2011
  • 11. Fácil ORM con GORM class Album { table - album String title id title artist release_date String artist Date releaseDate static hasMany = [songs:Song] } class Song { table - song String title Double duration id title duration album_id } GORM classes, also known as domain classes, go in the domain directory NOT CONFIDENTIAL -- TELL EVERYONE 11 Friday, 30 September 2011
  • 12. Demo - GORM NOT CONFIDENTIAL -- TELL EVERYONE Friday, 30 September 2011
  • 13. Fácil MVC con Grails Sistema MVC integral construido en Spring • “Command objects” • “Data binding” • “Zero configuration” • “URL Mappings” • “Groovy Server Pages (GSP) “ • “Tag libraries” • “CRUD (Scaffolding)” • Internacionalización (i18n) NOT CONFIDENTIAL -- TELL EVERYONE 13 Friday, 30 September 2011
  • 14. Fácil MVC con Grails Actions are properties class AlbumController { assigned a block or def search = { closure def albums= Album.findByTitleLike("%${params.q}%") [albumResults:albums] } } Return a model as a map Controllers go in the “controllers” directory NOT CONFIDENTIAL -- TELL EVERYONE 14 Friday, 30 September 2011
  • 15. Demo - Controllers NOT CONFIDENTIAL -- TELL EVERYONE Friday, 30 September 2011
  • 16. Plugins Plugin Plugin Plugin Plugin Register Bean Definitions Read Conventions GrailsApplication ApplicationContext Grails Runtime Environment NOT CONFIDENTIAL -- TELL EVERYONE 16 Friday, 30 September 2011
  • 17. Que puedes obtener con plugins... NOT CONFIDENTIAL -- TELL EVERYONE 17 Friday, 30 September 2011
  • 18. Que puedes obtener con plugins... • Pruebas con Grails: selenium, fitnesse, code coverage etc. NOT CONFIDENTIAL -- TELL EVERYONE 17 Friday, 30 September 2011
  • 19. Que puedes obtener con plugins... • Pruebas con Grails: selenium, fitnesse, code coverage etc. • JavaScript con Grails: Flex, GWT, ZK, jQuery etc. NOT CONFIDENTIAL -- TELL EVERYONE 17 Friday, 30 September 2011
  • 20. Que puedes obtener con plugins... • Pruebas con Grails: selenium, fitnesse, code coverage etc. • JavaScript con Grails: Flex, GWT, ZK, jQuery etc. • Seguridad con Grails: Spring Security, JSecurity, OpenID etc. NOT CONFIDENTIAL -- TELL EVERYONE 17 Friday, 30 September 2011
  • 21. Que puedes obtener con plugins... • Pruebas con Grails: selenium, fitnesse, code coverage etc. • JavaScript con Grails: Flex, GWT, ZK, jQuery etc. • Seguridad con Grails: Spring Security, JSecurity, OpenID etc. • Persistencia: MongoDB, Redis, SimpleDB etc. NOT CONFIDENTIAL -- TELL EVERYONE 17 Friday, 30 September 2011
  • 22. Página de Plugins • http://grails.org/Plugins NOT CONFIDENTIAL -- TELL EVERYONE 18 Friday, 30 September 2011
  • 23. Novedades en Grails 2.0 NOT CONFIDENTIAL -- TELL EVERYONE Friday, 30 September 2011
  • 24. Grails 2.0 • Librerías actualizadas: Groovy 1.8, Spring 3.1, Hibernate 3.6, Servlet 3.0 and Tomcat 7 • Nueva línea de comandos y Modo Interactivo • Plugins precompilados como archivos JAR • Reloading Agent • HTML5 Scaffolding UI • Nuevos Modelos de Test y Documentación • Dirección de Archivos Estáticos Integrados (CSS, JS, Images) • Mejor Testing. NOT CONFIDENTIAL -- TELL EVERYONE 20 Friday, 30 September 2011
  • 25. Grails 2.0 • GORM Mejoras • “Detached Criteria” • Soporte de Multiples Bases De Datos • Soporte de Migración de Databases • jQuery Por Defecto • http://grails.org/doc/2.0.x/guide/ introduction.html#whatsNew NOT CONFIDENTIAL -- TELL EVERYONE 21 Friday, 30 September 2011
  • 26. New UI NOT CONFIDENTIAL -- TELL EVERYONE 22 Friday, 30 September 2011
  • 27. New Unit Testing @TestFor(MyController) @Mock(Person) class MyControllerUnitTests { void setUp() { new Person(...).save() new Person(...).save() } void testIndex() { def model = this.controller.index() ... } } NOT CONFIDENTIAL -- TELL EVERYONE 23 Friday, 30 September 2011
  • 28. GORM API NOT CONFIDENTIAL -- TELL EVERYONE 24 Friday, 30 September 2011
  • 29. GORM API NOT CONFIDENTIAL -- TELL EVERYONE 24 Friday, 30 September 2011
  • 30. Demo - Grails 2.0 NOT CONFIDENTIAL -- TELL EVERYONE Friday, 30 September 2011
  • 31. Libros NOT CONFIDENTIAL -- TELL EVERYONE 26 Friday, 30 September 2011
  • 32. Mas Información Grails • Pagina web: http://grails.org • Guia de usuario: http://grails.org/doc/latest Groovy • http://groovy.codehaus.org SpringSource • http://www.springsource.com NOT CONFIDENTIAL -- TELL EVERYONE 27 Friday, 30 September 2011
  • 33. Preguntas & Respuestas NOT CONFIDENTIAL -- TELL EVERYONE Friday, 30 September 2011