Curso

Desarrollo Ágil con Groovy - Grails

Temario
 
  • Lenguajes dinámicos
    • ¿Que es un lenguaje dinámico?
    • ¿Por que se necesita un lenguaje dinámico en la plataforma Java?
  • Introducción a Groovy
    • Historia
    • ¿Que es Groovy?
    • ¿Por que usar Groovy?
      • Integración con Java
      • Sintaxis
      • Características
        • Lenguaje
        • GDK
        • Librería
    • Instalación
      • Binarios para diversas plataformas
      • HolaMundo.groovy
      • GroovyShell
      • GroovyConsole
      • Compilación y ejecución en la linea de comandos
        • groovy & groovyc
        • groovyc & java
  • El lenguaje Groovy
    • Sintaxis
      • Declaración de clases
      • Scripts
      • Comentarios
      • Características Anti-ceremonia: estructuras y operadores opcionales
        • Azúcar Sintáctica
          • Comparación de la sintaxis Groovy y Java
          • Imports Automáticos
          • Opcionales
            • Punto y coma (semicolons)
            • Paréntesis
            • Valores de retorno (operador return)
            • Declaración de tipos
            • Manejo de excepciones
            • Parámetros
              • Arrays
            • Operador de sobrecarga
            • Referencias seguras, operador de navegación segura
            • Evaluación booleana en Groovy (Groovy Truth)
              • if
              • El operador Elvis ?:
              • switch
              • Aserciones (operador assert)
            • Strings
              • Comas simples
              • Comas triples
              • GStrings
            • Los números son objetos
            • Collections
              • Mapas
              • Listas
              • Rangos
            • Código como objetos (Closures) y bloques de código
              • Uso de Closures
              • Closures y limpieza de recursos
            • Ciclos
              • for
              • for con rangos
              • times
              • upto
              • step
            • Operador this
              • Métodos estáticos
        • Soporte de características de Java 5
          • Autoboxing
          • Ciclos for-each
          • Enumeraciones- enums
          • Argumentos variables- varargs
          • Anotaciones
          • Importaciones de clases y tipos estaticos- Static Import
          • Tipos Genéricos-Generics
          • Gotchas
            • Return opcional
            • Operador == en Groovy
            • No Verificación de tipos en tiempo de compilación
            • Nuevas palabras reservadas
            • Sin soporte a clases internas
            • Sin soporte a bloques de código
            • El punto y coma es casi opcional
            • Sintaxis diferente para declarar y definir arreglos de tipos primitivos
    • Integración con Java
      • JavaBeans
      • Groovy Beans (POGOS)
        • Setters y Getters autogenerados
        • setProperty & getProperty
        • Atributos de solo lectura
        • Inicialización en constructores
        • Métodos privados
      • Llamando código Groovy desde código Java
      • Llamando código Java desde código Groovy
      • Interfaces en Groovy y Java
      • Compilación de código Groovy
        • El Joint Compiler
        • Compilar con Ant
        • Compilar con Maven
    • Expresiones regulares
    • Tipos de datos dinámicos
      • Tipado en Java
      • Tipado dinámico contra Tipado débil
      • Uso del tipado dinámico
      • Tipado opcional
      • Tipos en Groovy
      • Multimetodos
      • GPath
      • Operador Spread (*)
      • Operador 'use'
  • El GDK
  • Metaprogramación
    • El Meta-Object Protocol
      • Introducción
      • El objeto Groovy
      • Consulta de propiedades y métodos
      • Acceso dinámico a objetos
    • Intercepción de métodos
      • Alternativas
        • GroovyInterceptable
        • Metaclass
    • Inyección de métodos y Síntesis
      • Categorias
      • ExpandoMetaClass
      • Inyección de métodos en instancias especificas
      • Síntesis de métodos
        • Con 'methodMissing'
        • Con ExpandoMetaClass
        • Para instancias especificas
    • Creación dinámica de clases con Expando
    • Delegación de métodos
  • Pruebas de Unidad y Mocks
    • Soporte para probar código Java y Groovy
    • Prueba de Excepciones
    • Mocking
      • Con sobrecarga
      • Con Categorias
      • Con ExpandoMetaClass
      • Con Expando
      • Con Mapas
      • Con la librería de Mocks de Groovy (Groovy Mock Library)
  • Builders
    • Que es un Builder
    • Arboles de objetos con NodeBuilder
    • MarkupBuilder
      • HTML
      • XML
      • AntBuilder
      • SwingBuilder
    • Builders personalizados
  • Acceso a base de datos
    • Operaciones básicas
      • Configuración de conexiones
      • Ejecución de SQL
    • El objeto DataSet
  • XML
    • Lectura de documentos XML
      • Parseadores DOM
      • Parseador de Groovy
      • SAX
      • StAX
    • Generación de XML
    • XmlSlurper
  • Lenguajes de Dominio Especifico (DSLs)
    • Introducción
    • Tipos de DSLs
    • Diseño de DSLs
    • Closures
    • Intercepción de métodos
    • Limitaciones con parentesis y como darles la vuelta
    • Categorias
    • ExpandoMetaClass
  • Desarrollo Web
    • Groovlets
  • Introducción a Grails
    • ¿Por que Grails?
    • Grails como plataforma
    • Instalación de Grails
  • Artefactos
    • Domain Objects
    • Controllers
    • Mapeos de Url (Url Mappings)
    • Vistas
    • Servicios
    • i18n
    • Scaffolding
      • Dinámico
      • Estático
    • GORM
      • Fundamentos de persistencia
      • Asociaciones
      • Eventos
        • Auto stamping
      • Consultas
        • Finders dinámicos
        • Criteria
        • Query By Example
        • HQL
        • Paginación
      • Configuración de GORM
        • Bitácora
        • Dialectos
        • Configuración especifica de Hibernate
    • Configuración
      • DataSources
  • Ajax
    • Fundamentos
    • Poniendo a trabajar a Grails con Ajax
    • Proveedores de Ajax en Grails
    • Envío de formularios de manera asíncrona
    • Manejo de Eventos
    • Efectos y animación
    • Performance
  • WebFlows
    • Introducción
    • Definición de Flujos
    • Definición de estados de inicio
    • Definiendo estados de termino
    • Alcances de los flujos
    • Flujos, almacenamiento y serialización
    • Eventos lanzados desde la vista
    • Subflujos
    • Poniendo a trabajar los flujos
      • Actualización de objetos del modelo
      • Actualización de la vista
      • Data Binding
  • Gorm Avanzado
    • GORM a profundidad
      • Hibernate Session
      • Manejo de la sesión de Hibernate y uso del flush
      • Transacciones
    • Afinación de GORM
      • Carga perezosa y agresiva
      • Cache
      • Estrategias de Herencia
    • Estrategias de bloqueo
      • Pesimista
      • Optimista
  • Plugins
    • Introducción
    • Instalación
    • Plugins locales
    • Mejora tu aplicación
      • Gráficas y diagramas
      • Búsqueda
      • GrailsUI
      • Calendarización
      • Correo Electrónico
      • Mensajería
  • Seguridad
    • Inyección de SQL y HQL
    • Inyección de Groovy
    • XSS y URL Scapping
    • Ataques de denegación de servicio (DoS)
    • Vulnerabilidad de Binding de datos
    • Autentificación y Autorización
      • JSecurity Plugin
      • SpringSecurity Plugin
    • Filtros
  • WebServices
    • REST
      • URL Mappings
        • Negociación de contenido
        • HTTP Header Accept
      • Marshalling de objetos
        • XML
        • JSON
      • Unmarshalling
      • Seguridad
    • Atom y RSS
      • Feed Plugin
    • SOAP
      • Plugin
      • Consumo de WebServices
  • Despliegue
    • Uso de ambientes
    • Automatización de tareas con Gant
    • Servidores de aplicaciones
      • Tomcat
      • Glassfish
  • Integración
    • EJB
  • Desarrollo de Plugins
    • Introducción
    • Metadata de los Plugins
    • Artefactos
    • Ganchos
    • Variables
    • Beans de Spring