TOP

Frameworks de persistencia.Diferencias (I)

Existen varios frameworks de persistencia como Hibernate, Ibatis, OpenJPA, etc... pero hoy voy a tratar las principales direfencias entre los dos primeros.

Antes de nada aclarar que un framework de persistencia es un marco de trabajo que se situa entre la logica de negocio y la capa de base de datos, abstrayendo uno del otro.
Comencemos por Hibernate.

Hibernate es una herramienta ORM que facilita el mapeo de los atributos de una base de datos relacional con el modelo de datos de la aplicación.
Este mapeo se hace mediante archivos XML o anotaciones en los beans.
Tambien ofrece la posibilidad de utilizar un lenguaje de consulta de datos HQL (Hibernate Query Lenguage).

Por su parte, Ibatis , asocia los beans del modelo de la aplicación con sentencias SQL contenidos en ficheros XML.

Veamos sus diferencias
Leer mas...
TOP

La Nube y lo cerca que nos queda.


Cuántas veces hemos hablar de este concepto relativamente nuevo y cuantas de nosotros entendemos la nube como una vuelta de turca a lo que ya hacíamos en la web 2.0. Una “nueva” forma de trabajar, un nuevo concepto para el desarrollo, la productividad, ocio y relaciones por Internet. Pero cuánto hay de verdad en el apelativo “nuevo”.  Presentando una serie de servicios “en la nube” veremos cuánto hay de cierto en esta aseveración.

Las ventajas del concepto “en la nube” son de todos conocidas y evidentes a cualquiera. Como mas importante sobre todas las demás, cabe destacar la portabilidad de los datos. Esa posibilidad de recupera cualquier información desde prácticamente cualquier maquina, ordenadores públicos, teléfonos móviles, tablet, TV, etc…. , evidentemente hay otras ventajas. A citar entre ellas, la liberación de espacio en nuestro ordenadores, la facilitación para trabajar de forma colaborativa. Evidentemente hay una serie de desventajas o por lo menos una serie de dudas que siempre nos rondan cuando utilizamos estos servicios. La más destacable es la privacidad. ¿Cuánto de nuestra información está segura en la nube?
Leer mas...
TOP

Ejecutable con Maven (II)

La continuación al post anterior se centra en la formación de una estructura de archivos, que contendrá el archivo empaquetado (.jar) y una carpeta con las librerías necesarias para el proyecto. Este proceso es más laborioso en una primera instancia, porque debemos configurar los plugin de maven para hacer diferentes procesos.


Empaquetar un ejecutable con las librerías exterior.


Generar un jar con el manifiesto necesario; esto es, que indique la clase con el punto de entrada main y las dependencias y obtener todos los jars de las dependencias, directas y transitivas, en un directorio de salida aparte (lib, por ejemplo).

Por lo tanto teniendo generado el proyecto generado, debemos asumir que están referenciadas todas las dependencias del proyecto y creado el punto de entrada de la aplicación y en ese caso incluiremos en el archivo pom.xml el siguiente código:
<properties>
<install-dir>${build.directory}</install-dir>
</properties>
Vamos lo primero a identificar con esta orden la carpeta donde se compilar el ejecutable, simplemente por generar todos los archivos en una carpeta conjunta y con cierto orden.
Leer mas...
TOP

Como empaquetar GWT en un WAR

Google Web Toolkit, es un framework de desarrollo web caracterizado por funcionar sin cambios en el codigo en todos los navegadores, o eso dice su publicidad...(¬¬) .

La ultima versión del development kit esta disponible aqui, por si quieres actualizarte a la última versión disponible, aunque lo más habitual para comenzar es descargar el plugin para utilizarlo en el IDE Eclipse (Eclipse Plugin+GWTSdk).

Veamos como podemos empaquetar nuestro proyecto en un simple .WAR

Leer mas...
TOP

Ejecutable con Maven (I)

La generación de un paquete java ejecutable conlleva en muchos casos la utilización de paquetes. La diferencia entre radica en la forma de ordenar estas paquetes o librerías.

Queremos desempaquetar estos paquetes dentro del ejecutable y tener todas las clases disponibles dentro de un solo archivo, que nos permite portarlo a cualquier entorno, de una forma sencilla o por el contrario queremos tener las librerías ordenadas en una carpeta aparte y de esta forma tener más control sobre el proyecto.

Evidentemente la elección queda del lado del desarrollador, pero vamos a disgregar las dos formas de hacerlo utilizado la potente herramienta de gestión de proyectos maven.

Empaquetar un ejecutable con las librerías en su interior.

Teniendo generado el proyecto generado, debemos asumir que están referenciadas todas las dependencias del proyecto y creado el punto de entrada de la aplicación y en ese caso incluiremos en el archivo pom.xml el siguiente código:
<plugin>
 <groupId>org.apache.maven.plugins</groupId>
 <artifactId>maven-assembly-plugin</artifactId>
 <configuration>
  <archive>
   <manifest>
    <mainClass>myPackage.MyMainClass</mainClass>
   </manifest>
  </archive>
  <descriptorRefs>
   <descriptorRef>jar-with-dependencies</descriptorRef>
  </descriptorRefs>
 </configuration>
</plugin>

Para empaquetar el proyecto debemos ejecutar el comando el comando assembly
mvn assembly:assembly
Esto generara dos archivos empaquetados uno de ellos definido con las dependencias, solo nos queda ejecutar ese archivo y comprobar que la aplicación funciona correctamente.
TOP

Java 7 una evolución lógica

El pasado mes de julio se publico después de 4 años desde su última actualización la nueva versión de Java. Esta versión no solo se destina a depurar una serie de bug, sino a mejoras y cambios que generan una nueva revisión del antiguo, pero no extinto lenguaje de programación.
Java 7, como ya he comentado no es solo una solución a los errores de otras versiones. Incluso me atrevería a decir que es una versión para alcanzar los nuevos estándares y así poder gestionar los nuevos de recursos que se disponen a día de hoy. Siendo así, Oracle ha incluido nueva API para el sistema de archivos y un nuevo enfoque para el trabajo con varios núcleos. Además en esta versión se permite utilizar otros lenguajes, mejor gestión de recursos, más compatibilidades con los estándares y otras funcionalidades.
Algunos de las implementaciones, mejoras o cambios que ha sufrido este lenguaje pueden resultar simples evoluciones que hace años este lenguaje debería haber ofrecido pero eso no cambia su importancia. Es el ejemplo del proyecto Coin que simplifica el lenguaje de tareas que se realizan diariamente. Entre estas mejoras tenemos la posibilidad de hacer un “switch” con tipos String, gestionar recursos automáticamente, simplificar el uso de lista de parámetros o mejorar la gestión de excepciones.
Oracle no ha cumplido el cupo de todos los programadores, posiblemente porque el numero de detractores de otras ideas es alto y necesitan más tiempo para limar los últimos detalles, así pues tendremos que esperar al JSE8 para ver otras mejoras, como el proyecto Lambda o, dicho de otro modo, utilización de clousures.
Personalmente voy a ponerme manos a la obra a “trastear” la nueva actualización.
Share

Widgets