miércoles, 17 de diciembre de 2008

Design Patterns: Visitor (Visitante)

El patrónVisitor tiene como objetivo representar una operación que se realiza sobre una colección de elementos.
Es efectiva para estructuras con objetos de tipo heterogéneo, sobre los que pretendemos aplicar una nueva funcionalidad.
Usando este patrón nos evitamos "contaminar" las clases de los elementos y preguntar por el tipo de ellos (casting).
En su esquema estructural se concentra la funcionalidad en el Visitante, que implementará métodos visit() para cada tipo de elemento.
Cada elemento permitiría su visita con llamadas a métodos accept().
¿Queréis saber cómo se produce tal diálogo?
Nos vemos en el seminario!

martes, 16 de diciembre de 2008

Apache Tapestry

Tapestry es un marco de trabajo J2EE de código abierto para el desarrollo de aplicaciones Web Java basadas en componentes y orientadas a objetos. Simplemente, en lugar de tratar con el API Servlet o con las Actions de Struts. Tapestry almacena los datos de usuario con propiedades de objetos y maneja las acciones de usuario con métodos manejadores de eventos.

Otra característica importante de Tapestry es el uso de plantillas HTML. En Tapestry cada página es una plantilla HTML que contiene etiquetas HTML amigables para el navegador. Al contrario que las páginas JSP, JSTL o JSF, crear páginas Tapestry es relativamente fácil utilizando herramientas de diseño Web comunes, y puede previsualizarlas en un navegador.

Tapestry esta bajo la licencia de Apache Software 2.0. Se caracteriza por ser fácilmente integrable con cualquier tipo de Back-End, incluyendo J2EE, Spring…

Tapestry está organizado en torno a cuatro principios clave:
  • Simplicidad: las aplicaciones web no debe complejas.
  • Uniformidad: Lo que funciona en pequeñas aplicaciones deben funcionar en grandes aplicaciones. Diferentes desarrolladores deben encontrar soluciones similares a problemas similares.
  • Eficiencia: Las solicitudes deberán ser eficiente y escalable.
  • Feedback: Cuando las cosas van mal, el marco no debe ponerse en el camino, en realidad, debería servir de diagnóstico.

Estos cuatro principios de unidad se pueden resumir en: La opción más simple debe ser la elección correcta.

domingo, 14 de diciembre de 2008

Nuestros seminarios 2008

A continuación se presentan los seminarios propuestos para el 2008:

Seminario de XML y SAX

No ha llovido ni nada desde que David Megginson y su equipo en diciembre de 1997 presentaran al XML-DEV una prueba de concepto para el manejo de XML con Java, que pasaría a ser en enero de 1998 la versión de SAX 1.0. Actualmente es de facto el API de bajo nivel estándar para el manejo de XML, desde el cual se apoyan otros API´s y frameworks para el manejo de XML.

Este seminario pretende dar unas nociones básicas de todos los API´s que actualmente se manejan en Java para manipular y procesar documentos XML y como no, prestando especial atención al API de SAX.

Es fundamental conocer conceptos básicos de XML, para poder abordar con garantías de éxito desarrollos sobre otras tecnologías tan habituales como son los WebServices, Ajax, SOAP y el manejo de muchos estándares que utilizan Schemas como lenguaje para definirlos, sirva de ejemplo el seminario que nos dio el pasado año Ivan con su Batik

Así que oiremos APIs como: SAX, DOM, JAXP, JDOM, Stax. Parsers: Xerces, XML4J, Crimson, Oracle XML Parser, y MSXML (de Microsoft). Y algunas cosas más.

En fin algo que parece sencillo pero que tiene un montón de siglas, APIs, componentes, tecnologías, productos y frameworks. Espero que os pueda aclarar algo en esta jungla de siglas.

DNM

jueves, 11 de diciembre de 2008

Seminario Cocoon

Cocoon es un framework para la creación de aplicaciones web, centrado en XML y realizado sobre Spring. Permite la separación entre contenido y presentación, teniendo por un lado la generación de información adecuada en un formato estándar y por otro lado permite definir distintas vistas de esos datos. Así, la necesidad de tener disponibles los datos en un nuevo formato sólo implica la creación de una nueva vista. Su sistema de publicación está basado en XML/XSL.

Ventajas de este tipo de publicación:
  • Separación limpia entre contenido y presentación.
  • Permite separar claramente los papeles del programador y el diseñador.
  • Proporciona una mejora muy notable del mantenimiento: Se puede realizar un cambio radical de imagen de todo un site web con tan solo modificar las hojas XSL y sin tocar ni una sola línea de código.
  • A partir de un solo documento XML con el contenido, se pueden obtener páginas HTML para su presentación web, páginas WML para dispositivos WAP, documentos PDF para imprimir, etc.
  • Aunque no hay ningún estándar que regule como debe ser un sistema de publicación si que está basado en estándares con mucha fuerza en el mercado, por lo que es más sencillo pasar de usar uno a usar otro.
  • Es compatible con el resto de tecnologías web como servlets, JSPs...

martes, 9 de diciembre de 2008

Seminario Velocity

Dentro del mundo de la programación Web está extendido en todos los desarrollos de aplicaciones la utilización del MVC(Model View Controller).Una aproximación más del esfuerzo para separar el trabajo de un programador Web del de un diseñador Web dentro de este patrón es la utilización de Plantillas.Velocity es un motor de plantillas que mediante su lenguaje llamado VTL inserta contenido dinámico en la parte de la presentación de la aplicación.

Como ventaja a priori que puede tener frente a la utilización de JSP tenemos la posibilidad de separar la parte HTML y el código Java de manera completa, ya que en el caso de JSP podemos incorporar todo el código Java que queramos,cosa no muy recomendable.Como otras utilidades tenemos la generación de informes,envio de correos,etc.

Desventaja,el uso extendido de JSP y la industria que lo respalda que hace difícil la competencia.

Espero con este artículo mostrar que existen alternativas a los JSPs que quizás puedan ser interesantes.

PD:Ahora soy un G4, espero poder seguir siendo bienvenido en este blog 'G5' ;-)