Post on 11-Jun-2015
description
DESARROLLO DE APLICACIONES WEB
CON
GROOVY Y GRAILS
por Alberto Vilcheshttp://albertovilches.com
Twitter: @albertovilchesMiércoles 15 Junio 20011
SOBRE MI
Pasado• Trabajando en desarrollo desde 1998• Programador en Clipper y Delphi• Programador en Java y J2EE desde 2001• Instructor y consultor de Bea• Administrador de sistemas en AenaPresente• Programador freelance en Grails y Flex• Partner de Escuela de Groovy• Evangelizador Groovy y Grails• Fundador de la conferencia Greach
AGENDA
• Un poco de Groovy
• Un poco de Grails
• Código en vivo entre medias
¿QUÉ ES GROOVY?
2003 - James Strachan’s Bloghttp://radio-weblogs.com/0112098/2003/08/29.html
2007 - Groovy 1.0
2008 - Groovy 1.1 -> 1.5
2009 - Groovy 1.7
2011 - Groovy 1.8
Guillaume LaforgeAndres Almiray (Griffon)Graeme Rocher (Grails)Peter Niederwieser (Spock)Jochen TheodoruHamlet D’Arcy…
RECURSOS
¿QUÉ ES GROOVY?
• Groovy es Java• Dinámico• Inspirado en Ruby, Python y Smalltalk• OOP puro• Closures, Gstrings, Builders, DSL
¿QUÉ ES GROOVY?
• Groovy es Java.• Dinámico• Inspirado en Ruby, Python y Smalltalk• OOP puro• Closures, Gstrings, Builders, DSL• No compile type-checking• Ligeramente más lento que Java
HELLOWORLD.JAVA
HELLOWORLD.GROOVY
HELLOWORLD.GROOVY
Public por defecto; opcionales
HELLOWORLD.GROOVY
Getters y setters autogeneradosreturn opcional
HELLOWORLD.GROOVY
No hace falta especificar tipoGstrings - println
HELLOWORLD.GROOVY
Scripts
POGOS
SINTAXIS NATIVA COLECCIONES
SINTAXIS NATIVA COLECCIONES
BUCLES
BUCLES
GDK
GDK
XML
¿QUÉ ES GRAILS?
• Groovy sobre Spring• RAD en Java, no framework• CoC -> No XML• MVC (binding, i18n, validation) + persistencia• Servidor (Tomcat) y bbdd (HSQL) embebidos• Debug en caliente, Genera WAR.• Scaffolding• Testing• Extensible: plugins
QUE INCLUYE
Stack completo preconfigurado:
• Testing y build• Junit y Ant
• Vistas• SpringMVC, Sitemesh, GSP, taglib
• Servicios• transacciones, Spring
• Persistencia: GORM• mapeo automático con Hibernate
DEMO
• Crear proyecto• grails create-app Demo• Crear un controlador• grails create-controller HelloWorld• render “hello world!”
• Lanzar servidor• grails run-app
• Modificar en caliente• Empaquetar la aplicación
• grails war
ESTRUCTURA DEL PROYECTO
CONTROLADORES
CONTROLADORES
CONTROLADORES
VISTAS
VISTAS
VISTAS
VISTAS
MODELO -> VISTA
CONTROLADORES
paramssessionrequestresponse…
VISTAS
VISTAS
TAGLIBS
TAGLIBS
TAGLIBS
TAGLIBS
CONFIGURACION
MODELO DE DATOS: GORM
MODELO DE DATOS: GORM
MODELO DE DATOS: GORM
MODELO DE DATOS: GORM
Genero 1 * Película
MODELO DE DATOS: GORM
SERVICIOS
SERVICIOS
SERVICIOS
SERVICIOS
SERVICIOS
SERVICIOS
SERVICIOS
singletonprototyperequestsession
Y MUCHO MÁS
• I18n• Filters• Layouts (Sitemesh)• Testing• Plugins
• Quartz• Xfire• Compass, Searchable• Spring Security, Shiro• Cache• Flex• NoSQL: redis, MongoDb
COMUNIDAD
• Grupo de usuarios de Madrid• http://sites.google.com/site/madridgug
• Grupo de usuarios de Levante• http://groups.google.com/group/grupo-de-usuarios-groov
y-grails-levante
• Lista de Grails en castellano• http://groups.google.com/group/grailsencastellano
EVENTOS NACIONALES
• Spring IO• Anualmente (sobre Febrero)
• Madrid GUG• Quedadas mensuales
• Greach• En Madrid, el 4 de Noviembre de 2011
• (dentro de 5 meses)
• ¡Gratis!• Apúntate en http://greach.es
NOS VEMOS EN
Valladolid, 2 de JulioCurso práctico de 4 horasGrails + Oauth/Twitter + Google/OpenId
Tenerife Lan Party, 21 y 22 de JulioTaller de Grails, 2 horas
O en @albertovilches
¡GRACIAS!
¿Preguntas?¿Dudas?