Atributos

Atributos en .NET

.NET incorpora el concepto de Atributo qué, junto con lo mecanismos de .NET Reflection como iremos viendo en esta serie de artículos nos va a permitir añadir una enorme flexibilidad a nuestros programas.

Los atributos nos permiten la definición de metadatos asociados al código y su posterior lectura y uso para dar forma a nuestros programas. En la siguiente serie de artículos vamos a ver como podemos crearlos y utilizarlos así como los patrones de diseño que podemos utilizar con ellos.

El primer artículo va a consistir en una introducción a los atributos y a la forma de crearlos y declararlos.

En el segundo artículo veremos como leer dichos atributos usando .NET reflection y como obtener la informacion relevante de ellos, adaptando el comportamiento de nuestro código a lo que esté definido.

En un tercer artículo veremos en detalle algunos de los atributos que proporciona el propio framework de .NET, como funcionan y para que podemos utilizarlos.

Por último daremos una introducción a la programación orientada a aspectos y su implementación mediante .NET así como a algunos conceptos de uso de atributos algo más avanzados.

Atributos en .NET. Atributos del framework (I)

ObsoleteAttribute

El atributo "Obsolete" nos permite marcar un elemento de código como obsoleto y asignar un comentario o mensaje de aviso en caso de que se utilice dicho elemento de código. Adicionalmente permite pasar un valor booleano que indique si el atributo se comportará como un error o como un warning.

El uso del atributo resulta útil conforme nuestro código va evolucionado. Quizá una función o una clase que diseñamos hace tiempo para una biblioteca ya no sea la forma más eficiente de hacer las cosas, de forma que queremos sustituir la función o la clase con otra nueva. En este caso el uso del atributo obsolete nos permite mantener la clase o función de forma que un desarrollador que estuviera utilizando la función no se encuentre con que ha desaparecido sin saber por qué sino con un warning (o un error en caso de que así lo hallamos definido) avisándole de que cambie y, preferiblemente, indicándole los pasos a realizar. Vamos a ver un ejemplo muy típico:

[Obsolete("Esta clase esta obsoleta, utilice NuevaFoo en su lugar")]
void Foo(int x)

Atributos en .NET. Leyendo los atributos con Reflection

Table of Contents [hide]

¿Qué es .NET reflection?

La librería reflection de .NET nos va a permitir acceder a la información de los atributos que hemos definido en el artículo anterior.

Reflection es el nombre dado por microsoft al conjunto de utilidades que permite leer la información y metainformación de las dll y ejecutables de .NET en tiempo de ejecución.

Atributos en .NET. Definición de atributos

Introducción

Una de las posibilidades que incluye .NET es el uso de atributos para proporcionar metainformación añadida a las distintas partes del código que creamos.

Los atributos de .NET nos proporcionan una poderosa herramienta para añadir información a nuestras clases, métodos, propiedades etc.

Un atributo puede aplicarse puede aplicarse sobre cualquier elemento básico de .NET es decir, clases, eventos, propiedades, métodos, etc y añadirá información a dicho elemento que posteriormente podremos consultar en tiempo de diseño, compilación o ejecución.

Aspect Oriented Programming (Programación orientada a aspectos)

El uso de atributos nos permite acercar la programación en .NET al concepto de AOP, que son las siglas inglesas de Aspect Oriented Programing o Programación arientada a aspectos.

Para comprender correctamente en que consiste el paradigma de programación orientada a aspectos debemos partir de la base de las limitaciones de la programación orientada a objetos. En el paradigma orientado a objetos, el concepto de herencia describe las relaciones jerárquicas entre los distintos objetos que a su vez modelan el mundo real (o conceptos de este).