1. Frameworks para desarrollo de aplicaciones Web
Esteban Saavedra L´pez, Ph.D.
o
CEO Opentelematics Internacional Bolivia
jesaavedra@opentelematics.org
http://jesaavedra.opentelematics.org
http://esteban.profesionales.org
Esteban Saavedra L´pez, Ph.D. (Opentelematics)
o Frameworks para desarrollo de aplicaciones Web Nov. 2008 1 / 27
2. Tabla de Contenidos
1 Introducci´n a los Frameworks
o
2 Patron MVC
3 Grails
4 Caracter´
ısticas de un Proyecto Grails
5 Creaci´n de un proyecto
o
6 Demostraci´n
o
7 Conclusiones
8 Referencias
Esteban Saavedra L´pez, Ph.D. (Opentelematics)
o Frameworks para desarrollo de aplicaciones Web Nov. 2008 2 / 27
3. Introducci´n a los Frameworks
o
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.
o
En otras palabras, es una aplicaci´n gen´rica incompleta y
o e
configurable a la que podemos aadirle las ultimas piezas para
´
construir una aplicaci´n concreta.
o
Esteban Saavedra L´pez, Ph.D. (Opentelematics)
o Frameworks para desarrollo de aplicaciones Web Nov. 2008 3 / 27
4. Introducci´n a los Frameworks
o
Cual el objetivo de un framework?
Desarrollo r´pido
a
Desarrollo estructurado
Reutilizaci´n de c´digo
o o
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
o
Tener como aliado a las metodolog´ de desarrollo Ag´ (XP,
ıas ıles
AD)
Esteban Saavedra L´pez, Ph.D. (Opentelematics)
o Frameworks para desarrollo de aplicaciones Web Nov. 2008 4 / 27
5. Patron MVC
Patr´n MVC
o
Modelo
Controlador
Vista
Esteban Saavedra L´pez, Ph.D. (Opentelematics)
o Frameworks para desarrollo de aplicaciones Web Nov. 2008 5 / 27
6. 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
a
Esteban Saavedra L´pez, Ph.D. (Opentelematics)
o Frameworks para desarrollo de aplicaciones Web Nov. 2008 6 / 27
7. Grails
Filosof´ de Grails
ıa
Reutilizaci´n de c´digo
o o
Desarrollar aplicaciones web de forma r´pida, sencilla y divertida
a
Utilizar los mejores componentes actualmente disponibles
Combinar todo en un paquete f´cil de usar
a
Grails provee el pegamento, de tal forma que uds no haga el suyo.
Esteban Saavedra L´pez, Ph.D. (Opentelematics)
o Frameworks para desarrollo de aplicaciones Web Nov. 2008 7 / 27
8. Grails
Por que Grails
Se basa en el patr´n MVC
o
Tiene todo lo necesario para desarrollar aplicaciones Web
Soporta Ajax
Posee buena documentaci´n
o
Es multiplataforma
Posee una numerosa comunidad de desarrolladores y usuarios
Inspirado en Ruby on Rails (Padrino de la mayor´ de los
ıa
Frameworks)
Est´ en constante desarrollo
a
Esteban Saavedra L´pez, Ph.D. (Opentelematics)
o Frameworks para desarrollo de aplicaciones Web Nov. 2008 8 / 27
9. Grails
Componentes de Grails
Lenguaje Groovy
Maquina Virtual de Java
Esteban Saavedra L´pez, Ph.D. (Opentelematics)
o Frameworks para desarrollo de aplicaciones Web Nov. 2008 9 / 27
10. Grails
Instalaci´n de Grails
o
Utilizando los fuentes
Obtener: http://dist.codehaus.org/grails/grails-bin-1.0-RC1.tar.gz
Basta con descomprimir y permitir su acceso
Esteban Saavedra L´pez, Ph.D. (Opentelematics)
o Frameworks para desarrollo de aplicaciones Web Nov. 2008 10 / 27
11. Caracter´
ısticas de un Proyecto Grails
Estructura de un proyecto de Grails
Grails proporciona una estructura jer´rquica:
a
Proyecto
Aplicaci´n
o
M´dulo
o
Acci´n
o
Vista
Esteban Saavedra L´pez, Ph.D. (Opentelematics)
o Frameworks para desarrollo de aplicaciones Web Nov. 2008 11 / 27
12. Caracter´
ısticas de un Proyecto Grails
Creaci´n de un proyecto
o
Instrucci´n
o
grails create-app myapp
Esteban Saavedra L´pez, Ph.D. (Opentelematics)
o Frameworks para desarrollo de aplicaciones Web Nov. 2008 12 / 27
13. Caracter´
ısticas de un Proyecto Grails
Que gener´ esto?
o
Una estructura jer´rquica de directorios
a
Esteban Saavedra L´pez, Ph.D. (Opentelematics)
o Frameworks para desarrollo de aplicaciones Web Nov. 2008 13 / 27
14. Creaci´n de un proyecto
o
Pasos para crear un proyecto
1 Crear el proyecto
2 Crear los dominios del proyecto
3 Generar los CRUDs
4 Adecuar los templates (CSS y/o JavaScript)
5 Publicar la Aplicaci´n
o
Esteban Saavedra L´pez, Ph.D. (Opentelematics)
o Frameworks para desarrollo de aplicaciones Web Nov. 2008 14 / 27
15. Creaci´n de un proyecto
o
1. Creaci´n de un proyecto
o
Instrucci´n
o
grails create-app evento
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/evento/src
[mkdir] Created dir: /home/jesaavedra/aplic_web/grails/evento/src/java
[mkdir] Created dir: /home/jesaavedra/aplic_web/grails/evento/src/groovy
[mkdir] Created dir: /home/jesaavedra/aplic_web/grails/evento/grails-app
[mkdir] Created dir: /home/jesaavedra/aplic_web/grails/evento/grails-app/controllers
[mkdir] Created dir: /home/jesaavedra/aplic_web/grails/evento/grails-app/services
[mkdir] Created dir: /home/jesaavedra/aplic_web/grails/evento/grails-app/domain
[mkdir] Created dir: /home/jesaavedra/aplic_web/grails/evento/grails-app/taglib
[mkdir] Created dir: /home/jesaavedra/aplic_web/grails/evento/grails-app/utils
[mkdir] Created dir: /home/jesaavedra/aplic_web/grails/evento/grails-app/views
Esteban Saavedra L´pez, Ph.D. (Opentelematics)
o Frameworks para desarrollo de aplicaciones Web Nov. 2008 15 / 27
16. Creaci´n de un proyecto
o
2. Crear el Dominio
Un dominio por cada clase
grails create-domain-class Seminario
grails create-domain-class Registro
Esteban Saavedra L´pez, Ph.D. (Opentelematics)
o Frameworks para desarrollo de aplicaciones Web Nov. 2008 16 / 27
17. Creaci´n de un proyecto
o
3. Crear el c´digo del modelo de datos
o
myapp/grails-app/domain/Seminario.groovy
class Seminario {
String titulo
Date fechainicio
String ciudad
Float costo
Boolean refrigerio
static hasMany = [registros:Registro]
}
myapp/grails-app/domain/Registro.groovy
class Registro {
String nombre
Date nacimiento
String genero
Seminario seminario
}
Esteban Saavedra L´pez, Ph.D. (Opentelematics)
o Frameworks para desarrollo de aplicaciones Web Nov. 2008 17 / 27
18. Creaci´n de un proyecto
o
4. Generando los CRUDs
Instrucci´n
o
grails generate-all Seminario
grails generate-all Registro
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/evento
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/evento/classes
[mkdir] Created dir: /home/jesaavedra/aplic_web/grails/evento/web-app/WEB-INF/grails-app/i18n
[native2ascii] Converting 9 files from /home/jesaavedra/aplic_web/grails/evento/grails-app/i18n to /home/jesaav
[copy] Copying 1 file to /home/jesaavedra/aplic_web/grails/evento/web-app/WEB-INF/spring
[copy] Copying 1 file to /home/jesaavedra/.grails/1.0-RC1/projects/evento/classes
[copy] Copying 1 file to /home/jesaavedra/.grails/1.0-RC1/projects/evento/classes
[copy] Copying 1 file to /home/jesaavedra/.grails/1.0-RC1/projects/evento
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)
o Frameworks para desarrollo de aplicaciones Web Nov. 2008 18 / 27
19. Creaci´n de un proyecto
o
Ejecutar la Aplicaci´n
o
Instrucci´n
o
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/evento
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/evento/web-app/WEB-INF/lib
Compiling 1 source files to /home/jesaavedra/.grails/1.0-RC1/projects/evento/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:/evento:INFO: Set web app root system property: ’evento’ = [/home/jesaavedra/aplic_web
2007-11-26 19:28:50.348:/evento:INFO: Initializing Log4J from [/home/jesaavedra/aplic_web/grails/evento/web-ap
2007-11-26 19:28:50.355:/evento:INFO: Initializing Spring root WebApplicationContext
[5731] commons.GrailsConfigUtils [GrailsContextLoader] Grails application loaded.
2007-11-26 19:29:00.717:/evento: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/evento
Esteban Saavedra L´pez, Ph.D. (Opentelematics)
o Frameworks para desarrollo de aplicaciones Web Nov. 2008 19 / 27
20. Creaci´n de un proyecto
o
Acceso al proyecto
Instrucci´n
o
http://localhost:8080/evento
Esteban Saavedra L´pez, Ph.D. (Opentelematics)
o Frameworks para desarrollo de aplicaciones Web Nov. 2008 20 / 27
21. Creaci´n de un proyecto
o
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)
o Frameworks para desarrollo de aplicaciones Web Nov. 2008 21 / 27
22. Creaci´n de un proyecto
o
Proyecto desplegado
Esteban Saavedra L´pez, Ph.D. (Opentelematics)
o Frameworks para desarrollo de aplicaciones Web Nov. 2008 22 / 27
23. Demostraci´n
o
Ejemplo de aplicacion desarrollada
Demostraci´n
o
Esteban Saavedra L´pez, Ph.D. (Opentelematics)
o Frameworks para desarrollo de aplicaciones Web Nov. 2008 23 / 27
24. Conclusiones
Conclusiones
Grails:
Tiene todo lo necesario para desarrollar aplicaciones Web
Soporta Ajax
Posee buena documentaci´n
o
Es multiplataforma
Esta en constante desarrollo (muchas funcionalidades en base plugins)
Al tener como aliado a las metodolog´ de desarrollo Ag´ (XP,
ıas ıles
AD), se convierte en un fuerte candidatos para desarrollo de
aplicaciones web.
Esteban Saavedra L´pez, Ph.D. (Opentelematics)
o Frameworks para desarrollo de aplicaciones Web Nov. 2008 24 / 27
25. Referencias
Referencias
http://www.grails.org/
Esteban Saavedra L´pez, Ph.D. (Opentelematics)
o Frameworks para desarrollo de aplicaciones Web Nov. 2008 25 / 27
26. Referencias
Preguntas
Preguntas
Preguntas, dudas, consultas, ...
Esteban Saavedra L´pez, Ph.D. (Opentelematics)
o Frameworks para desarrollo de aplicaciones Web Nov. 2008 26 / 27
27. Referencias
Agradecimientos
Gracias...
Esteban Saavedra L´pez, Ph.D. (Opentelematics)
o Frameworks para desarrollo de aplicaciones Web Nov. 2008 27 / 27