jueves, 29 de enero de 2009

Swing Application Framework JSR-259

Para ayudar en el armado de una aplicación, se ha escrito la JSR-259
llamada Swing Application Framework. Este Framework se lanzó en
el 2006, y hasta ahora es una implementación prototipo de un
conjunto de clases java.

Nos proporciona un manejo mas simple de:

  • Ciclo de vida de una aplicación, como comienzo y parada de la GUI
  • Soporte para el manejo y carga de recursos, como strings, mensajes formateados, imágenes, colores, fonts, y otros tipos.
  • Soporte para definición, manejo y enlace de Actions, incluyendo las asincrónicas.
  • Persistencia del estado de la GUI, automático y selectivo, para que vuelva a aparecer en la próxima ejecución en el mismo estado

Bueno para que sea esto mas entretenido vamos a mostrar un ejemplo
de este framework.

1. este ejemplo es un mantenedor simple de una tabla de una base de
datos, como siempre con nuestro querido netbeans y postgres.

2. tenemos que tener una conexion en netbeans de la base de datos
(en un articulo de este exelente blogg jajaja, tenemos un ejemplo como
realizarlo).

3. creamos el proyecto de tipo framework jsr-259



4. especificamos que vamos a utilizar una base de datos.


5. seleccionamos la base de dato y la tabla correspondiente a nuestro mantenedor.



6. despues siguiente y en la siguente ventana finalizar, despues de todo este
proceso nos queda el proyecto asi.

7. y para finalizar ejecutamos nuestro proyecto.





Como simpre este es un punto de partida para entrar a este tema y como
siempre acontinuacion soy unos link para que puedan interiorisarse mas
del tema.

http://java.sun.com/developer/technicalArticles/javase/swingappfr/

http://jcp.org/en/jsr/detail?id=296

https://appframework.dev.java.net/intro/index.html

http://weblogs.java.net/blog/hansmuller/archive/ts-3399-final.pdf

http://weblogs.java.net/blog/hansmuller/archive/ts-3492-final.pdf

miércoles, 28 de enero de 2009

Patron de diseño DAO

Los patrones de diseño (design patterns) son la base para la búsqueda
de soluciones a problemas comunes en el desarrollo de software y otros
ámbitos referentes al diseño de interacción o interfaces.

En este pequeño articulo quiero hablar de el patron de diseño DAO( Data
Access Objetc)
que esta relacionado con la persistencia de nuestra
aplicacion.

El problema que viene a resolver este patrón es el de contar con diversas
fuentes de datos ( base de datos, archivos, servicios externos, etc ). De tal
forma que se encapsula la forma de acceder a la fuente de datos. Este patrón
surge históricamente de la necesidad de gestionar una diversidad de fuentes
de datos, aunque su uso se extiende al problema de ancapsular no sólo la fuente
de datos, sino además ocultar la forma de acceder a los datos. Se trata de
que el software cliente se centre en los datos que necesita y se olvide de cómo
se realiza el acceso a los datos o de cual es la fuente de almacenamiento


La ventaja de usar objetos de acceso a datos es que cualquier objeto de
negocio (aquel que contiene detalles específicos de operación o aplicación)
no requiere conocimiento directo del destino final de la información que
manipula
.

Este ejemplo es muy bueno, imaginemos que nuestra aplicación va de
maravilla, cuando de pronto, se acerca nuestro querido jefe y nos comenta
que por X, Y y Z razones se va a cambiar el motor de la base de datos a
PostgreSQL. OOOOO que probleman, pero nosotros como habiamos leido
este blog y aplicamos el patron de diseño DAO le decimos al jefe no hay
problema para eso soy ingeniero y no un artesano, entonces aprovechamos
inmediatamente y le pedimos un aumento de sueldo jajajaajja.

Por lo que cuando la capa de lógica de negocio necesite interactuar con la base
de datos, va a hacerlo a través de la API que le ofrece DAO. Generalmente esta
API consiste en métodos CRUD (Create, Read, Update y Delete)
.

En una aplicación, hay tantos DAOs como modelos. Es decir, en una base de
datos relacional, por cada tabla, habría un DAO.


Los DTO (Data Transfer Object) o también denominados VO (Value Object).
Son utilizados por DAO para transportar los datos desde la base de datos
hacia la capa de lógica de negocio y viceversa
.

Bueno como siempre sus link, para entrar mas en detalle a este y
mas patrones de diseño.

http://java.sun.com/blueprints/corej2eepatterns/Patterns/DataAccessObject.html

http://java.sun.com/blueprints/corej2eepatterns/index.html

http://java.sun.com/blueprints/corej2eepatterns/Patterns/index.html

http://www.programacion.com/java/tutorial/patrones2/8/