grails: framework para el desarrollo de aplicaciones web

32
Frameworks para desarrollo de aplicaciones Web Esteban Saavedra L´ opez, Ph.D. CEO Opentelematics Internacional Bolivia [email protected] http://jesaavedra.opentelematics.org http://esteban.profesionales.org Esteban Saavedra L´opez, Ph.D. (Opentelematics) Frameworks para desarrollo de aplicaciones Web Nov. 2008 1 / 32

Upload: esteban-saavedra-lopez

Post on 10-Apr-2015

476 views

Category:

Documents


4 download

DESCRIPTION

Grails: Frameworkpara el desarrollo deaplicaciones Web

TRANSCRIPT

Page 1: Grails: Framework para el desarrollo de aplicaciones Web

Frameworks para desarrollo de aplicaciones Web

Esteban Saavedra Lopez, Ph.D.

CEO Opentelematics Internacional [email protected]

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

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

Page 2: Grails: Framework para el desarrollo de aplicaciones Web

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

Page 3: Grails: Framework para el desarrollo de aplicaciones Web

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

Page 4: Grails: Framework para el desarrollo de aplicaciones Web

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

Page 5: Grails: Framework para el desarrollo de aplicaciones Web

Patron MVC

Patron MVC

Modelo

Controlador

Vista

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

Page 6: Grails: Framework para el desarrollo de aplicaciones Web

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

Page 7: Grails: Framework para el desarrollo de aplicaciones Web

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

Page 8: Grails: Framework para el desarrollo de aplicaciones Web

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

Page 9: Grails: Framework para el desarrollo de aplicaciones Web

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

Page 10: Grails: Framework para el desarrollo de aplicaciones Web

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

Page 11: Grails: Framework para el desarrollo de aplicaciones Web

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

Page 12: Grails: Framework para el desarrollo de aplicaciones Web

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

Page 13: Grails: Framework para el desarrollo de aplicaciones Web

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

Page 14: Grails: Framework para el desarrollo de aplicaciones Web

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

Page 15: Grails: Framework para el desarrollo de aplicaciones Web

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

Page 16: Grails: Framework para el desarrollo de aplicaciones Web

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

Page 17: Grails: Framework para el desarrollo de aplicaciones Web

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

Page 18: Grails: Framework para el desarrollo de aplicaciones Web

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

Page 19: Grails: Framework para el desarrollo de aplicaciones Web

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

Page 20: Grails: Framework para el desarrollo de aplicaciones Web

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

Page 21: Grails: Framework para el desarrollo de aplicaciones Web

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 [email protected]: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

Page 22: Grails: Framework para el desarrollo de aplicaciones Web

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

Page 23: Grails: Framework para el desarrollo de aplicaciones Web

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

Page 24: Grails: Framework para el desarrollo de aplicaciones Web

Creacion de un proyecto

Proyecto desplegado

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

Page 25: Grails: Framework para el desarrollo de aplicaciones Web

Demostracion

Ejemplo de aplicacion desarrollada

Demostracion

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

Page 26: Grails: Framework para el desarrollo de aplicaciones Web

Demostracion

Ejemplo de aplicacion desarrollada (1)

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

Page 27: Grails: Framework para el desarrollo de aplicaciones Web

Demostracion

Ejemplo de aplicacion desarrollada (1)

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

Page 28: Grails: Framework para el desarrollo de aplicaciones Web

Demostracion

Frameworks para desarrollo de aplicaciones Web

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

Page 29: Grails: Framework para el desarrollo de aplicaciones Web

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

Page 30: Grails: Framework para el desarrollo de aplicaciones Web

Referencias

Referencias

http://www.grails.org/

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

Page 31: Grails: Framework para el desarrollo de aplicaciones Web

Referencias

Preguntas

Preguntas

Preguntas, dudas, consultas, ...

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

Page 32: Grails: Framework para el desarrollo de aplicaciones Web

Referencias

Agradecimientos

Gracias...

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