Grails: Framework para el desarrollo de aplicaciones Web

Post on 10-Apr-2015

476 views 4 download

description

Grails: Frameworkpara el desarrollo deaplicaciones Web

Transcript of Grails: Framework para el desarrollo de aplicaciones Web

Frameworks para desarrollo de aplicaciones Web

Esteban Saavedra Lopez, Ph.D.

CEO Opentelematics Internacional Boliviajesaavedra@opentelematics.org

http://jesaavedra.opentelematics.orghttp://esteban.profesionales.org

Esteban Saavedra Lopez, Ph.D. (Opentelematics)Frameworks para desarrollo de aplicaciones Web Nov. 2008 1 / 32

Tabla de Contenidos

1 Introduccion a los Frameworks

2 Patron MVC

3 Grails

4 Caracterısticas de un Proyecto Grails

5 Creacion de un proyecto

6 Demostracion

7 Conclusiones

8 Referencias

Esteban Saavedra Lopez, Ph.D. (Opentelematics)Frameworks para desarrollo de aplicaciones Web Nov. 2008 2 / 32

Introduccion a los Frameworks

Que es un Framework?

Es una estructura de soporte definida en la cual otro proyecto desoftware puede ser organizado y desarrollado.

Se han convertido en la piedra angular de la moderna ingenierıadel software

Es una estructura software compuesta de componentespersonalizables e intercambiables para el desarrollo de una aplicacion.En otras palabras, es una aplicacion generica incompleta yconfigurable a la que podemos aadirle las ultimas piezas paraconstruir una aplicacion concreta.

Esteban Saavedra Lopez, Ph.D. (Opentelematics)Frameworks para desarrollo de aplicaciones Web Nov. 2008 3 / 32

Introduccion a los Frameworks

Cual el objetivo de un framework?

Desarrollo rapido

Desarrollo estructurado

Reutilizacion de codigo

Disminuir el esfuerzo en el desarrollo

Aprovechamos las funcionalidades ya implementadas.

No debemos reinventar la rueda

Nos concetramos directamente en la solucion del problema

Tener como aliado a las metodologıas de desarrollo Agıles (XP,AD)

Esteban Saavedra Lopez, Ph.D. (Opentelematics)Frameworks para desarrollo de aplicaciones Web Nov. 2008 4 / 32

Patron MVC

Patron MVC

Modelo

Controlador

Vista

Esteban Saavedra Lopez, Ph.D. (Opentelematics)Frameworks para desarrollo de aplicaciones Web Nov. 2008 5 / 32

Grails

Que es Grails

Es un framework para el desarrollo de aplicaciones web

Es la respuesta de java para Ruby on Rails

Permite el desarrollo de aplicaciones web de forma rapida

Esteban Saavedra Lopez, Ph.D. (Opentelematics)Frameworks para desarrollo de aplicaciones Web Nov. 2008 6 / 32

Grails

Filosofıa de Grails

Reutilizacion de codigo

Desarrollar aplicaciones web de forma rapida, sencilla y divertida

Utilizar los mejores componentes actualmente disponibles

Combinar todo en un paquete facil de usar

Grails provee el pegamento, de tal forma que uds no haga el suyo.

Esteban Saavedra Lopez, Ph.D. (Opentelematics)Frameworks para desarrollo de aplicaciones Web Nov. 2008 7 / 32

Grails

Por que Grails

Se basa en el patron MVC

Tiene todo lo necesario para desarrollar aplicaciones Web

Soporta Ajax

Posee buena documentacion

Es multiplataforma

Posee una numerosa comunidad de desarrolladores y usuarios

Inspirado en Ruby on Rails (Padrino de la mayorıa de losFrameworks)

Esta en constante desarrollo

Esteban Saavedra Lopez, Ph.D. (Opentelematics)Frameworks para desarrollo de aplicaciones Web Nov. 2008 8 / 32

Grails

Componentes de Grails

Lenguaje Groovy

Maquina Virtual de Java

Esteban Saavedra Lopez, Ph.D. (Opentelematics)Frameworks para desarrollo de aplicaciones Web Nov. 2008 9 / 32

Grails

Instalacion de Grails

Utilizando los fuentesObtener: http://dist.codehaus.org/grails/grails-bin-1.0.3.tar.gz

Basta con descomprimir y permitir su acceso

Esteban Saavedra Lopez, Ph.D. (Opentelematics)Frameworks para desarrollo de aplicaciones Web Nov. 2008 10 / 32

Caracterısticas de un Proyecto Grails

Estructura de un proyecto de Grails

Grails proporciona una estructura jerarquica:

Proyecto

Aplicacion

Modulo

Accion

Vista

Esteban Saavedra Lopez, Ph.D. (Opentelematics)Frameworks para desarrollo de aplicaciones Web Nov. 2008 11 / 32

Caracterısticas de un Proyecto Grails

Creacion de un proyecto

Instrucciongrails create-app myapp

Esteban Saavedra Lopez, Ph.D. (Opentelematics)Frameworks para desarrollo de aplicaciones Web Nov. 2008 12 / 32

Caracterısticas de un Proyecto Grails

Que genero esto?

Una estructura jerarquica de directorios

Esteban Saavedra Lopez, Ph.D. (Opentelematics)Frameworks para desarrollo de aplicaciones Web Nov. 2008 13 / 32

Creacion de un proyecto

Pasos para crear un proyecto

1 Crear el proyecto

2 Crear los dominios del proyecto3 Generar los CRUDs

1 CRUDs Estaticos2 CRUDs Dinamicos

4 Adecuar los templates (CSS y/o JavaScript)

5 Publicar la Aplicacion

Esteban Saavedra Lopez, Ph.D. (Opentelematics)Frameworks para desarrollo de aplicaciones Web Nov. 2008 14 / 32

Creacion de un proyecto

1. Creacion de un proyecto

Instrucciongrails create-app Gestion

Detalles del proyectoWelcome to Grails 1.0-RC1 - http://grails.org/

Licensed under Apache Standard License 2.0

Grails home is set to: /home/jesaavedra/grails

Base Directory: /home/jesaavedra/aplic_web/grails

Environment set to development

Note: No plugin scripts found

Running script /home/jesaavedra/grails/scripts/CreateApp.groovy

Overriding previous definition of reference to groovyJarSet

[mkdir] Created dir: /home/jesaavedra/aplic_web/grails/Gestion/src

[mkdir] Created dir: /home/jesaavedra/aplic_web/grails/Gestion/src/java

[mkdir] Created dir: /home/jesaavedra/aplic_web/grails/Gestion/src/groovy

[mkdir] Created dir: /home/jesaavedra/aplic_web/grails/Gestion/grails-app

[mkdir] Created dir: /home/jesaavedra/aplic_web/grails/Gestion/grails-app/controllers

[mkdir] Created dir: /home/jesaavedra/aplic_web/grails/Gestion/grails-app/services

[mkdir] Created dir: /home/jesaavedra/aplic_web/grails/Gestion/grails-app/domain

[mkdir] Created dir: /home/jesaavedra/aplic_web/grails/Gestion/grails-app/taglib

[mkdir] Created dir: /home/jesaavedra/aplic_web/grails/Gestion/grails-app/utils

[mkdir] Created dir: /home/jesaavedra/aplic_web/grails/Gestion/grails-app/views

Esteban Saavedra Lopez, Ph.D. (Opentelematics)Frameworks para desarrollo de aplicaciones Web Nov. 2008 15 / 32

Creacion de un proyecto

2. Crear el Dominio

Un dominio por cada clasegrails create-domain-class Evento

grails create-domain-class Expositor

grails create-domain-class Conferencia

Esteban Saavedra Lopez, Ph.D. (Opentelematics)Frameworks para desarrollo de aplicaciones Web Nov. 2008 16 / 32

Creacion de un proyecto

3. Crear el codigo del modelo de datos (1)

myapp/grails-app/domain/Evento.groovyclass Evento {

String nombre

String ciudad

Date inicia

Date finaliza

String sitioweb

static hasMany = [conferencias:Conferencia]

}

Esteban Saavedra Lopez, Ph.D. (Opentelematics)Frameworks para desarrollo de aplicaciones Web Nov. 2008 17 / 32

Creacion de un proyecto

3. Crear el codigo del modelo de datos (2)

myapp/grails-app/domain/Expositor.groovyclass Expositor {

String paterno

String materno

String nombre

String nacionalidad

String email

static hasMany = [conferencias:Conferencia]

}

Esteban Saavedra Lopez, Ph.D. (Opentelematics)Frameworks para desarrollo de aplicaciones Web Nov. 2008 18 / 32

Creacion de un proyecto

3. Crear el codigo del modelo de datos (3)

myapp/grails-app/domain/Conferencia.groovyclass Conferencia {

String titulo

String resumen

Date fecha

Evento evento

Expositor expositor

static belongsTo = [Evento,Expositor]

}

Esteban Saavedra Lopez, Ph.D. (Opentelematics)Frameworks para desarrollo de aplicaciones Web Nov. 2008 19 / 32

Creacion de un proyecto

4. Generando los CRUDs

Instrucciongrails generate-all Evento

grails generate-all Expositor

grails generate-all Conferencia

SalıdaWelcome to Grails 1.0-RC1 - http://grails.org/

Licensed under Apache Standard License 2.0

Grails home is set to: /home/jesaavedra/grails

Base Directory: /home/jesaavedra/aplic_web/grails/Gestion

Environment set to development

Note: No plugin scripts found

Running script /home/jesaavedra/grails/scripts/GenerateAll.groovy

Compiling 6 source files to /home/jesaavedra/.grails/1.0-RC1/projects/Gestion/classes

[mkdir] Created dir: /home/jesaavedra/aplic_web/grails/Gestion/web-app/WEB-INF/grails-app/i18n

[native2ascii] Converting 9 files from /home/jesaavedra/aplic_web/grails/Gestion/grails-app/i18n to /home/jesaavedra/aplic_web/grails/Gestion/web-app/WEB-INF/grails-app/i18n

[copy] Copying 1 file to /home/jesaavedra/aplic_web/grails/Gestion/web-app/WEB-INF/spring

[copy] Copying 1 file to /home/jesaavedra/.grails/1.0-RC1/projects/Gestion/classes

[copy] Copying 1 file to /home/jesaavedra/.grails/1.0-RC1/projects/Gestion/classes

[copy] Copying 1 file to /home/jesaavedra/.grails/1.0-RC1/projects/Gestion

Generating views for domain class Seminario ...

Generating controller for domain class Seminario ...

Finished generation for domain class Seminario

Esteban Saavedra Lopez, Ph.D. (Opentelematics)Frameworks para desarrollo de aplicaciones Web Nov. 2008 20 / 32

Creacion de un proyecto

Ejecutar la Aplicacion

Instrucciongrails run-app

SalıdaWelcome to Grails 1.0-RC1 - http://grails.org/

Licensed under Apache Standard License 2.0

Grails home is set to: /home/jesaavedra/grails

Base Directory: /home/jesaavedra/aplic_web/grails/Gestion

Environment set to development

Note: No plugin scripts found

Running script /home/jesaavedra/grails/scripts/RunApp.groovy

[mkdir] Created dir: /home/jesaavedra/aplic_web/grails/Gestion/web-app/WEB-INF/lib

Compiling 1 source files to /home/jesaavedra/.grails/1.0-RC1/projects/Gestion/classes

Running Grails application..

2007-11-26 19:28:48.569::INFO: Logging to STDERR via org.mortbay.log.StdErrLog

2007-11-26 19:28:48.649::INFO: jetty-6.1.4

2007-11-26 19:28:50.348:/Gestion:INFO: Set web app root system property: ’Gestion’ = [/home/jesaavedra/aplic_web/grails/Gestion/web-app/]

2007-11-26 19:28:50.348:/Gestion:INFO: Initializing Log4J from [/home/jesaavedra/aplic_web/grails/Gestion/web-app/WEB-INF/classes/log4j.properties]

2007-11-26 19:28:50.355:/Gestion:INFO: Initializing Spring root WebApplicationContext

[5731] commons.GrailsConfigUtils [GrailsContextLoader] Grails application loaded.

2007-11-26 19:29:00.717:/Gestion:INFO: Initializing Spring FrameworkServlet ’grails’

2007-11-26 19:29:00.934::INFO: Started SelectChannelConnector@0.0.0.0:8080

Server running. Browse to http://localhost:8080/Gestion

Esteban Saavedra Lopez, Ph.D. (Opentelematics)Frameworks para desarrollo de aplicaciones Web Nov. 2008 21 / 32

Creacion de un proyecto

Acceso al proyecto

Instruccionhttp://localhost:8080/Gestion

Esteban Saavedra Lopez, Ph.D. (Opentelematics)Frameworks para desarrollo de aplicaciones Web Nov. 2008 22 / 32

Creacion de un proyecto

Adecuaciones

Una vez generada gran parte del proyecto (forma muy general), se puedeproceder a realizar adecuaciones en:

Controlador (actions)

Vistas (templates)

Formas de acceso en las URL (routing)

Validacion de formularios

Efectos especiales

Esteban Saavedra Lopez, Ph.D. (Opentelematics)Frameworks para desarrollo de aplicaciones Web Nov. 2008 23 / 32

Creacion de un proyecto

Proyecto desplegado

Esteban Saavedra Lopez, Ph.D. (Opentelematics)Frameworks para desarrollo de aplicaciones Web Nov. 2008 24 / 32

Demostracion

Ejemplo de aplicacion desarrollada

Demostracion

Esteban Saavedra Lopez, Ph.D. (Opentelematics)Frameworks para desarrollo de aplicaciones Web Nov. 2008 25 / 32

Demostracion

Ejemplo de aplicacion desarrollada (1)

Esteban Saavedra Lopez, Ph.D. (Opentelematics)Frameworks para desarrollo de aplicaciones Web Nov. 2008 26 / 32

Demostracion

Ejemplo de aplicacion desarrollada (1)

Esteban Saavedra Lopez, Ph.D. (Opentelematics)Frameworks para desarrollo de aplicaciones Web Nov. 2008 27 / 32

Demostracion

Frameworks para desarrollo de aplicaciones Web

Esteban Saavedra Lopez, Ph.D. (Opentelematics)Frameworks para desarrollo de aplicaciones Web Nov. 2008 28 / 32

Conclusiones

Conclusiones

Grails:

Tiene todo lo necesario para desarrollar aplicaciones Web

Facilitan enormemente el desarrollo de aplicaciones

Posee buena documentacion

Esta en constante desarrollo (muchas funcionalidades en base plugins)

Al tener como aliado a las metodologıas de desarrollo Agıles (XP,AD), se convierte en un fuerte candidatos para desarrollo deaplicaciones web.

Esteban Saavedra Lopez, Ph.D. (Opentelematics)Frameworks para desarrollo de aplicaciones Web Nov. 2008 29 / 32

Referencias

Referencias

http://www.grails.org/

Esteban Saavedra Lopez, Ph.D. (Opentelematics)Frameworks para desarrollo de aplicaciones Web Nov. 2008 30 / 32

Referencias

Preguntas

Preguntas

Preguntas, dudas, consultas, ...

Esteban Saavedra Lopez, Ph.D. (Opentelematics)Frameworks para desarrollo de aplicaciones Web Nov. 2008 31 / 32

Referencias

Agradecimientos

Gracias...

Esteban Saavedra Lopez, Ph.D. (Opentelematics)Frameworks para desarrollo de aplicaciones Web Nov. 2008 32 / 32