grails en expo fisi 2011
DESCRIPTION
Presentación sobre Grails en Expo FISI 2011, UNMSM, Lima-PerúTRANSCRIPT
Grails
Expo FISI 2011
Contenido• Introducción.• Groovy
Introducción•Java un lenguaje de mucho poder con librerías casi para todos los requerimientos.•Cuenta con tecnologías estándar como JSF y EJB que buscan simplificar el desarrollo de aplicaciones Web•Distintos Frameworks web alternativos como Wickets, Struts 2, Spring MVC, Stripes•Servidores de aplicaciones robustos y variados
Yo soy tu padre
Java?????
Java ahora tiene nuevos competidores
Los amigos de Java
Con tanto poder el nivel de complejidad también crece.
Demasiada configuración de XML
¿Necesitamos otro Framework?
Clases e Interfaces que extender o implementar.
Grails
Grails es construido sobre gigantes: Spring, Hibernate, SiteMesh, HSQLDB, Jetty, etc.
Haremos grandes cosas.
Convención sobre configuración.
Usa el lenguaje dinámico Groovy.
Grails
Groovy
Groovy • Es un lenguaje dinámico para la
JVM• Mejor Integración con Java• Hay una mayor facilidad de
aprendizaje para los programadores Java
• Groovy ya está incluido en el instalador de Grails
• Más productivo en procesamiento XML, acceso a base de datos, manipulación de archivos, etc.
• Muchos libros disponibles al respecto Con Groovy serás mas productivo y
derrotaras a “Darth Vader”
Flexibilidad con Groovy• Si bien hay similitudes con java.• Los “;” , “()” y return son opcionales
• Getters y Setters dados en tiempo de compilación
Flexibilidad con Groovy• Automáticamente las clases en Groovy
tienen un constructor named-args. Un map que el constructor toma y llama a cada setter por cada key que corresponde a una propiedad.
Flexibilidad con Groovy• Los tipos son opcionales. En lugar de
definir un tipo explicito, usamos def para designar que la variable será tipificada dinamicamente.
• “==“ es lo mismo que “equals()”.
• Groovy añade métodos a la clase String.
Groovy Strings
• Groovy añade un nuevo String conocido como GString. Un GString se crea declarando un literal con doble “”; un String literal con simple ‘’ es un java.lang.String.
• GString puede ser usado en lugar de String. El cast se hace en tiempo de ejecución.
• La belleza de GString es la habilidad para evaluar expresiones Groovy
Sin Groovy Con Groovy
¿Hulk Sonriendo?
Groovy Closures
• Un Groovy Closure en pocas palabras, es un bloque de código que puede ser asignado a una variable, a un método, y ser ejecutado.
• Un Closure se declara colocando código entre {}. Los parametros van antes del -> (dash-rocket), así
Groovy Closures
• Si ningún parámetro es declarado, hay uno implícitamente proveído: se llama it
• Más información de Closures libro “Programming Groovy”
Groovy Collections
• Groovy aporta muchas mejoras a las clases collection de Java.
• Las más usadas en Grails son List, Map y Set.• List
Groovy Collections
• Métodos útiles en List
• Se imprime en la salida
¡Collections con esteroides!
Groovy Collections
• min() y max()
• sort()
• <<
Groovy Collections
• Map
Ó:
salida:
Groovy Collections
• Set
Demo TekDays
• Crear una aplicación web para organizar eventos con las siguientes características:– Crear nuevos eventos– Mostrar detalles del evento– Editar Detalles del Evento– Crear usuarios / organizadores– Permitir voluntarios– Añadir usuarios a eventos
Demo TekDays
– Permitir a usuarios anonimos registrar interes– Crear sponsors– Añadir sponsors a eventos– Tener una lista de tareas– Añadir/remover tareas– Asignar tareas a usuarios– Postear mensajes a un forum– Responder un mensaje en el forum
Demo TekDays
– Mostrar threads en el foro– Personalizar la pagina de eventos– Permitir acceso a la pagina de eventos con un
simple URL
Iteración CERO
GRAILS_HOME
Grails Help
Creación de TekDays
• $ grails create-app TekDays• $ cd TekDays• $ grails run-app
Estructura de Proyecto
Creando clase de Dominio
• $ grails create-domain-class TekEvent• Ver Código y test unitario:
• $ grails test-app -unit
Creando Controller
• $ grails create-controller TekEvent
Creando TekEvent
Estableciendo Constraints
Creando Data de Prueba
• En TekDays/grails-app/conf/BootStrap.groovy
Relationships
• $ grails create-domain-class TekUser
TekUserController
• $ grails create-controller TekUser
En BootStrap.groovy:
Relación one-to-one
• En TekEvent
BootStrap
Modificamos nuestros Test
One-to-Many
• Modificamos TekEvent
BootStrap:
Collecciones de tipos simple de datos
• Modificamos TekEvent otra vez:
BootStrap:
¿Qué sigue?
0 días sin usar Groovy & Grails
Más, más, más….
Contacto
Av. Canaval Moreyra 380Lima – Perú
(511) 987500273(511)4116200 anexo 2637
www.joedayz.com