Your SlideShare is downloading. ×
0
Intro a Grails @ ITESCA
Intro a Grails @ ITESCA
Intro a Grails @ ITESCA
Intro a Grails @ ITESCA
Intro a Grails @ ITESCA
Intro a Grails @ ITESCA
Intro a Grails @ ITESCA
Intro a Grails @ ITESCA
Intro a Grails @ ITESCA
Intro a Grails @ ITESCA
Intro a Grails @ ITESCA
Intro a Grails @ ITESCA
Intro a Grails @ ITESCA
Intro a Grails @ ITESCA
Intro a Grails @ ITESCA
Intro a Grails @ ITESCA
Intro a Grails @ ITESCA
Intro a Grails @ ITESCA
Intro a Grails @ ITESCA
Intro a Grails @ ITESCA
Intro a Grails @ ITESCA
Intro a Grails @ ITESCA
Intro a Grails @ ITESCA
Intro a Grails @ ITESCA
Intro a Grails @ ITESCA
Intro a Grails @ ITESCA
Intro a Grails @ ITESCA
Intro a Grails @ ITESCA
Intro a Grails @ ITESCA
Intro a Grails @ ITESCA
Intro a Grails @ ITESCA
Intro a Grails @ ITESCA
Intro a Grails @ ITESCA
Intro a Grails @ ITESCA
Intro a Grails @ ITESCA
Intro a Grails @ ITESCA
Intro a Grails @ ITESCA
Intro a Grails @ ITESCA
Intro a Grails @ ITESCA
Intro a Grails @ ITESCA
Intro a Grails @ ITESCA
Intro a Grails @ ITESCA
Intro a Grails @ ITESCA
Intro a Grails @ ITESCA
Intro a Grails @ ITESCA
Intro a Grails @ ITESCA
Intro a Grails @ ITESCA
Intro a Grails @ ITESCA
Intro a Grails @ ITESCA
Intro a Grails @ ITESCA
Intro a Grails @ ITESCA
Intro a Grails @ ITESCA
Intro a Grails @ ITESCA
Intro a Grails @ ITESCA
Intro a Grails @ ITESCA
Intro a Grails @ ITESCA
Intro a Grails @ ITESCA
Intro a Grails @ ITESCA
Intro a Grails @ ITESCA
Intro a Grails @ ITESCA
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Intro a Grails @ ITESCA

1,828

Published on

Introducción a Groovy en ITESCA, Ciudad Obregón, Sonora, México

Introducción a Groovy en ITESCA, Ciudad Obregón, Sonora, México

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,828
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
81
Comments
0
Likes
3
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. Agilidad en el desarrollo empresarial (o de como hacer webapps sin tanto dolor)
  • 2. Disculpa a ITESCA • Vi mal la hora del vuelo. • Lo perdí • Casi no llego, vengo corriendo del aeropuerto. • Pero ya estoy aquí :) © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
  • 3. Agenda • Groovy • Grails • Arquitectura • Componentes • Como usar la plataforma • !!Código¡¡ • Recursos. © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
  • 4. Objetivo • Conocer y aprender como simplificar el desarrollo web con Grails © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
  • 5. Sobre el ponente • Domingo Suárez Torres • Ciencias de la Informática @ IPN-UPIICSA • Gerente de Desarrollo @ Bursatec • Asigna, Mercado de Derivados • CTO @ SynergyJ y de SeptimoBit Software • Apasionado por el desarrollo de software • Fundador de JavaUp.org, SpringHispano.org, Grails.org.mx © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
  • 6. Trasfondo • Desarrollador Java desde 1999 • 7 años desarrollando aplicaciones JEE • Experiencia en sectores:Ventas, Construcción, Salud, Gobierno, Financiero. • Javero de hueso colorado. • Commiter en Codehaus • Desarrollador de plugins de Grails © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
  • 7. Java Plataforma políglota • Java • Groovy • Scala • Erlang • JRuby • Jython • JavaFX © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
  • 8. ¿Que es Groovy? • Groovy es un lenguaje ágil y dinámico para la Máquina Virtual de Java • Basado en los conceptos base del lenguage Java, incluye características inspiradas en otros lenguages como Python, Ruby y Smalltalk. • Habilita características de programación modernas con una curva de aprendizaje prácticamente plana para desarrolladores Java • Soporta Lenguajes de Dominio Específico y otras características de sintaxis corta © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
  • 9. ¿Que es Groovy? • Simplifica el ciclo de pruebas dado que soporta pruebas unitarias y mocking desde el inicio. • Se integra sin problemas con cualquier objeto y/o librería Java existentes • Compila directamente a código byte (igual que Java) puede ser usado virtualmente en cualquier lugar donde Java puede serlo también © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
  • 10. HolaMundo en Java public class HelloWorld { String name; public void setName(String name) { this.name = name; } public String getName(){ return name; } public String greet(){ return “Hello “ + name; } public static void main(String args[]){ HelloWorld helloWorld = new HelloWorld()‫‏‬ helloWorld.setName(“Groovy”)‫‏‬ System.out.println( helloWorld.greet() )‫‏‬ } } © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
  • 11. HolaMundo en Groovy public class HelloWorld { String name; public void setName(String name) { this.name = name; } public String getName(){ return name; } public String greet(){ return “Hello “ + name; } public static void main(String args[]){ HelloWorld helloWorld = new HelloWorld()‫‏‬ helloWorld.setName(“Groovy”)‫‏‬ System.out.println( helloWorld.greet() )‫‏‬ } } © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
  • 12. Manera Groovy ;) class HelloWorld { String name def greet() { quot;Hello $namequot; } } def helloWorld = new HelloWorld(name:quot;Groovyquot;) println helloWorld.greet() © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
  • 13. Groovy casi Java • Java es Groovy, Groovy es Java • Groovy ofrece una curva de aprendizaje sencilla para desarrolladores Java. Puedes empezar con sintaxis Java y moverte poco a poco a la sintaxis Groovy • 98% de código Java es código Groovy, virtualmente podrías renombrar un archivo *.java a .groovy y compilaría © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
  • 14. Groovy y Java 5 • Groovy soporta anotaciones (JSR 175) iguales a las de Java, es más, es el segundo lenguaje en la JVM que las soporta. ¿JavaFX? • hasta el momento no es posible definir anotaciones con Groovy • Groovy soporta Enums también • Por último también tiene habilitado el soporte de tipos genéricos, iguales a los de Java. © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
  • 15. Closures • Closures pueden ser interpretados como bloques de código reusable, probablemente las hayas visto en otros lenguajes como JavaScript o Ruby • Closures substituyen a las clases internas en la mayoría de los casos • Groovy permite “forzar el tipo” de una Closure a una interface de un solo método (proxy) • Una closure tendrá un parámetro por omisión llamado “it” si es que no se definen parámetros para la misma © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
  • 16. Ejemplos de closures def greet = { name -> println “Hello $name” } greet( “Groovy” )‫‏‬ // prints Hello Groovy def greet = { println “Hello $it” } greet( “Groovy” )‫‏‬ // prints Hello Groovy def iCanHaveTypedParametersToo = { int x, int y -> println “coordinates are ($x,$y)” } def myActionListener = { event -> // do something cool with event } as ActionListener © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
  • 17. Azúcar sintáctica: Toma 1 ¿No es adorable el Api de Collections? © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
  • 18. Azúcar sintáctica: Toma 2 © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
  • 19. Azúcar sintáctica: Toma 3 © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
  • 20. Detalles • Groovy es leeentooo.... No tanto como les gustaría a los alarmistas. • Es cuestión de tiempo • Si necesitas velocidad, puedes recurrir a Java. • A veces no importa tanto © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
  • 21. ¿Que es Grails? • Mas que un framework, es una plataforma para desarrollo de aplicaciones web © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
  • 22. Plataforma Grails • Integra componentes que van desde el sistema de construcción hasta la capa de acceso a base de datos. • El desarrollador programa en Groovy. • Basado en herramientas existentes y poderosas como: • Spring, Hibernate, Quartz, Sitemesh, etc. © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
  • 23. Plataforma Grails • Java 2 Enterprise Edition (J2EE, ahora JEE), es considerado muy complicado, más de lo necesario. • Spring y Hibernate han sido proyectos nacidos como Opensource que han mejorado la manera de desarrollar en Java. • Grails representa el siguiente nivel de abstracción para JEE. • Grails simplifica dramáticamente el uso de Spring y Hibernate. © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
  • 24. Spring como base • Sus principales características • Sistema de extensiones basada en plugins • Entorno de configuración para ejecución • Todo lo anterior, construido sobre Spring. © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
  • 25. Bases solidas • Spring • Hibernate • Groovy • Quartz • Sitemesh • Jetty • Apache Ant • Plataforma Java © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
  • 26. Arquitectura de Grails
  • 27. ¿Por que Groovy & Grails? • Todo el poder de frameworks de otras plataformas como RubyOnRails, Django • Basado en Tecnología Java, en desarrollo empresarial no hay alternativa. • Reuso de herramientas y tecnologías existentes • Caches Distribuidos • Herramientas para depuración,IDEs © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
  • 28. ¿Por que Groovy & Grails? • ¿Porque no? © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
  • 29. ¿Como iniciar? • Instalar un JDK para tu sistema operativo • Visitar http://grails.org y descargar la ultima versión estable. Se distribuye en Zip y TarGZ • Descomprimir el archivo • Establecer la variable de ambiente GRAILS_HOME y agregar a PATH el directorio bin de $GRAILS_HOME • Mayor detalle en: http://grails.org/Installation © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
  • 30. ¿Como desarrollo una aplicación? • Crear una aplicación y ejecutarla. • Analizar la estructura de directorios © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
  • 31. !!No te creo¡¡ © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
  • 32. IDEs y otras herramientas • Funciona muy bien con Eclipse • Mejor con IntelliJ IDEA • Plugin para NetBeans • Para minimalistas con Textmate • Ant • Maven © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
  • 33. Orden en Grails • El principio de “Convención sobre configuración” • No significa que no exista la configuración • No confundir por “Convención en lugar de configuración” © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
  • 34. Estructura de proyecto © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
  • 35. Estructura Grails © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
  • 36. Seguimos con lo básico El Modelo de dominio © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
  • 37. El modelo • Representa una parte muy importante del problema que intentamos resolver. • En Grails, el modelo generalmente es “persistente”, es decir se almacena su estado. © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
  • 38. El modelo • Para la persistencia se usa Hibernate. • Hibernate es un Mapeador Objeto- Relacional (ORM) • http://www.hibernate.org © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
  • 39. ¿Como creo un modelo? > grails create-domain-class Clase © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
  • 40. • Crear una clase de dominio llamada Conferencista y otra Conferencia • Hacer el CRUD de esas clases con scaffolding dinámico. © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
  • 41. Scaffolding: No es bala de plata • Dos tipo de andamiaje • Dinámico (El de la demo) • Estático (Necesario generar artefactos, es posible modificarlos al gusto) • Es una ayuda, no es la principal fortaleza de Grails. © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
  • 42. Consultas • ¿Se acuerdan de los DAOs? © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
  • 43. Métodos dinámicos © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
  • 44. Más dinámicos... © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
  • 45. GORM © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
  • 46. Ecosistema Grails • La comunidad esta creciendo mucho. • Gracias a la arquitectura de plugins de Grails, se puede extender la funcionalidad. • Existen mas de 50 plugins oficiales. • Seguridad • Interfases de usuario • WebServices © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
  • 47. Plugins • Vista • Flex, con Blaze DataServices • YahooUI, ExtJS, GWT, • Spring WebFlow • WebServices (XFire, Axis, Metro) © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
  • 48. Despliegue • Grails genera archivos WAR. • Se puedes desplegar en diversos servidores como: • Weblogic • Websphere • Tomcat • Jetty • SpringSource Application Platform © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
  • 49. ¿Quien lo usa? • LinkedIn • SAP • Tropicana • Sky • Más en: http://www.grails.org/Success+Stories © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
  • 50. Consejos • No lo adoptes si no tienes experiencia en Hibernate y Spring • A menos que no tengas deadlines... © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
  • 51. SpringHispano.org
  • 52. Grails.org.mx
  • 53. Muestrame el código © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
  • 54. Proyectos • Coetus • http://code.google.com/p/coetus/ • Geedback • http://code.google.com/p/geedback/ © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
  • 55. En la mira • JBoss Seam • Basado en estándares JEE • JSF y JPA • Marcando la pauta de nuevas especificaciones como WebBeans • Para los amantes de anotaciones :) © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
  • 56. Agradecimientos • A mi familia, que me dejo venir... • ITESCA © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
  • 57. Agradecimientos • Andres Almiray, por las láminas de introducción a Groovy © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
  • 58. Resumen • Grails no es solo un framework, es una plataforma de desarrollo web. • Grails es la próxima generación de abstracción de JEE basada en Spring y Hibernate. • Groovy y Grails se integran sin problemas al código Java existente y a toda la plataforma Java. • Grails == Simplificación de la plataforma JEE en web. © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
  • 59. Preguntas © 2008 Domingo Suarez; disponible bajo CC-SA 2.5
  • 60. Recursos • http://groovy.codehaus.org • http://grails.org • http://www.springhispano.org • http://groovy.org.es • http://grails.org.mx • http://www.javahispano.org • Podcast en SpringHispano.org y Grails.org.mx • http://www.domingosuarez.com • http://www.domix.org © 2008 Domingo Suarez; disponible bajo CC-SA 2.5

×