Grails: Framework para el desarrollo de aplicaciones Web
-
Upload
esteban-saavedra-lopez -
Category
Documents
-
view
476 -
download
4
description
Transcript of 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
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 [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
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