Reflection API (IV) – Métodos

Usando reflexión podemos acceder a los métodos de una clase en tiempo de ejecución. Para ello podemos utilizar la clase Method. Usar la reflexión nos permite acceder a los métodos de una clase y determinar si éste ha sido heredado o pertenece a la clase que estamos utilizando, algo que es imposible saber cuando llamamos a un método sin reflexión.

Obtención de los Métodos de una Clase

Para obtener los métodos de una clase utilizaremos el método getMethods de la clase Class y nos devolverá un array … Continuar leyendo

Reflection API(III) – Obteniendo Atributos

Mediante el uso de la reflexión podemos acceder a los atributos de una clase y modificar su valor en tiempo de ejecución. Esto lo podemos hacer mediante la clase java.lang.reflect.Field. Este clase nos permitirá acceder a toda la información de los atributos, como nombre, tipo, modificadores o anotaciones.

Obtener los Atributos

Para obtener todos los atributos de una clase utilizaremos el método getFields():

Frameworks de persistencia.Diferencias

Existen varios frameworks de persistencia como Hibernate, Ibatis, OpenJPA, etc… pero hoy voy a tratar las principales diferencias entre los dos primeros. Antes de nada aclarar que un framework de persistencia es un marco de trabajo que se sitúa entre la lógica de negocio y la capa de base de datos, abstrayendo uno del otro.

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 … Continuar leyendo

¿Qué es NoSQL?

Durante los últimos años las bases de datos relacionales han dado soporte a la gran mayoría de las aplicaciones. Con los años se han ido mejorando, normalizandolas en todo lo posible, escalandolas según crece la demanda y utilizando sistemas de persistencia. Pero últimamente, con la aparición de grandes aplicaciones online, como Facebook, Twitter o LinkedIn, se plantea problemas de escalabilidad y rendimientos de las bases de datos relacionales con miles de usuarios concurrentes y con millones de consultas diarias, entonces surge el termino … Continuar leyendo

HTML5, primeros pasos – semántica

Comenzar un proyecto en HTML5 es muy sencillo, únicamente tenemos que añadir el siguiente doctype como primera línea de nuestro código. El doctype nos sirve para indicar el tipo de documento:

Aquí empezamos a ver una de las características principales de HTML5, la sencillez. En versiones anteriores de HTML se definían varios tipos de etiquetas doctype, ahora sólo existe una etiqueta y como podéis comprobar mucho más sencilla. Si lo que deseamos es actualizar nuestra página en HTML4 lo único que debemos realizar es el cambio del doctype y ya tendremos … Continuar leyendo

Inyección de Dependencia para Tontos

La Dependencia de Inyección es un concepto muy sencillo: si tienes un objeto que interactua con otros objetos, la responsabilidad de encontrar una referencia a estos objetos en tiempo de ejecución se saca fuera del objeto en si mismo.

¿Qué significa para un objeto “interactuar” con otros objetos? Generalmente significa invocar métodos o leer atributos de estos objetos. Así si tenemos una clase A que invoca el método Calculate de la clase B, podemos decir que A interactua con B.

En el siguiente ejemplo se muestra una clase … Continuar leyendo

Reflection API(II) – Utilizando los Constructores

Los constructores son utilizados en la creación de objetos, que son la instanciación de una clase. Por lo general llevan a cabo las operaciones necesarias para inicializar la clase antes de que se invocan los métodos o se acceda a los campos. La Reflexión nos permite conocer y recuperar los constructores de una clase y obtener información de su declaración, como los modificadores, los parámetros, las anotaciones, y excepciones que se producen. También tendremos la posibilidad de instanciar una clase mediante la utilización de estos constructores. El API de Reflexión nos proporciona la clase java.lang.reflect.Constructor para el manejo de los constructores.

Modernizr, detectar compatibilidad HTML5

Actualmente no todas las funcionalidades de HTML5 son soportadas por todos los navegadores. Si tenemos alguna duda sobre si nuestro navegador es compatible con alguna de las funcionalidades de HTML5 podemos comprobarlo en las muchas páginas web que nos hacen un resumen de las compatibilidades. Por ejemplo, en findmybyip podemos encontrar una tabla con la compatibilidad para todos los navegadores o también podemos hacer un test a nuestro navegador para comprobar que funcionalidades soporta, la podemos hacer en html5test.

Comenzar un proyecto en HTML5 puede llegar a ser un quebradero de cabeza sobre todo cuando necesitamos compatibilidad entre los distintos navegadores. Entonces nos puede … Continuar leyendo

Reflection API(I) – Manejo de clases

Cuando se compila el código fuente de un programa se pierde la información de la estructura del programa pero se conserva ésta información en forma de metadatos. La reflexión es utilizada principalmente para acceder a esta información en tiempo de ejecución. Podemos acceder a clases, interfaces, métodos o atributos sin conocer su nombre o el tipo de un objeto. De esta manera podremos instanciar clases y llamar a los métodos en tiempo de ejecución.

A pesar de todas estas ventajas la reflexión puede generar problemas de seguridad o rendimiento en nuestras aplicaciones. … Continuar leyendo

HTML5 y CSS3, el futuro de la web

¿Qué es HTML5? HTML5 es un conjunto de estándares para el diseño y desarrollo web, incluye desde la especificación del nuevo lenguaje HTML, pasando por el desarrollo de la nueva versión de CSS, hasta la creación de nuevos APIs para el desarrollo de nuevas funcionalidades.

Comencemos con un poco de historia:

  • En el año 1999 W3C publica la especificación de HTML 4.0.1.
  • Entre el año 2000 y 2001 se publican las especificaciones de XHTML 1.0 y 1.1.
  • Al año siguiente, 2002, se comienza el trabajo de desarrollo de XHTML 2.0 que pretendía dar un nuevo … Continuar leyendo