44
Agilidad en el desarrollo empresarial (o de como hacer webapps sin tanto dolor)

Grails en SG08

Embed Size (px)

Citation preview

Page 1: Grails en SG08

Agilidad en el desarrollo empresarial(o de como hacer webapps sin tanto dolor)

Page 2: Grails en SG08

Agenda• Groovy

• Grails

• Arquitectura

• Componentes

• Como usar la plataforma

• !!Código¡¡

• Recursos.

Page 3: Grails en SG08

Objetivo

• Conocer y aprender como simplificar el desarrollo web con Grails

Page 4: Grails en SG08

Sobre el ponente

• Domingo Suárez Torres

• Ciencias de la Informática @ IPN-UPIICSA

• Gerente de Sistemas @ Bursatec

• CTO @ SeptimoBit Software

• Instructor y Consultor @ SynergyJ

• Apasionado por el desarrollo de software

• Fundador de JavaUp.org y SpringHispano.org

Page 5: Grails en SG08

¿Que es Groovy?

• Lenguaje de tipado dinámico

• Se compila y ejecuta en una JVM (Java Virtual Machine)

• Su desarrollo se inspiro en SmallTalk, Python y Ruby

• Se integra con el lenguaje Java en cualquier nivel.

• http://groovy.codehaus.org/

Page 6: Grails en SG08

Azúcar sintáctica: Toma 1¿No es adorable el Api de Collections?

Page 7: Grails en SG08

Azúcar sintáctica: Toma 2

Page 8: Grails en SG08

Azúcar sintáctica: Toma 3

Page 9: Grails en SG08

JavaPlataforma políglota

• Java

• Groovy

• Scala

• Erlang

• JRuby

• Jython

Page 10: Grails en SG08

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

Page 11: Grails en SG08

¿Que es Grails?• Mas que un framework, es una plataforma

para desarrollo de aplicaciones web

Page 12: Grails en SG08

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.

Page 13: Grails en SG08

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.

Page 14: Grails en SG08

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.

Page 15: Grails en SG08

Bases solidas

• Spring

• Hibernate

• Groovy

• Quartz

• Sitemesh

• Jetty

• Apache Ant

• Plataforma Java

Groovy

Spring

SitemeshJava

Quartz

Hibernate

Page 16: Grails en SG08

Arquitectura de Grails

Page 17: Grails en SG08

¿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

Page 18: Grails en SG08

¿Por que Groovy & Grails?

• ¿Porque no?

Page 19: Grails en SG08

¿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

Page 20: Grails en SG08

¿Como desarrollo una aplicación?

• Crear una aplicación y ejecutarla.

• Analizar la estructura de directorios

Page 21: Grails en SG08

!!No te creo¡¡

Page 22: Grails en SG08

IDEs y otras herramientas

• Funciona muy bien con Eclipse

• Mejor con IntelliJ IDEA

• Plugin para NetBeans

• Para minimalistas con Textmate

• Ant

• Maven

Page 23: Grails en SG08

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”

Page 24: Grails en SG08

Estructura de proyecto

Page 25: Grails en SG08

Estructura Grails

Page 26: Grails en SG08

Seguimos con lo básico

El Modelo de dominio

Page 27: Grails en SG08

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.

Page 28: Grails en SG08

El modelo

• Para la persistencia se usa Hibernate.

• Hibernate es un Mapeador Objeto-Relacional (ORM)

• http://www.hibernate.org

Page 29: Grails en SG08

¿Como creo un modelo?

> grails create-domain-class Clase

Page 30: Grails en SG08

• Crear una clase de dominio llamada Conferencista y otra Conferencia

• Hacer el CRUD de esas clases con scaffolding dinámico.

Page 31: Grails en SG08

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.

Page 32: Grails en SG08

Consultas

• ¿Se acuerdan de los DAOs?

Page 33: Grails en SG08

Métodos dinámicos

Page 34: Grails en SG08

Más dinámicos...

Page 35: Grails en SG08

GORM

Page 36: Grails en SG08

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

Page 37: Grails en SG08

Plugins

• Vista

• Flex, con Blaze DataServices

• YahooUI, ExtJS, GWT,

• Spring WebFlow

• WebServices (XFire, Axis, Metro)

Page 38: Grails en SG08

Despliegue• Grails genera archivos WAR.

• Se puedes desplegar en diversos servidores como:

• Weblogic

• Websphere

• Tomcat

• Jetty

• SpringSource Application Platform

Page 39: Grails en SG08

¿Quien lo usa?

• LinkedIn

• SAP

• Tropicana

• Más en: http://www.grails.org/Success+Stories

Page 40: Grails en SG08

Consejos• No lo adoptes si no tienes experiencia en

Hibernate y Spring

• A menos que no tengas deadlines...

Page 41: Grails en SG08

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.

Page 42: Grails en SG08

En la mira

• JBoss Seam

• Basado en estándares JEE

• JSF y JPA

• Marcando la pauta de nuevas especificaciones como WebBeans

Page 43: Grails en SG08

Preguntas

Page 44: Grails en SG08

Recursos• http://grails.org

• http://www.SpringHispano.org

• http://groovy.org.es

• http://grails.org.mx Próximamente.

• http://www.domingosuarez.com

• http://www.domix.org

[email protected]