Вы находитесь на странице: 1из 27

Frameworks MVC para el desarrollo Web - Grails

Esteban Saavedra López

CEO Opentelematics Internacional Bolivia


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

Esteban Saavedra López (Opentelematics) Frameworks MVC para el desarrollo Web - Grails Nov. 2007 1 / 27
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 (Opentelematics) Frameworks MVC para el desarrollo Web - Grails Nov. 2007 2 / 27
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 (Opentelematics) Frameworks MVC para el desarrollo Web - Grails Nov. 2007 3 / 27
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 (Opentelematics) Frameworks MVC para el desarrollo Web - Grails Nov. 2007 4 / 27
Patron MVC

Patrón MVC

Modelo
Controlador
Vista

Esteban Saavedra López (Opentelematics) Frameworks MVC para el desarrollo Web - Grails Nov. 2007 5 / 27
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 (Opentelematics) Frameworks MVC para el desarrollo Web - Grails Nov. 2007 6 / 27
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 (Opentelematics) Frameworks MVC para el desarrollo Web - Grails Nov. 2007 7 / 27
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 (Opentelematics) Frameworks MVC para el desarrollo Web - Grails Nov. 2007 8 / 27
Grails

Componentes de Grails

Lenguaje Groovy
Maquina Virtual de Java

Esteban Saavedra López (Opentelematics) Frameworks MVC para el desarrollo Web - Grails Nov. 2007 9 / 27
Grails

Instalación de Grails

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 (Opentelematics) Frameworks MVC para el desarrollo Web - Grails Nov. 2007 10 / 27
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 (Opentelematics) Frameworks MVC para el desarrollo Web - Grails Nov. 2007 11 / 27
Caracterı́sticas de un Proyecto Grails

Creación de un proyecto

Instrucción
grails create-app myapp

Esteban Saavedra López (Opentelematics) Frameworks MVC para el desarrollo Web - Grails Nov. 2007 12 / 27
Caracterı́sticas de un Proyecto Grails

Que generó esto?


Una estructura jerárquica de directorios

Esteban Saavedra López (Opentelematics) Frameworks MVC para el desarrollo Web - Grails Nov. 2007 13 / 27
Creación de un proyecto

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

Esteban Saavedra López (Opentelematics) Frameworks MVC para el desarrollo Web - Grails Nov. 2007 14 / 27
Creación de un proyecto

1. Creación de un proyecto
Instrucción
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 (Opentelematics) Frameworks MVC para el desarrollo Web - Grails Nov. 2007 15 / 27
Creación de un proyecto

2. Crear el Dominio

Un dominio por cada clase


grails create-domain-class Seminario
grails create-domain-class Registro

Esteban Saavedra López (Opentelematics) Frameworks MVC para el desarrollo Web - Grails Nov. 2007 16 / 27
Creación de un proyecto

3. Crear el código del modelo de datos

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 (Opentelematics) Frameworks MVC para el desarrollo Web - Grails Nov. 2007 17 / 27
Creación de un proyecto

4. Generando los CRUDs

Instrucción
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 (Opentelematics) Frameworks MVC para el desarrollo Web - Grails Nov. 2007 18 / 27
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/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 (Opentelematics) Frameworks MVC para el desarrollo Web - Grails Nov. 2007 19 / 27
Creación de un proyecto

Acceso al proyecto

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

Esteban Saavedra López (Opentelematics) Frameworks MVC para el desarrollo Web - Grails Nov. 2007 20 / 27
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 (Opentelematics) Frameworks MVC para el desarrollo Web - Grails Nov. 2007 21 / 27
Creación de un proyecto

Proyecto desplegado

Esteban Saavedra López (Opentelematics) Frameworks MVC para el desarrollo Web - Grails Nov. 2007 22 / 27
Demostración

Ejemplo de aplicacion desarrollada

Demostración

Esteban Saavedra López (Opentelematics) Frameworks MVC para el desarrollo Web - Grails Nov. 2007 23 / 27
Conclusiones

Conclusiones

Grails:
Tiene todo lo necesario para desarrollar aplicaciones Web
Soporta Ajax
Posee buena documentación
Es multiplataforma
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 (Opentelematics) Frameworks MVC para el desarrollo Web - Grails Nov. 2007 24 / 27
Referencias

Referencias

http://grails.codehaus.org/

Esteban Saavedra López (Opentelematics) Frameworks MVC para el desarrollo Web - Grails Nov. 2007 25 / 27
Referencias

Preguntas

Preguntas
Preguntas, dudas, consultas, ...

Esteban Saavedra López (Opentelematics) Frameworks MVC para el desarrollo Web - Grails Nov. 2007 26 / 27
Referencias

Agradecimientos

Gracias...

Esteban Saavedra López (Opentelematics) Frameworks MVC para el desarrollo Web - Grails Nov. 2007 27 / 27