SlideShare una empresa de Scribd logo
1 de 10
Grails: Framework
para el desarrollo de
aplicaciones Web (1ra Parte)
Grails es un framework orientado al desarrollo de aplicaciones web de forma sencilla,
rápida y divertida.
                                                       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 añadirle las últimas
                                                       piezas para construir una aplicación
                                                       concreta.


Introducción                                    Objetivos de un framework
Hoy en día, con la aparición de nuevas                 Desarrollo rápido.
                                                   ✔
metodologías y herramientas en el ámbito de
                                                       Desarrollo estructurado.
                                                   ✔
la ingeniería de software, el desarrollo de
                                                       Reutilización de código.
aplicaciones web ha tomado un cause un             ✔
tanto distinto a lo que se tenia hace unos
                                                       Disminución    del   esfuerzo   en   el
                                                   ✔
años atrás; ésto representa que, si antes con
                                                       desarrollo.
el desarrollo y herramientas tradicionales
                                                       Aprovechar las funcionalidades ya
demorábamos semanas y/o meses en                   ✔
                                                       implementadas,       no   debemos
prototipiarlas, meses o hasta años en
                                                       reinventar la rueda.
desarrollarlas completamente. Hoy en día
con la aparición de los frameworks éste                Nos concentramos directamente en la
                                                   ✔
tiempo se ha reducido considerablemente,               solución del problema.
ya que ahora con la ayuda de estas nuevas
                                                       Tener   como     aliadas    a    las
herramientas como son los frameworks y             ✔
                                                       metodologías de desarrollo ágil (XP,
teniendo como aliadas a las metodologías
                                                       AD).
ágiles de desarrollo, podemos prototipear
nuestras aplicaciones en cuestión de minutos
u horas, y terminar su desarrollo en una par
                                                Patrón MVC
de semanas.
                                                Desde la aparición de RoR (Ruby on Rails) el
                                                padrino de todos los frameworks de
Que es un framework                             desarrollo de aplicaciones web, el patrón
                                                MCV ha cobrado una notable importancia,
       Es una estructura de soporte definida
   ✔
                                                sobre todo por su cualidad de dividir en
       en la cual otro proyecto de software
                                                capas el desarrollo de un proyecto o
       puede ser organizado y desarrollado.
                                                aplicación web.
       Se ha convertido en la piedra angular
   ✔
                                                       Modelo: Encargado de modelar y
       de la moderna ingeniería del software.      ✔
                                                       contener la lógica del dominio de la
aplicación.                               Características de Grails
      Vista: Encargada de contener la
  ✔
                                                       Se basa en el patrón MVC.
                                                   ✔
      lógica de presentación.
                                                       Tiene todo lo necesario           para
                                                   ✔
      Controlador: Encargado de ser el
  ✔
                                                       desarrollar aplicaciones Web.
      engranaje entre el modelo y la vista; y
                                                       Soporta Ajax.
      también contener la lógica del               ✔
      negocio.                                         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.
                                                   ✔


                                                Componentes de Grails
                                                       Hibernate: El estándar defecto para
                                                   ✔
                                                       ORM en el mundo de Java.
                                                       Spring: El más popular framework
                                                   ✔
                                                       para Java.
         Gráfico 1: Patrón MVC
                                                       Quartz: Un framework que permite
                                                   ✔
                                                       realizar tareas programadas.
Que es Grails                                          SiteMesh: Un framework robusto y
                                                   ✔
                                                       estable para renderizar layouts.
      Es un framework para el desarrollo de
  ✔
      aplicaciones web.
                                                Preparando nuestro entorno
      Es la respuesta de groovy y java para
  ✔
      Ruby on Rails.
                                                de trabajo.
      Permite el desarrollo de aplicaciones
  ✔
                                                Para empezar a trabajar y desarrollar
      web de forma rápida.
                                                aplicaciones web en Grails, precisamos
                                                cumplir algunos requisitos como ser:
Filosofía de Grails                                    Tener instalado el JDK de Java.
                                                   ✔
      Reutilizar código.
  ✔
                                                       Tener instalado algún gestor de base
                                                   ✔
                                                       de datos (Sqlite, MySQl, PostgreSQL,
      Desarrollar aplicaciones web de forma
  ✔
                                                       MS-SQL, Oracle, entre otros).
      rápida, sencilla y divertida.
      Utilizar los mejores componentes
  ✔
                                                Instalación de Grails
      actualmente disponibles.
      Combinar todo en un paquete fácil de
  ✔                                                    Obtener la ultima versión estable de
                                                   ✔
      usar.                                            Grails desde su sitio web [1].
      Grails provee el pegamento, de tal
  ✔                                                    Descomprimir Grails en un directorio
                                                   ✔
      forma que usted no haga el suyo.                 de su preferencia, al cual tenga
                                                       acceso el usuario.
                                                       Setear   la     variable   de   entorno
                                                   ✔
                                                       GRAILS_HOME.
Adicionar $GRAILS_HOME/bin en el                  path.
   ✔

Para confirmar que nuestra instalación es correcta, introducimos el comando grails en la línea
de comando.




                             Gráfico 2: Uso del comando grails


Nuestra primera aplicación
Nuestra pequeña aplicación se enmarca en un entorno donde se mantiene el registro de
eventos (congresos, jornadas, etc), a los cuales concurren varios expositores de diferentes
nacionalidades y donde cada uno de estos tiene una o más conferencias que impartir.




                        Gráfico 2: Diagrama E/R de nuestra aplicación
Para una mejor comprensión del potencial de Grails en el desarrollo de aplicaciones web,
realizaremos una aplicación paso a paso.


Estructura de un Proyecto
Hoy en día, los frameworks mantienen una forma similar de estructurar sus proyectos,
imaginemos como si se tratase de un organigrama donde se consideran las siguientes partes:
   1. Un proyecto contiene una o varias aplicaciones
   2. Una aplicación tiene uno o varios módulos
   3. Un módulo tiene una o varias acciones
   4. Una acción puede o no estar asociada a una vista
   5. Creación de la aplicación
Gráfico 3: Crear una aplicación


Estructura de directorios
Al igual que la mayoría de los frameworks orientados al desarrollo de aplicaciones web, Grails
cuando crea los proyectos y aplicaciones, por defecto crea una estructura de directorios
definida, estructura que nos permite mantener un orden y conocer exactamente donde se
encuentran todos y cada uno de los componentes de nuestra aplicación.




                            Gráfico 4: Estructura de la aplicación
Ejecución de la aplicación
Otra característica similar que poseen la mayoría de los frameworks, va referida a que estos
vienen con un pequeño servidor de aplicaciones que nos permite ejecutar y probar nuestros
desarrollos, debemos considerar que estos pequeños servidores de aplicación solo deben ser
utilizados en etapas de prueba o pequeños desarrollos, ya que para entornos mas grandes o de
producción debemos hacer uso de servidores de aplicación mas robustos, orientados y con
soporte al lenguaje propio del framework; en el caso de Grails se puede hacer uso de Tomcat,
Jboss, Websphere entre otros.
El pequeño servidor de aplicaciones que acompaña a Grails es Jetty, como lo muestra la figura.




                              Gráfico 5: Iniciando la aplicación


Ejecutando nuestra aplicación




                            Gráfico 6: La aplicación ejecutándose
Modelado del dominio
Para describir el dominio de nuestra aplicación, primero debemos crear los dominios
correspondientes, de la siguiente forma para todos y cada uno de los dominios de nuestra
aplicación:




                            Gráfico 7: Creando los dominios
Grails cuando crea un dominio, inicialmente crea sólo clases vacías en el directorio
GestionEventos/grails­app/domain/, las cuales debemos modificar e incluir los siguientes
contenidos:
/grails­app/domain/Evento.groovy 
class Evento {
   String nombre
   String ciudad
   Date inicia
   Date finaliza
   String sitioweb
}


/grails­app/domain/Expositor.groovy 
class Expositor {
   String paterno
   String materno
   String nombre
   String nacionalidad
   String email
}


/grails­app/domain/Conferencia.groovy 
class Conferencia {
   String titulo
   String resumen
   Date fecha
}
Relaciones
Las relaciones de nuestro modelo deben verse reflejados en nuestros dominios. Grails permite
mantener relaciones de 1 a 1, de 1 a muchos y de muchos a muchos. Para nuestro ejemplo las
relaciones son las siguientes:
       Un evento tiene muchas conferencias
   ✔

       Un expositor puede impartir muchas conferencias
   ✔

Estas relaciones deben figurar en los dominios y ficheros correspondientes como se muestra a
continuación:
/grails­app/domain/Evento.groovy 
class Evento {
   String nombre
   String ciudad
   Date inicia
   Date finaliza
   String sitioweb
   static hasMany = [conferencias:Conferencia]
}


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


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




Scaffolding
Scaffolding es un término introducido por Rails, para representar la generación de los
artefactos, que permiten un uso más sencillo y rápido de las interfaces que permiten
operaciones básicas, denominados de forma genérica CRUDs (Create, Read, Update y Delete)
o ABDs (Altas Bajas y Modificaciones).
Grails permite 2 tipos de scaffolding, dinámicas y estáticas; en esta primera parte del tutorial
sólo consideraremos el scaffolding dinámico.
Para cada uno de los dominios, para los que se desee tener un scaffold, se debe crear de forma
análoga la creación y adecuación del controlador correspondiente, como se muestra a
continuación.
Gráfico 8: Creando los controladores
Para esto debemos realizar las siguiente operaciones:
       Crear los controladores para cada uno de los dominios.
   ✔

       Modificar los controladores, de tal forma que permitan generar los scaffold de forma
   ✔
       dinámica.
Los controladores para nuestra aplicación deberían tener los siguientes contenidos:
/grails­app/controllers/EventoController.grovy
class EventoController {
      def scaffold = Evento
}
/grails­app/controllers/ExpositorController.grovy
class ExpositorController {
      def scaffold = Expositor
}
/grails­app/controllers/ConferenciaController.grovy
class ConferenciaController {
      def scaffold = Conferencia
}




                      Gráfico 9: Nuestra aplicación y sus controladores
Ejecución y pruebas
Una vez corriendo nuestra aplicación podemos empezar a probar todas y cada una de las
características provistas por los scaffolds generados: Formularios, Ventanas de diálogo,
Relaciones, Efectos JavaScript en ciertos campos, etc,...
Gráfico 10: Efectos varios en los formularios de creación




                                Gráfico 11: Listado de Eventos


Referencias
[1]    http://www.grails.org
[2]    Getting Started with Grails
[3]    The Definitive Guide to Grails


Autor




Esteban Saavedra López
Líder de la Comunidad ATIX (Oruro – Bolivia)
Activista de Software Libre en Bolivia
jesaavedra@opentelematics.org
http://jesaavedra.opentelematics.org

Más contenido relacionado

La actualidad más candente

Aprender a programar aplicaciones moviles
Aprender a programar aplicaciones movilesAprender a programar aplicaciones moviles
Aprender a programar aplicaciones movilesRobert Moreira
 
Catalyst: Framework para el desarrollo de aplicaciones Web
Catalyst: Framework para el desarrollo de aplicaciones WebCatalyst: Framework para el desarrollo de aplicaciones Web
Catalyst: Framework para el desarrollo de aplicaciones WebEsteban Saavedra
 
Symfony Framework para el desarrollo de aplicaciones web
Symfony Framework para el desarrollo de aplicaciones webSymfony Framework para el desarrollo de aplicaciones web
Symfony Framework para el desarrollo de aplicaciones webEsteban Saavedra
 
Planificando las bases de una aplicación windows phone
Planificando las bases de una aplicación windows phonePlanificando las bases de una aplicación windows phone
Planificando las bases de una aplicación windows phoneSorey García
 
Presentación extensiones interesantes joomla
Presentación extensiones interesantes joomlaPresentación extensiones interesantes joomla
Presentación extensiones interesantes joomlaMadBlake
 
JBossAS: Desarrollo con Java Server Faces
JBossAS: Desarrollo con Java Server FacesJBossAS: Desarrollo con Java Server Faces
JBossAS: Desarrollo con Java Server FacesAitor Acedo
 
UDA-Componentes RUP. Feedback (v2.1.0 deprecado)
UDA-Componentes RUP. Feedback (v2.1.0 deprecado)UDA-Componentes RUP. Feedback (v2.1.0 deprecado)
UDA-Componentes RUP. Feedback (v2.1.0 deprecado)Ander Martinez
 
Presentacion portlets tools
Presentacion portlets toolsPresentacion portlets tools
Presentacion portlets toolsguest696b01
 
Presentacion portlets-tools
Presentacion portlets-toolsPresentacion portlets-tools
Presentacion portlets-toolsguest696b01
 

La actualidad más candente (19)

Aprender a programar aplicaciones moviles
Aprender a programar aplicaciones movilesAprender a programar aplicaciones moviles
Aprender a programar aplicaciones moviles
 
Dayana Assali
Dayana AssaliDayana Assali
Dayana Assali
 
Catalyst: Framework para el desarrollo de aplicaciones Web
Catalyst: Framework para el desarrollo de aplicaciones WebCatalyst: Framework para el desarrollo de aplicaciones Web
Catalyst: Framework para el desarrollo de aplicaciones Web
 
Web components
Web componentsWeb components
Web components
 
Symfony Framework para el desarrollo de aplicaciones web
Symfony Framework para el desarrollo de aplicaciones webSymfony Framework para el desarrollo de aplicaciones web
Symfony Framework para el desarrollo de aplicaciones web
 
Framework Catalyst
Framework CatalystFramework Catalyst
Framework Catalyst
 
Semana 1 Introducción al Ciclo del Software
Semana 1   Introducción al Ciclo del SoftwareSemana 1   Introducción al Ciclo del Software
Semana 1 Introducción al Ciclo del Software
 
Planificando las bases de una aplicación windows phone
Planificando las bases de una aplicación windows phonePlanificando las bases de una aplicación windows phone
Planificando las bases de una aplicación windows phone
 
Presentación extensiones interesantes joomla
Presentación extensiones interesantes joomlaPresentación extensiones interesantes joomla
Presentación extensiones interesantes joomla
 
Tutorial ASP .NET
Tutorial ASP .NETTutorial ASP .NET
Tutorial ASP .NET
 
Semana 4 Estructura y componentes SPA
Semana 4  Estructura y componentes SPASemana 4  Estructura y componentes SPA
Semana 4 Estructura y componentes SPA
 
JBossAS: Desarrollo con Java Server Faces
JBossAS: Desarrollo con Java Server FacesJBossAS: Desarrollo con Java Server Faces
JBossAS: Desarrollo con Java Server Faces
 
UDA-Componentes RUP. Feedback (v2.1.0 deprecado)
UDA-Componentes RUP. Feedback (v2.1.0 deprecado)UDA-Componentes RUP. Feedback (v2.1.0 deprecado)
UDA-Componentes RUP. Feedback (v2.1.0 deprecado)
 
Tutorial hacer un crud con prado
Tutorial hacer un crud con pradoTutorial hacer un crud con prado
Tutorial hacer un crud con prado
 
Asp.net 4
Asp.net 4Asp.net 4
Asp.net 4
 
Tema 6
Tema 6Tema 6
Tema 6
 
Presentacion portlets tools
Presentacion portlets toolsPresentacion portlets tools
Presentacion portlets tools
 
Presentacion portlets-tools
Presentacion portlets-toolsPresentacion portlets-tools
Presentacion portlets-tools
 
31-Android Generalidades Sobre Servicios Webs con MySQL
31-Android Generalidades Sobre Servicios Webs con MySQL31-Android Generalidades Sobre Servicios Webs con MySQL
31-Android Generalidades Sobre Servicios Webs con MySQL
 

Destacado

Desarrollo en 4G(Groovy, Grails, Git, GoogleAppEngine)
Desarrollo en 4G(Groovy, Grails, Git, GoogleAppEngine)Desarrollo en 4G(Groovy, Grails, Git, GoogleAppEngine)
Desarrollo en 4G(Groovy, Grails, Git, GoogleAppEngine)Jose Juan R. Zuñiga
 
Desarrollo economico camireño ¿Estancado o en declinación?
Desarrollo economico camireño ¿Estancado o en declinación?Desarrollo economico camireño ¿Estancado o en declinación?
Desarrollo economico camireño ¿Estancado o en declinación?Fernando Cuellar
 
12 Things to Make Your Summer More Inspiring
12 Things to Make Your Summer More Inspiring12 Things to Make Your Summer More Inspiring
12 Things to Make Your Summer More InspiringAnia Jednacz
 
Agencia de Innovación y Desarrollo de Andalucía - Björn Jürgens
Agencia de Innovación y Desarrollo de Andalucía - Björn JürgensAgencia de Innovación y Desarrollo de Andalucía - Björn Jürgens
Agencia de Innovación y Desarrollo de Andalucía - Björn JürgensNicolas Robinson-Garcia
 
Benedicto spricht über Hamburg
Benedicto spricht  über  HamburgBenedicto spricht  über  Hamburg
Benedicto spricht über HamburgRocio Ramos
 
Weihnachten F Otos Blog
Weihnachten   F Otos   BlogWeihnachten   F Otos   Blog
Weihnachten F Otos BlogRocio Ramos
 
Teil l ii schule – heute, morgen
Teil l ii schule – heute, morgenTeil l ii schule – heute, morgen
Teil l ii schule – heute, morgenHeFre
 
Gesamtschule Battenberg 2010
Gesamtschule Battenberg 2010Gesamtschule Battenberg 2010
Gesamtschule Battenberg 2010HeFre
 

Destacado (20)

Grails en SG08
Grails en SG08Grails en SG08
Grails en SG08
 
Charla grails
Charla grailsCharla grails
Charla grails
 
Redefiniendo el MVC con Grails
Redefiniendo el MVC con GrailsRedefiniendo el MVC con Grails
Redefiniendo el MVC con Grails
 
Desarrollo en 4G(Groovy, Grails, Git, GoogleAppEngine)
Desarrollo en 4G(Groovy, Grails, Git, GoogleAppEngine)Desarrollo en 4G(Groovy, Grails, Git, GoogleAppEngine)
Desarrollo en 4G(Groovy, Grails, Git, GoogleAppEngine)
 
Introducción a Groovy
Introducción a GroovyIntroducción a Groovy
Introducción a Groovy
 
Introducción a groovy & grails
Introducción a groovy & grailsIntroducción a groovy & grails
Introducción a groovy & grails
 
Graham gercken
Graham gerckenGraham gercken
Graham gercken
 
Reunión bilinguismo
Reunión bilinguismoReunión bilinguismo
Reunión bilinguismo
 
Desarrollo economico camireño ¿Estancado o en declinación?
Desarrollo economico camireño ¿Estancado o en declinación?Desarrollo economico camireño ¿Estancado o en declinación?
Desarrollo economico camireño ¿Estancado o en declinación?
 
Pgpp die schule
Pgpp die schulePgpp die schule
Pgpp die schule
 
12 Things to Make Your Summer More Inspiring
12 Things to Make Your Summer More Inspiring12 Things to Make Your Summer More Inspiring
12 Things to Make Your Summer More Inspiring
 
Agencia de Innovación y Desarrollo de Andalucía - Björn Jürgens
Agencia de Innovación y Desarrollo de Andalucía - Björn JürgensAgencia de Innovación y Desarrollo de Andalucía - Björn Jürgens
Agencia de Innovación y Desarrollo de Andalucía - Björn Jürgens
 
B26
B26B26
B26
 
Asignacion Wb 2.0, Dario
Asignacion Wb 2.0, DarioAsignacion Wb 2.0, Dario
Asignacion Wb 2.0, Dario
 
Benedicto spricht über Hamburg
Benedicto spricht  über  HamburgBenedicto spricht  über  Hamburg
Benedicto spricht über Hamburg
 
B24
B24B24
B24
 
Weihnachten F Otos Blog
Weihnachten   F Otos   BlogWeihnachten   F Otos   Blog
Weihnachten F Otos Blog
 
Teil l ii schule – heute, morgen
Teil l ii schule – heute, morgenTeil l ii schule – heute, morgen
Teil l ii schule – heute, morgen
 
Gesamtschule Battenberg 2010
Gesamtschule Battenberg 2010Gesamtschule Battenberg 2010
Gesamtschule Battenberg 2010
 
Enterprise 2.0 für das Management
Enterprise 2.0 für das ManagementEnterprise 2.0 für das Management
Enterprise 2.0 für das Management
 

Similar a Grails Framework para el desarrollo de aplicaciones Web

APPSWEBI4.0.pptx
APPSWEBI4.0.pptxAPPSWEBI4.0.pptx
APPSWEBI4.0.pptx22040086
 
Frameworks y herramientas para la web del futuro
Frameworks y herramientas para la web del futuroFrameworks y herramientas para la web del futuro
Frameworks y herramientas para la web del futuroBBVA API Market
 
Front end developer
Front end developerFront end developer
Front end developerSkynet Erp
 
Frameworks MVC para desarrollo de UITES
Frameworks MVC para desarrollo de UITESFrameworks MVC para desarrollo de UITES
Frameworks MVC para desarrollo de UITESJesus Caceres Tello
 
Code Blast 2012 - Fast Mobile Prototyping
Code Blast 2012 - Fast Mobile PrototypingCode Blast 2012 - Fast Mobile Prototyping
Code Blast 2012 - Fast Mobile PrototypingINSIGNIA4U
 
COMPLEMENTOS DEL NAVEGADOR
COMPLEMENTOS DEL NAVEGADORCOMPLEMENTOS DEL NAVEGADOR
COMPLEMENTOS DEL NAVEGADORJOSELINE
 
Despliegue lamp
Despliegue lampDespliegue lamp
Despliegue lampBVela
 
Software en la actualidad
Software en la actualidadSoftware en la actualidad
Software en la actualidadRaelyx Cordero
 
Trade-Off sobre Tecnologías Web
Trade-Off sobre Tecnologías WebTrade-Off sobre Tecnologías Web
Trade-Off sobre Tecnologías WebMiguel Angel Macias
 
Frameworks de Javascript Lema-Rosero
Frameworks de Javascript Lema-RoseroFrameworks de Javascript Lema-Rosero
Frameworks de Javascript Lema-RoseroDanielRosero23
 
Trac: Gestión de proyectos de desarrollo de Software
Trac: Gestión de proyectos de desarrollo de SoftwareTrac: Gestión de proyectos de desarrollo de Software
Trac: Gestión de proyectos de desarrollo de SoftwareEsteban Saavedra
 
Framework para desarrollo de apps móviles
Framework para desarrollo de apps móvilesFramework para desarrollo de apps móviles
Framework para desarrollo de apps móvilesIván Campaña Naranjo
 

Similar a Grails Framework para el desarrollo de aplicaciones Web (20)

APPSWEBI4.0.pptx
APPSWEBI4.0.pptxAPPSWEBI4.0.pptx
APPSWEBI4.0.pptx
 
Grails
GrailsGrails
Grails
 
Arquitectura web
Arquitectura webArquitectura web
Arquitectura web
 
Frameworks y herramientas para la web del futuro
Frameworks y herramientas para la web del futuroFrameworks y herramientas para la web del futuro
Frameworks y herramientas para la web del futuro
 
Desarrollo de aplicaciones Web 2.0 Google Web Toolkit
Desarrollo de aplicaciones Web 2.0 Google Web ToolkitDesarrollo de aplicaciones Web 2.0 Google Web Toolkit
Desarrollo de aplicaciones Web 2.0 Google Web Toolkit
 
Metodologías de desarrollo orientado a objetos
Metodologías de desarrollo orientado a objetosMetodologías de desarrollo orientado a objetos
Metodologías de desarrollo orientado a objetos
 
Front end developer
Front end developerFront end developer
Front end developer
 
Frameworks MVC para desarrollo de UITES
Frameworks MVC para desarrollo de UITESFrameworks MVC para desarrollo de UITES
Frameworks MVC para desarrollo de UITES
 
Code Blast 2012 - Fast Mobile Prototyping
Code Blast 2012 - Fast Mobile PrototypingCode Blast 2012 - Fast Mobile Prototyping
Code Blast 2012 - Fast Mobile Prototyping
 
COMPLEMENTOS DEL NAVEGADOR
COMPLEMENTOS DEL NAVEGADORCOMPLEMENTOS DEL NAVEGADOR
COMPLEMENTOS DEL NAVEGADOR
 
Presentacion Google Web Toolkit
Presentacion Google Web ToolkitPresentacion Google Web Toolkit
Presentacion Google Web Toolkit
 
Desarrollo de aplicaciones web con Google Web Toolkit
Desarrollo de aplicaciones web con Google Web ToolkitDesarrollo de aplicaciones web con Google Web Toolkit
Desarrollo de aplicaciones web con Google Web Toolkit
 
Despliegue lamp
Despliegue lampDespliegue lamp
Despliegue lamp
 
Software en la actualidad
Software en la actualidadSoftware en la actualidad
Software en la actualidad
 
Trade-Off sobre Tecnologías Web
Trade-Off sobre Tecnologías WebTrade-Off sobre Tecnologías Web
Trade-Off sobre Tecnologías Web
 
Spring framework
Spring frameworkSpring framework
Spring framework
 
Frameworks de Javascript Lema-Rosero
Frameworks de Javascript Lema-RoseroFrameworks de Javascript Lema-Rosero
Frameworks de Javascript Lema-Rosero
 
Aplicaciones
AplicacionesAplicaciones
Aplicaciones
 
Trac: Gestión de proyectos de desarrollo de Software
Trac: Gestión de proyectos de desarrollo de SoftwareTrac: Gestión de proyectos de desarrollo de Software
Trac: Gestión de proyectos de desarrollo de Software
 
Framework para desarrollo de apps móviles
Framework para desarrollo de apps móvilesFramework para desarrollo de apps móviles
Framework para desarrollo de apps móviles
 

Más de Esteban Saavedra (20)

Atix30
Atix30Atix30
Atix30
 
Atix29
Atix29Atix29
Atix29
 
Atix28
Atix28Atix28
Atix28
 
Atix27
Atix27Atix27
Atix27
 
Atix26
Atix26Atix26
Atix26
 
Atix25
Atix25Atix25
Atix25
 
Rabbitmq
RabbitmqRabbitmq
Rabbitmq
 
Ansible
AnsibleAnsible
Ansible
 
Perl
PerlPerl
Perl
 
Atix24
Atix24Atix24
Atix24
 
Atix23
Atix23Atix23
Atix23
 
Lineas Base Migracion a Software Libre
Lineas Base Migracion a Software LibreLineas Base Migracion a Software Libre
Lineas Base Migracion a Software Libre
 
Seguridad Sistemas de Gobierno
Seguridad Sistemas de GobiernoSeguridad Sistemas de Gobierno
Seguridad Sistemas de Gobierno
 
Tunneling: Esquivando Restricciones de Proxies y Firewalls
Tunneling: Esquivando Restricciones de Proxies y FirewallsTunneling: Esquivando Restricciones de Proxies y Firewalls
Tunneling: Esquivando Restricciones de Proxies y Firewalls
 
Bi Un Modelo Eficiente para Gerenciar Empresas
Bi Un Modelo Eficiente para Gerenciar EmpresasBi Un Modelo Eficiente para Gerenciar Empresas
Bi Un Modelo Eficiente para Gerenciar Empresas
 
Clouds privadas
Clouds privadasClouds privadas
Clouds privadas
 
Introduccion Computacion Ubicua
Introduccion Computacion UbicuaIntroduccion Computacion Ubicua
Introduccion Computacion Ubicua
 
Frameworks de Desarrollo Web Grails
Frameworks de Desarrollo Web GrailsFrameworks de Desarrollo Web Grails
Frameworks de Desarrollo Web Grails
 
Avances Tecnologicos
Avances TecnologicosAvances Tecnologicos
Avances Tecnologicos
 
Dni Electronico Bolivia
Dni Electronico BoliviaDni Electronico Bolivia
Dni Electronico Bolivia
 

Último

Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxtjcesar1
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosAlbanyMartinez7
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
Presentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia ArtificialPresentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia Artificialcynserafini89
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersIván López Martín
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docxobandopaula444
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOnarvaezisabella21
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúCEFERINO DELGADO FLORES
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptchaverriemily794
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1ivanapaterninar
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxGESTECPERUSAC
 
tarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzztarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzzAlexandergo5
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfedepmariaperez
 

Último (20)

Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos Juridicos
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
Presentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia ArtificialPresentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia Artificial
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 Testcontainers
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptx
 
tarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzztarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzz
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdf
 

Grails Framework para el desarrollo de aplicaciones Web

  • 1. Grails: Framework para el desarrollo de aplicaciones Web (1ra Parte) Grails es un framework orientado al desarrollo de aplicaciones web de forma sencilla, rápida y divertida. 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 añadirle las últimas piezas para construir una aplicación concreta. Introducción Objetivos de un framework Hoy en día, con la aparición de nuevas Desarrollo rápido. ✔ metodologías y herramientas en el ámbito de Desarrollo estructurado. ✔ la ingeniería de software, el desarrollo de Reutilización de código. aplicaciones web ha tomado un cause un ✔ tanto distinto a lo que se tenia hace unos Disminución del esfuerzo en el ✔ años atrás; ésto representa que, si antes con desarrollo. el desarrollo y herramientas tradicionales Aprovechar las funcionalidades ya demorábamos semanas y/o meses en ✔ implementadas, no debemos prototipiarlas, meses o hasta años en reinventar la rueda. desarrollarlas completamente. Hoy en día con la aparición de los frameworks éste Nos concentramos directamente en la ✔ tiempo se ha reducido considerablemente, solución del problema. ya que ahora con la ayuda de estas nuevas Tener como aliadas a las herramientas como son los frameworks y ✔ metodologías de desarrollo ágil (XP, teniendo como aliadas a las metodologías AD). ágiles de desarrollo, podemos prototipear nuestras aplicaciones en cuestión de minutos u horas, y terminar su desarrollo en una par Patrón MVC de semanas. Desde la aparición de RoR (Ruby on Rails) el padrino de todos los frameworks de Que es un framework desarrollo de aplicaciones web, el patrón MCV ha cobrado una notable importancia, Es una estructura de soporte definida ✔ sobre todo por su cualidad de dividir en en la cual otro proyecto de software capas el desarrollo de un proyecto o puede ser organizado y desarrollado. aplicación web. Se ha convertido en la piedra angular ✔ Modelo: Encargado de modelar y de la moderna ingeniería del software. ✔ contener la lógica del dominio de la
  • 2. aplicación. Características de Grails Vista: Encargada de contener la ✔ Se basa en el patrón MVC. ✔ lógica de presentación. Tiene todo lo necesario para ✔ Controlador: Encargado de ser el ✔ desarrollar aplicaciones Web. engranaje entre el modelo y la vista; y Soporta Ajax. también contener la lógica del ✔ negocio. 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. ✔ Componentes de Grails Hibernate: El estándar defecto para ✔ ORM en el mundo de Java. Spring: El más popular framework ✔ para Java. Gráfico 1: Patrón MVC Quartz: Un framework que permite ✔ realizar tareas programadas. Que es Grails SiteMesh: Un framework robusto y ✔ estable para renderizar layouts. Es un framework para el desarrollo de ✔ aplicaciones web. Preparando nuestro entorno Es la respuesta de groovy y java para ✔ Ruby on Rails. de trabajo. Permite el desarrollo de aplicaciones ✔ Para empezar a trabajar y desarrollar web de forma rápida. aplicaciones web en Grails, precisamos cumplir algunos requisitos como ser: Filosofía de Grails Tener instalado el JDK de Java. ✔ Reutilizar código. ✔ Tener instalado algún gestor de base ✔ de datos (Sqlite, MySQl, PostgreSQL, Desarrollar aplicaciones web de forma ✔ MS-SQL, Oracle, entre otros). rápida, sencilla y divertida. Utilizar los mejores componentes ✔ Instalación de Grails actualmente disponibles. Combinar todo en un paquete fácil de ✔ Obtener la ultima versión estable de ✔ usar. Grails desde su sitio web [1]. Grails provee el pegamento, de tal ✔ Descomprimir Grails en un directorio ✔ forma que usted no haga el suyo. de su preferencia, al cual tenga acceso el usuario. Setear la variable de entorno ✔ GRAILS_HOME.
  • 3. Adicionar $GRAILS_HOME/bin en el path. ✔ Para confirmar que nuestra instalación es correcta, introducimos el comando grails en la línea de comando. Gráfico 2: Uso del comando grails Nuestra primera aplicación Nuestra pequeña aplicación se enmarca en un entorno donde se mantiene el registro de eventos (congresos, jornadas, etc), a los cuales concurren varios expositores de diferentes nacionalidades y donde cada uno de estos tiene una o más conferencias que impartir. Gráfico 2: Diagrama E/R de nuestra aplicación Para una mejor comprensión del potencial de Grails en el desarrollo de aplicaciones web, realizaremos una aplicación paso a paso. Estructura de un Proyecto Hoy en día, los frameworks mantienen una forma similar de estructurar sus proyectos, imaginemos como si se tratase de un organigrama donde se consideran las siguientes partes: 1. Un proyecto contiene una o varias aplicaciones 2. Una aplicación tiene uno o varios módulos 3. Un módulo tiene una o varias acciones 4. Una acción puede o no estar asociada a una vista 5. Creación de la aplicación
  • 4. Gráfico 3: Crear una aplicación Estructura de directorios Al igual que la mayoría de los frameworks orientados al desarrollo de aplicaciones web, Grails cuando crea los proyectos y aplicaciones, por defecto crea una estructura de directorios definida, estructura que nos permite mantener un orden y conocer exactamente donde se encuentran todos y cada uno de los componentes de nuestra aplicación. Gráfico 4: Estructura de la aplicación
  • 5. Ejecución de la aplicación Otra característica similar que poseen la mayoría de los frameworks, va referida a que estos vienen con un pequeño servidor de aplicaciones que nos permite ejecutar y probar nuestros desarrollos, debemos considerar que estos pequeños servidores de aplicación solo deben ser utilizados en etapas de prueba o pequeños desarrollos, ya que para entornos mas grandes o de producción debemos hacer uso de servidores de aplicación mas robustos, orientados y con soporte al lenguaje propio del framework; en el caso de Grails se puede hacer uso de Tomcat, Jboss, Websphere entre otros. El pequeño servidor de aplicaciones que acompaña a Grails es Jetty, como lo muestra la figura. Gráfico 5: Iniciando la aplicación Ejecutando nuestra aplicación Gráfico 6: La aplicación ejecutándose
  • 6. Modelado del dominio Para describir el dominio de nuestra aplicación, primero debemos crear los dominios correspondientes, de la siguiente forma para todos y cada uno de los dominios de nuestra aplicación: Gráfico 7: Creando los dominios Grails cuando crea un dominio, inicialmente crea sólo clases vacías en el directorio GestionEventos/grails­app/domain/, las cuales debemos modificar e incluir los siguientes contenidos: /grails­app/domain/Evento.groovy  class Evento { String nombre String ciudad Date inicia Date finaliza String sitioweb } /grails­app/domain/Expositor.groovy  class Expositor { String paterno String materno String nombre String nacionalidad String email } /grails­app/domain/Conferencia.groovy  class Conferencia { String titulo String resumen Date fecha }
  • 7. Relaciones Las relaciones de nuestro modelo deben verse reflejados en nuestros dominios. Grails permite mantener relaciones de 1 a 1, de 1 a muchos y de muchos a muchos. Para nuestro ejemplo las relaciones son las siguientes: Un evento tiene muchas conferencias ✔ Un expositor puede impartir muchas conferencias ✔ Estas relaciones deben figurar en los dominios y ficheros correspondientes como se muestra a continuación: /grails­app/domain/Evento.groovy  class Evento { String nombre String ciudad Date inicia Date finaliza String sitioweb static hasMany = [conferencias:Conferencia] } /grails­app/domain/Expositor.groovy  class Expositor { String paterno String materno String nombre String nacionalidad String email static hasMany = [conferencias:Conferencia] } /grails­app/domain/Conferencia.groovy class Conferencia { String titulo String resumen Date fecha Evento evento Expositor expositor static belongsTo = [Evento,Expositor] } Scaffolding Scaffolding es un término introducido por Rails, para representar la generación de los artefactos, que permiten un uso más sencillo y rápido de las interfaces que permiten operaciones básicas, denominados de forma genérica CRUDs (Create, Read, Update y Delete) o ABDs (Altas Bajas y Modificaciones). Grails permite 2 tipos de scaffolding, dinámicas y estáticas; en esta primera parte del tutorial sólo consideraremos el scaffolding dinámico. Para cada uno de los dominios, para los que se desee tener un scaffold, se debe crear de forma análoga la creación y adecuación del controlador correspondiente, como se muestra a continuación.
  • 8. Gráfico 8: Creando los controladores Para esto debemos realizar las siguiente operaciones: Crear los controladores para cada uno de los dominios. ✔ Modificar los controladores, de tal forma que permitan generar los scaffold de forma ✔ dinámica. Los controladores para nuestra aplicación deberían tener los siguientes contenidos: /grails­app/controllers/EventoController.grovy class EventoController { def scaffold = Evento } /grails­app/controllers/ExpositorController.grovy class ExpositorController { def scaffold = Expositor } /grails­app/controllers/ConferenciaController.grovy class ConferenciaController { def scaffold = Conferencia } Gráfico 9: Nuestra aplicación y sus controladores
  • 9. Ejecución y pruebas Una vez corriendo nuestra aplicación podemos empezar a probar todas y cada una de las características provistas por los scaffolds generados: Formularios, Ventanas de diálogo, Relaciones, Efectos JavaScript en ciertos campos, etc,...
  • 10. Gráfico 10: Efectos varios en los formularios de creación Gráfico 11: Listado de Eventos Referencias [1] http://www.grails.org [2] Getting Started with Grails [3] The Definitive Guide to Grails Autor Esteban Saavedra López Líder de la Comunidad ATIX (Oruro – Bolivia) Activista de Software Libre en Bolivia jesaavedra@opentelematics.org http://jesaavedra.opentelematics.org