Grails en Expo FISI 2011

Post on 11-Jun-2015

1.010 views 0 download

description

Presentación sobre Grails en Expo FISI 2011, UNMSM, Lima-Perú

Transcript of Grails en Expo FISI 2011

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