Vous êtes sur la page 1sur 32

Frameworks para desarrollo de aplicaciones Web

Esteban Saavedra López, Ph.D.

CEO Opentelematics Internacional Bolivia


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

Esteban Saavedra López, Ph.D. (Opentelematics)


Frameworks para desarrollo de aplicaciones Web Nov. 2008 1 / 32
Tabla de Contenidos

1 Introducción a los Frameworks

2 Patron MVC

3 Grails

4 Caracterı́sticas de un Proyecto Grails

5 Creación de un proyecto

6 Demostración

7 Conclusiones

8 Referencias

Esteban Saavedra López, Ph.D. (Opentelematics)


Frameworks para desarrollo de aplicaciones Web Nov. 2008 2 / 32
Introducción a los Frameworks

Que es un Framework?

Es una estructura de soporte definida en la cual otro proyecto de


software puede ser organizado y desarrollado.
Se han convertido en la piedra angular de la moderna ingenierı́a
del software
Es una estructura software compuesta de componentes
personalizables e intercambiables para el desarrollo de una aplicación.
En otras palabras, es una aplicación genérica incompleta y
configurable a la que podemos aadirle las últimas piezas para
construir una aplicación concreta.

Esteban Saavedra López, Ph.D. (Opentelematics)


Frameworks para desarrollo de aplicaciones Web Nov. 2008 3 / 32
Introducción a los Frameworks

Cual el objetivo de un framework?

Desarrollo rápido
Desarrollo estructurado
Reutilización de código
Disminuir el esfuerzo en el desarrollo
Aprovechamos las funcionalidades ya implementadas.
No debemos reinventar la rueda
Nos concetramos directamente en la solución del problema
Tener como aliado a las metodologı́as de desarrollo Agı́les (XP,
AD)

Esteban Saavedra López, Ph.D. (Opentelematics)


Frameworks para desarrollo de aplicaciones Web Nov. 2008 4 / 32
Patron MVC

Patrón MVC

Modelo
Controlador
Vista

Esteban Saavedra López, 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 rápida

Esteban Saavedra López, Ph.D. (Opentelematics)


Frameworks para desarrollo de aplicaciones Web Nov. 2008 6 / 32
Grails

Filosofı́a de Grails

Reutilización de código
Desarrollar aplicaciones web de forma rápida, sencilla y divertida
Utilizar los mejores componentes actualmente disponibles
Combinar todo en un paquete fácil de usar
Grails provee el pegamento, de tal forma que uds no haga el suyo.

Esteban Saavedra López, Ph.D. (Opentelematics)


Frameworks para desarrollo de aplicaciones Web Nov. 2008 7 / 32
Grails

Por que Grails

Se basa en el patrón MVC


Tiene todo lo necesario para desarrollar aplicaciones Web
Soporta Ajax
Posee buena documentación
Es multiplataforma
Posee una numerosa comunidad de desarrolladores y usuarios
Inspirado en Ruby on Rails (Padrino de la mayorı́a de los
Frameworks)
Está en constante desarrollo

Esteban Saavedra López, 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 López, Ph.D. (Opentelematics)


Frameworks para desarrollo de aplicaciones Web Nov. 2008 9 / 32
Grails

Instalación de Grails

Utilizando los fuentes


Obtener: http://dist.codehaus.org/grails/grails-bin-1.0.3.tar.gz
Basta con descomprimir y permitir su acceso

Esteban Saavedra López, 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 jerárquica:


Proyecto
Aplicación
Módulo
Acción
Vista

Esteban Saavedra López, Ph.D. (Opentelematics)


Frameworks para desarrollo de aplicaciones Web Nov. 2008 11 / 32
Caracterı́sticas de un Proyecto Grails

Creación de un proyecto

Instrucción
grails create-app myapp

Esteban Saavedra López, Ph.D. (Opentelematics)


Frameworks para desarrollo de aplicaciones Web Nov. 2008 12 / 32
Caracterı́sticas de un Proyecto Grails

Que generó esto?


Una estructura jerárquica de directorios

Esteban Saavedra López, Ph.D. (Opentelematics)


Frameworks para desarrollo de aplicaciones Web Nov. 2008 13 / 32
Creación de un proyecto

Pasos para crear un proyecto

1 Crear el proyecto
2 Crear los dominios del proyecto
3 Generar los CRUDs
1 CRUDs Estáticos
2 CRUDs Dinámicos
4 Adecuar los templates (CSS y/o JavaScript)
5 Publicar la Aplicación

Esteban Saavedra López, Ph.D. (Opentelematics)


Frameworks para desarrollo de aplicaciones Web Nov. 2008 14 / 32
Creación de un proyecto

1. Creación de un proyecto
Instrucción
grails create-app Gestion

Detalles del proyecto


Welcome 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 López, Ph.D. (Opentelematics)


Frameworks para desarrollo de aplicaciones Web Nov. 2008 15 / 32
Creación de un proyecto

2. Crear el Dominio

Un dominio por cada clase


grails create-domain-class Evento
grails create-domain-class Expositor
grails create-domain-class Conferencia

Esteban Saavedra López, Ph.D. (Opentelematics)


Frameworks para desarrollo de aplicaciones Web Nov. 2008 16 / 32
Creación de un proyecto

3. Crear el código del modelo de datos (1)

myapp/grails-app/domain/Evento.groovy
class Evento {
String nombre
String ciudad
Date inicia
Date finaliza
String sitioweb
static hasMany = [conferencias:Conferencia]
}

Esteban Saavedra López, Ph.D. (Opentelematics)


Frameworks para desarrollo de aplicaciones Web Nov. 2008 17 / 32
Creación de un proyecto

3. Crear el código del modelo de datos (2)

myapp/grails-app/domain/Expositor.groovy
class Expositor {
String paterno
String materno
String nombre
String nacionalidad
String email
static hasMany = [conferencias:Conferencia]
}

Esteban Saavedra López, Ph.D. (Opentelematics)


Frameworks para desarrollo de aplicaciones Web Nov. 2008 18 / 32
Creación de un proyecto

3. Crear el código del modelo de datos (3)

myapp/grails-app/domain/Conferencia.groovy
class Conferencia {
String titulo
String resumen
Date fecha
Evento evento
Expositor expositor
static belongsTo = [Evento,Expositor]
}

Esteban Saavedra López, Ph.D. (Opentelematics)


Frameworks para desarrollo de aplicaciones Web Nov. 2008 19 / 32
Creación de un proyecto

4. Generando los CRUDs

Instrucción
grails generate-all Evento
grails generate-all Expositor
grails generate-all Conferencia

Salı́da
Welcome 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/jesaa
[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 López, Ph.D. (Opentelematics)


Frameworks para desarrollo de aplicaciones Web Nov. 2008 20 / 32
Creación de un proyecto

Ejecutar la Aplicación

Instrucción
grails run-app

Salı́da
Welcome 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_w
2007-11-26 19:28:50.348:/Gestion:INFO: Initializing Log4J from [/home/jesaavedra/aplic_web/grails/Gestion/web-
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 López, Ph.D. (Opentelematics)


Frameworks para desarrollo de aplicaciones Web Nov. 2008 21 / 32
Creación de un proyecto

Acceso al proyecto

Instrucción
http://localhost:8080/Gestion

Esteban Saavedra López, Ph.D. (Opentelematics)


Frameworks para desarrollo de aplicaciones Web Nov. 2008 22 / 32
Creación de un proyecto

Adecuaciones

Una vez generada gran parte del proyecto (forma muy general), se puede
proceder a realizar adecuaciones en:
Controlador (actions)
Vistas (templates)
Formas de acceso en las URL (routing )
Validacion de formularios
Efectos especiales

Esteban Saavedra López, Ph.D. (Opentelematics)


Frameworks para desarrollo de aplicaciones Web Nov. 2008 23 / 32
Creación de un proyecto

Proyecto desplegado

Esteban Saavedra López, Ph.D. (Opentelematics)


Frameworks para desarrollo de aplicaciones Web Nov. 2008 24 / 32
Demostración

Ejemplo de aplicacion desarrollada

Demostración

Esteban Saavedra López, Ph.D. (Opentelematics)


Frameworks para desarrollo de aplicaciones Web Nov. 2008 25 / 32
Demostración

Ejemplo de aplicacion desarrollada (1)

Esteban Saavedra López, Ph.D. (Opentelematics)


Frameworks para desarrollo de aplicaciones Web Nov. 2008 26 / 32
Demostración

Ejemplo de aplicacion desarrollada (1)

Esteban Saavedra López, Ph.D. (Opentelematics)


Frameworks para desarrollo de aplicaciones Web Nov. 2008 27 / 32
Demostración

Frameworks para desarrollo de aplicaciones Web

Esteban Saavedra López, 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 documentación
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 de
aplicaciones web.

Esteban Saavedra López, Ph.D. (Opentelematics)


Frameworks para desarrollo de aplicaciones Web Nov. 2008 29 / 32
Referencias

Referencias

http://www.grails.org/

Esteban Saavedra López, Ph.D. (Opentelematics)


Frameworks para desarrollo de aplicaciones Web Nov. 2008 30 / 32
Referencias

Preguntas

Preguntas
Preguntas, dudas, consultas, ...

Esteban Saavedra López, Ph.D. (Opentelematics)


Frameworks para desarrollo de aplicaciones Web Nov. 2008 31 / 32
Referencias

Agradecimientos

Gracias...

Esteban Saavedra López, Ph.D. (Opentelematics)


Frameworks para desarrollo de aplicaciones Web Nov. 2008 32 / 32

Vous aimerez peut-être aussi