Los números de 2012

Los duendes de las estadísticas de WordPress.com prepararon un informe sobre el año 2012 de este blog.

Aquí hay un extracto:

4,329 films were submitted to the 2012 Cannes Film Festival. This blog had 34.000 views in 2012. If each view were a film, this blog would power 8 Film Festivals

Haz click para ver el reporte completo.

Anuncios

Atributos en .NET y la punta del Iceberg de Reflection

Hace un tiempo, con un desarrollo ya avanzado, me tuve que enfrentar a una disyuntiva. Generada todas mis clases de negocios con sus correspondientes propiedades necesitaba realizar un algoritmo que me permita encriptar determinados valores de esas propiedades al momento de persistirlas en la base y desencriptarlas al momento de ser consultadas.

Buscando una solución llegue a la clase System.Attribute que me ofrecía .NET, que me permitía agregarle un poco de información a las clases sin tener que rescribirlas todas soportando la nueva funcionalidad. De esta manera, y con la ayuda del TodoPoderoso Señor Reflection, obtuve una manera rápida, y que no me generó una baja en la performance de mi sistema, para poder recorrer las clases y saber cual atributo debía encriptar/desencriptar.

Vamos al ejemplo para explicar un poco como funciona:

1- Paso, crear nuestro Atributo personalizado:

<AttributeUsage(AttributeTargets.Property)> _
Public Class AtributoEspecial
Inherits System.Attribute
End Class

Se puede notar que que el tag AttributeUsage me permite usar mi atributo solamente sobre lo que yo deseo, en mi caso propiedades pero pueden ser lo que uno quiera: delegados, enum`s, eventos, interfaces, etc

image

2-Tagear a las propiedades de las clases que queremos a attributear (?) de esta manera: _

Public Class ClaseConcretaConAtributos
Inherits ClaseBase

Private _cuit As String

<Librerias.AtributoEspecial()> _
 Public Property cuit() As String
Get
Return _cuit
End Get
Set(ByVal value As String)
_cuit = value
End Set
End Property

End Class

y ahora resta recorrer la clase con Reflection de esta manera:

For Each propiedad As Reflection.PropertyInfo In Me.GetType.GetProperties
For Each objAtributos As Object In propiedad.GetCustomAttributes(True)
Dim typeAtributo As Librerias.AtributoEspecial = TryCast(objAtributos, Librerias.AtributoEspecial)
If typeAtributo IsNot Nothing Then
'REALIZO EL CODIGO QUE NECESITO PARA LAS PROPIEDAS QUE TIENEN ESE ATRIBUTO
end If
Next
Next

Ahi es donde está la punta del iceberg de Reflection. No vamos en ese post a adentrarnos sobre este tema.

Espero que les sirva, saludos.

-código fuente en SkyDrive:

Try, Catch y end Try

El Bloque Try…Catch…Finally…End Try, es una innovación apartir de .NET (ósea no existia en VB 6.0), a estas alturas ya no es una innovación puesto que el VS 2008 ya esta en las calles, con su framework 3.5 (aqui) pero vamos a comentar algunas cosas básicas y otras no tan básicas(al menos yo no las sabias). Este bloque como todos sabemos sirve para el manejo de las excepciones tanto propias, de nuestra aplicación, como las que podrían ocurrir que vamos a comentar mas adelante. Para comenzar vamos a ver un ejemplo web simple de cómo usar la sentencia try…catch.

Seguir leyendo “Try, Catch y end Try”

Llenar y Recorrer un HashTable

Una Hastable es una tabla (que utiliza la interface IDictionary) y lo que hace es guardar un par (clave y valor) NO de manera secuencial es decir uno atrás de otro dentro de la tabla sino usando internamente una tabla Hash, esto es importante porque cuando uno está programando no tiene que creer que los datos dentro de la HashTable están “uno al lado del otro” por decirlo en criollo sino que están guardados internamente según el código Hash numérico de la clave. La ventaja es obvia, cuando se tenga que buscar esa clave no se va a recorrer la tabla secuencialmente sino se buscará directamente por su código Hash.

Seguir leyendo “Llenar y Recorrer un HashTable”

FileUpLoad e ImagenThumbnail

Una de las limitaciones del control fileupload de asp.net 2.0 es que luego de seleccionar el archivo, en este caso una imagen, se requiere un botón adicional para subir la imagen al servidor y previsualizarla. Este post pretende mostrar una manera (lo que no significa que sea la única ni la mejor) de realizar ambos pasos, subir la imagen al servidor y realizar el thumbnail con solo seleccionar la imagen.

Se va utilizar Visual Studio 2005 y por ende asp.net 2.0 (probado para IE 6.0 en adelante y Mozilla-Firefox 2.0.6).

Seguir leyendo “FileUpLoad e ImagenThumbnail”