Módulo Web

Objetivos:

  • Desarrollar aplicaciones web con software libre utilizando herramientas libres de desarrollo.
  • Conocer y utilizar conceptos básicos de la integración de aplicaciones utilizando de modo práctico tanto entornos LAMP como Java.
  • Arquitectura de aplicaciones en la plataforma Java.
  • Conocer y utilizar los frameworks de persistencia a través del conocimiento de uno concreto (Hibernate).
  • Conocer y utilizar los frameworks de desarrollo de interfaces web en Java a través del conocimiento de ZKoss
  • Desarrollar proyectos web aplicando conceptos importantes en el desarrollo de software: documentación, accesibilidad, internacionalización, empaquetado, testing e integración contínua.
  • Charlas complementarias de empresas relevantes del sector (Telefónica, Trabe soluciones).
  • Sesiones prácticas en las que se aplicarán los conceptos explicados en las clases teóricas utilizando las herramientas y metodologías de trabajo que existen en las empresas de comunidades de software libre.

Temario:

Conocimientos previos necesarios: nociones básicas de software libre, conocimiento del entorno de trabajo en sistemas libres. Alguna experiencia genérica en programación en Java, el paradigma de orientación a objetos y HTML resulta positiva pero no es imprescindible.

Temas

  1. Introducción al desarrollo web con Software Libre. Introducción a desarrollo web en PHP.  Introducción a desarrollo web en Java: descripción del lenguaje Java, conceptos de orientación a objetos, orientación a objetos en Java.

  2. Integración de aplicaciones web. Desarrollo de servicios web mediante SOAP. Desarrollo de servicios web mediante Rest. Integración mediante Single Sign On.

  3. Principales conceptos de desarrollo de aplicaciones con interfaz web. Contenedor de servlets. Arquitectura de aplicaciones en 3 capas. Spring Framework como contenedor ligero de middleware. Capa de persistencia. Mapeo objeto-relacional con Hibernate. ZKoss como Framework RIA. DirectAjax.

  4. Conceptos importantes de desarrollo web. Internacionalización en proyectos web. Documentación de proyectos web. Compilación e construcción automática de software. Ant. Depuración en Java. Testing en proyectos web: tests de unidad, funcionales e integración continua.

  5. Estudios técnicos detallados de proyectos web en software libre. Typo3. Morfeo. Ruby On Rails. Recuperación de Información.