Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Seminario de Groovy y Grails

Seminario de Groovy y Grails

Seminario de Groovy & Grails organizado por Paradigma Tecnológico (http://www.paradigmatecnologico.com/) y javaHispano (http://javaHispano.org).

Paradigma

May 14, 2010
Tweet

More Decks by Paradigma

Other Decks in Technology

Transcript

  1. 1 Introducción a Grails 1   Introducción  a  Grails  

    14  de  Mayo  de  2010   Por  Alberto  Vilches,  albertovilches.com  
  2. Introducción a Grails 2   Agenda     ¿Qué  es

     Groovy?     ¿Qué  es  Grails?     Controladores     Vistas  y  taglib     Servicios     Gorm     PracGca     Plugin  acegi  
  3. Introducción a Grails 4   ¿Qué  es  Groovy?    

    Groovy  es  Java.     Dinámico  
  4. Introducción a Grails 5   ¿Qué  es  Groovy?    

    Groovy  es  Java.     Dinámico     Inspirado  en  Ruby,  Python  y  Smalltalk  
  5. Introducción a Grails 6   ¿Qué  es  Groovy?    

    Groovy  es  Java.     Dinámico     Inspirado  en  Ruby,  Python  y  Smalltalk     OOP  puro  
  6. Introducción a Grails 7   ¿Qué  es  Groovy?    

    Groovy  es  Java.     Dinámico     Inspirado  en  Ruby,  Python  y  Smalltalk     OOP  puro     Closures,  Gstrings,  Builders,  DSL  
  7. Introducción a Grails 8   ¿Qué  es  Groovy?    

    Groovy  es  Java.     Dinámico     Inspirado  en  Ruby,  Python  y  Smalltalk     OOP  puro     Closures,  Gstrings,  Builders,  DSL     No  compile  type-­‐checking  
  8. Introducción a Grails 9   ¿Qué  es  Groovy?    

    Groovy  es  Java.     Dinámico     Inspirado  en  Ruby,  Python  y  Smalltalk     OOP  puro     Closures,  Gstrings,  Builders,  DSL     No  compile  type-­‐checking     Más  lento  que  Java  
  9. Introducción a Grails 10   HelloWorld.java   public class HelloWorld

    { public static void main(String args[]) { HelloWorld hw = new HelloWorld(); hw.setNombre("Groovy"); System.out.println(hw.saluda()); } String nombre; public String getNombre() { return nombre; } public void setNombre(String nombre) { this.nombre = nombre; } public String saluda() { return "Hola "+ nombre; } }
  10. Introducción a Grails 11   HelloWorld.groovy   public class HelloWorld

    { public static void main(String args[]) { HelloWorld hw = new HelloWorld(); hw.setNombre("Groovy"); System.out.println(hw.saluda()); } String nombre; public String getNombre() { return nombre; } public void setNombre(String nombre) { this.nombre = nombre; } public String saluda() { return "Hola "+ nombre; } }
  11. Introducción a Grails 12   HelloWorld.groovy   class HelloWorld {

    static void main(String args[]) { HelloWorld hw = new HelloWorld(); hw.setNombre("Groovy"); System.out.println(hw.saluda()); } String nombre; String getNombre() { return nombre; } void setNombre(String nombre) { this.nombre = nombre; } String saluda() { return "Hola "+ nombre; } } Public  por  defecto  
  12. Introducción a Grails 13   HelloWorld.groovy   class HelloWorld {

    static void main(String args[]) { HelloWorld hw = new HelloWorld() hw.setNombre("Groovy”) System.out.println(hw.saluda()) } String nombre String getNombre() { return nombre } void setNombre(String nombre) { this.nombre = nombre } String saluda() { return "Hola "+ nombre } } ;  opcionales  
  13. Introducción a Grails 14   HelloWorld.groovy   class HelloWorld {

    static void main(String args[]) { HelloWorld hw = new HelloWorld() hw.setNombre("Groovy”) System.out.println(hw.saluda()) } String nombre String saluda() { return "Hola "+ nombre } } Ge\ers  y  se\ers  autogenerados  
  14. Introducción a Grails 15   HelloWorld.groovy   class HelloWorld {

    static main(args) { HelloWorld hw = new HelloWorld() hw.setNombre("Groovy”) System.out.println(hw.saluda()) } String nombre def saluda() { "Hola "+ nombre } } No  hace  falta  especificar  Gpo  ni  return  
  15. Introducción a Grails 16   HelloWorld.groovy   class HelloWorld {

    static main(args) { HelloWorld hw = new HelloWorld() hw.setNombre("Groovy") System.out.println(hw.saluda()) } String nombre def saluda() { "Hola ${nombre}" } } GStrings  
  16. Introducción a Grails 17   HelloWorld.groovy   class HelloWorld {

    String nombre def saluda() { "Hola ${nombre}" } } HelloWorld hw = new HelloWorld() hw.setNombre("Groovy") println hw.saluda() Scripts,  println  
  17. Introducción a Grails 18   HelloWorld.groovy   class HelloWorld {

    String nombre def saluda() { "Hola ${nombre}" } } HelloWorld hw = new HelloWorld() hw.setNombre("Groovy") hw.nombre = "Groovy” // atributo hw["nombre"] = "Groovy” // como array HelloWorld hw = new HelloWorld(nombre: "Groovy") POJOs  
  18. Introducción a Grails 19   Colecciones   Map map =

    new HashMap(); map.put(“clave”, “valor”); def map = [clave: “valor”]
  19. Introducción a Grails 20   Colecciones   Map map =

    new HashMap(); map.put(“clave”, “valor”); map.get(“clave”); def map = [clave: “valor”] map.clave map[“clave”]
  20. Introducción a Grails 21   Colecciones   Map map =

    new HashMap(); map.put(“clave”, “valor”); map.get(“clave”); List list = new ArrayList(); list.add(“primero”); list.add(“segundo”); def map = [clave: “valor”] map.clave map[“clave”] def list = [“primero”] list << “segundo”
  21. Introducción a Grails 22   Colecciones   List list =

    new ArrayList(); list.add(“primero”); list.add(“segundo”); List otra = new ArrayList(); otra.add(“tercero”); List suma = new ArrayList(); suma.addAll(list); suma.addAll(otra); def list = [“primero”,”segundo”] def otra = [“tercero”] def suma = list + otra
  22. Introducción a Grails 23   Iteraciones   for (String s

    : list) { System.out.println(s); } list.each { String s -> println s }
  23. Introducción a Grails 24   Iteraciones   for (String s

    : list) { System.out.println(s); } for (int n=1;n<6;n++) { System.out.println(n); } list.each { String s -> println s } 1.upto 5, { String s -> println s }
  24. Introducción a Grails 25   Iteraciones   Curso c =

    new Curso(); c.setNombre(“Groovy”); ... List cursos = new ArrayList(); cursos.add(c); ... List nombres = new ArrayList(); For (Curso c : cursos) { nombres.add(c.getNombre(); } def cursos = [new Curso(nombre:”Groovy”), new Curso(nombre:”Grails”)] def nombres = cursos*.nombre
  25. Introducción a Grails 27   ¿Qué  es  Grails?    

    Groovy  sobre  Spring     No  es  una  librería  
  26. Introducción a Grails 28   ¿Qué  es  Grails?    

    Groovy  sobre  Spring     No  es  una  librería     CoC  -­‐>  No  XML  
  27. Introducción a Grails 29   ¿Qué  es  Grails?    

    Groovy  sobre  Spring     No  es  una  librería     CoC  -­‐>  No  XML     Stack   completo   preconfigurado:   Hibernate,   Spring,   Sitemesh,  Quartz,  JUnit  
  28. Introducción a Grails 30   ¿Qué  es  Grails?    

    Groovy  sobre  Spring     No  es  una  librería     CoC  -­‐>  No  XML     Stack   completo   preconfigurado:   Hibernate,   Spring,   Sitemesh,  Quartz,  JUnit     TesGng  
  29. Introducción a Grails 31   ¿Qué  es  Grails?    

    Groovy  sobre  Spring     No  es  una  librería     CoC  -­‐>  No  XML     Stack   completo   preconfigurado:   Hibernate,   Spring,   Sitemesh,  Quartz,  JUnit     TesGng     Extensible:  plugins  
  30. Introducción a Grails 32   Prác?ca  1     Instalación

        Comandos     grails  help     grails  create-­‐app     grails  run-­‐app     grails  war  
  31. Introducción a Grails 49   Modelo  de  datos:  Gorm  

    Genero      1   *        Película  
  32. Introducción a Grails 58   Prác?ca  2     Crear

     controlador     grails  create-­‐controller       render  “hola  mundo”     request,  session,  params  
  33. Introducción a Grails 59   Prác?ca  3     Crear

     vistas     Crear  un  modelo:  Pelicula     MVC:  enviar  el  modelo  a  la  vista  
  34. Introducción a Grails 60   Prác?ca  4     GORM

        Clases  en  domain  -­‐>  tablas     Scaffolding     Configuración  con  MySQL  
  35. Introducción a Grails 61   Prác?ca  5     BootStrap

        Relaciones     hasMany     belongsTop  
  36. Introducción a Grails 62   Prác?ca  6     Validaciones

        Plugin  de  seguridad:  Acegi  
  37. Introducción a Grails 63   Acegi     Generación  de

     manager  y  registro     AcGvar  anotaciones     Cargar  roles  en  bd     Securizar  controladores  
  38. Introducción a Grails 64   Acegi     Generación  de

     manager  y  registro     AcGvar  anotaciones     Cargar  roles  en  bd     Securizar  controladores