Curso

Desarrollo profesional de aplicaciones web

Temario
 
  1. Desarrollo de Vistas dinámicas con Jquery

    1. Revisión del caso de estudio a desarrollar.

    2. CSS Conceptos y utilidades.

      1. Reglas CSS

      2. Selectores CSS

      3. Metodos para agregar CSS a una página web

      4. Principales estilos CSS

      5. Unidades de medición

      6. Animación con CSS

    3. ¿Qué es Jquery y por qué emplearlo?

    4. Conceptos básicos

      1. Jquery Wrapper

      2. Funciones de utilería.

      3. Elementos del DOM

    5. Selectores

      1. Selectores CSS

      2. Selectores por posición

      3. Selectores Jquery

      4. Selectores personalizados

      5. Filtros

    6. Manipulación y administración de elementos seleccionados.

      1. Operaciones sobre el conjunto de objetos seleccionados.

      2. Selección de subconjuntos de elementos con base a sus relaciones jerárquicas.

      3. Manipulación de atributos

      4. Manipulación de estilos.

      5. Agregación de nuevos elementos.

      6. Eliminación de elementos

      7. Modificación del contenido de un elemento.

      8. Animaciones.

    7. Funciones que no requieren el uso de un Wrapper ($.)

    8. JqueryUI

      1. Controles y elementos gráficos

      2. Configuración y personalización de elementos.

    9. Eventos.

      1. El objeto Event.

      2. Handlers de Eventos en Jquery

      3. El elemento THIS

      4. Provocando eventos de forma programática.

      5. Habdlers de Eventos para elementos inexistentes: Live and Die

      6. Browser event model

      7. Jquery event model

    10. Plugins

      1. Convenciones para escribir un plugin.

      2. Diseño, programación y uso de plugins.

    11. Jquery Ajax

      1. Carga de HTML dinámico

      2. Obtención de datos JSON

      3. Peticiones get y post

      4. Envío de los datos de un formulario de forma asíncrona: Serialize.

      5. Validación de formularios con Jquery


  1. Desarrollo de Aplicaciones profesionales Web con SpringMVC y otras tecnologías.

    1. Revisión del caso de estudio a desarrollar.


Parte 1. Spring MVC Tradicional.

    1. Revisión del modelo de programación de Spring MVC

      1. Antecedentes Spring - Core.

      2. Características de SpringMVC

      3. Patrón de diseño MVC

    2. DispatcherServlet

      1. WebApplicationContext y sus beans.

      2. Configuración.

      3. Convención sobre configuración a emplear en el desarrollo.

        1. ControllerClassNameHandlerMapping

        2. ModelMap

        3. RequestToViewNameTranslator

    3. Separando la vista: Decoración con SiteMesh

      1. Diseño de templates y decoradores para el caso de estudio

      2. Configuración e integración de SiteMesh con SpringMVC.

      3. Uso de <mvc:resources> para mejorar la administración de recursos web.

    4. Mapeo de peticiones Http empleando Convención sobre configuración.

      1. @Controller, @RequestMapping

    5. Obteniendo datos de una petición HTTP: @RequestParam

    6. Agregando funcionalidad con @ModelAttribute, @SessionAttributes, @InitBinder

    7. Content Caching para peticiones cuya respuesta no ha cambiado.

    8. Resolviendo vistas

      1. La interface ViewResolver

      2. Redireccionamiento de vistas, prefijos redirect y forward.

      3. ContentNegotiatingViewResolver

      4. Uso de atributos con Scope Flash.

    9. Manejo de excepciones

    10. Mas Configuraciones en Spring MVC.

      1. Advising Controllers, uso de @ControllerAdvice

      2. MVC XML Namespace

        1. <mvc:annotation-driven />

        2. View Controllers: <mvc:view-controller/>

        3. Uso de <mvc:resources>.

    11. Manejo de formularios.

    12. JSTL y SpringMVC Tags.

      1. Validación de formularios del lado del servidor

      2. Validación asíncrona del lado del servidor con Jquery y SpringMVC

      3. Validación JSR 303


Parte 2: Spring MVC , REST, procesamiento asíncrono.

    1. Integración servicios REST con Spring MVC

      1. Creación de REST controllers con @RestController.

      2. Uso de HttpEntity

    2. Procesando datos JSON

      1. Serialización con Jackson, uso de @JsonView

      2. Jackson JSONP Support, uso de AbstractJsonpResponseBodyAdvice

    3. Procesamiento asíncrono de peticiones.

      1. Modelo de procesamiento asíncrono Servlet 3.0

      2. Configuración para procesamiento asíncrono.

      3. Interceptando peticiones asíncronas.

      4. Manejo de excepciones en peticiones asíncronas.


Parte 3. SpringMVC y WebSockets.

    1. SpringMVC y los WebSockets.

      1. Introducción

      2. ¿Cuándo emplear WebSockets?

      3. REST vs WebSockets

      4. Spring WebSocket API

        1. WebSocketHandler

      5. Mensajes: Sub-Protocol Support : STOMP

      6. Protocolo SockJS

      7. SockJS Javascript client

  1. Desarrollo de aplicaciones con Spring Web Flow

    1. Revisión del caso de studio a desarrollar.

    2. ¿Qué es Spring Web Flow?

    3. Características de Spring Web Flow

      1. Arquitectura

      2. Binding automatic

      3. Soporte para EL

      4. Manejo de la persistencia en el flujo

      5. Redireccionamiento externo

      6. Elementos de Spring Web Flow

      7. Necesidad del uso de flujos

    4. Definición y creación de Flujos.

      1. Flow Executor

      2. Flow Registry

      3. Definición vía XML

      4. Elementos de un flujo.

      5. Sección Head

      6. Sección Data

      7. Tipos de alcances

        1. Request

        2. Flash

        3. View

        4. Flow

        5. Conversation

        6. Session

      8. Estados

        1. Start-state

        2. Action-state

          1. Ejecución de lógica de negocio.

        3. View-state

        4. Decision-state

        5. Subflow-state

        6. End-state

      9. Puntos de salida.

        1. Flow redirect

        2. External redirect

      10. Transiciones y manejo de eventos global.

        1. On-end

        2. Output

        3. Exception handler

        4. Bean-import

    5. Acciones en flujos

      1. Uso de EL.

    6. Vistas y vinculación de modelos de datos.

    7. Validación y manejo de errores.

    8. Subflujos.

      1. Definición y Uso

      2. Variables de entrada/salida

      3. Variables con alcance - conversación

      4. Estados finales.

    9. Acciones personalizadas.

      1. Acciones basadas en POJOs Vs Action

      2. RequestContext y ExternalContext

    10. Integración con SpringMVC



  1. Implementando seguridad con Spring Security.

    1. ¿Qué es Spring security?

      1. Los modulos de Spring Security

    2. ¿Qué se puede hacer con Spring Security?

      1. Autenticación

      2. Autorización.

    3. Arquitectura de Spring Security

      1. Procesamiento de peticiones

      2. Delegates

      3. Servlet FIlters

        1. DelegatingFilterProxy

        2. FilterChainProxy

        3. Filter Ordering

    4. Acceso a aplicaciones Web

      1. Autenticación básica HTTP

      2. Login basado en formas

      3. Servicio de Logout

      4. Login anónimo

      5. Remember - me

      6. Detección de Time outs.

    5. Autenticación

      1. Definiciones en Memoria.

      2. Almacenamiento en Base de datos.

      3. Encriptando Passwords.

      4. Personalización de esquemas de bases de datos.

      5. Autenticación LDAP

    6. Seguridad a nivel de método

      1. Interceptores de métodos

      2. Métodos de seguridad global

      3. Anotaciones.

    7. Seguridad en las Vistas

      1. Tags

      2. Autorización basada en Roles.

    8. Uso de SpEL en Spring Security

    9. Administración de la sesión y Concurrencia.

      1. Robo de sesión

      2. Session Fixation Attack Protection

      3. Control de concurrencia.

    10. Asegurando el sitio con SSL

    11. Autenticación de cliente con Certificado

      1. PKI

      2. X.509

      3. Almacenes de confianza en Tomcat

      4. CErtificados de cliente

      5. Namespace para X.509

    12. Asegurando Spring Web Flow con Spring Security

      1. Elemento seguro

      2. Atributos de seguridad

      3. Tipo de matching

      4. SecurityFlowExecutionListener

    13. Integración con el API de Servlet 3+

      1. HttpServletRequest.authenticate(HttpServletRequest ,HttpServletResponse)

      2. HttpServletRequest.login(String,String)

      3. HttpServletRequest.logout()

      4. AsyncContext.start(Runnable)

      5. Async Servlet Support

    14. Cross Site Request Forgery (CSRF)

    15. CSRF Attacks

    16. Synchronizer Token Pattern

    17. When to use CSRF protection

      1. CSRF protection and JSON

      2. CSRF and Stateless Browser Applications

    18. Expression-Based Access Control

      1. Características generales.

        1. Expresiones comunes.

      2. Web Security Expressions

      3. Method Security Expressions

        1. Anotaciones @Pre y @Post

        2. Control de acceso empleando @PreAuthorize y @PostAuthorize

        3. Filtrado empleando @PreFilter y @PostFilter

        4. Interface PermissionEvaluator