Try Ruby!!

19 03 2007

Para los interesados en saber cómo es el Ruby, aquí les dejo un sitio interesante donde lo pueden probar.

http://tryruby.hobix.com/





“Add Web Reference” Error

2 03 2007

Este es un problema que tuve el día de hoy con el Visual Studio, que me dejó pensando por horas.

Estaba tratando de agregar una referencia a un Web Service, y me salía el siguiente error:

The web services enumeration components are not available.  You need to reinstall Visual Studio to add web references to your application.

Como no tengo tiempo para estar reinstalando el Visual Studio de nuevo, estuve buscando por internet y encontré la siguiente solución:

  1. Ir a Start -> Run…
  2. Escribir devenv /resetskippkgs” (sin las comillas)

Ya después de eso el problema desapareció.

Encontré la solución en el siguiente post del foro de Microsoft: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=107222&SiteID=1

Espero que esto les sirva.





Reflector for .NET

18 01 2007

Este programa es un desensamblador de código .NET, especial para personas como yo que trabajamos con eso casi todos los días. En verdad que es muy útil.

Lo pueden descargar desde:

http://www.aisto.com/roeder/dotnet/





Multithreading Locks

18 12 2006

Al trabajar con múltiples threads en C# tarde o temprano nos encontraremos en la necesidad de utilizar objetos que puedan ser compartidos por múltiples threads.

Como es de suponer, es necesario hacer uso de un candado que permita que un sólo thread a la vez tenga permiso de escritura sobre el objeto en cuestión.

En el .NET 1.1 esto se hacía de la siguiente forma:

Monitor.Enter(objeto);

try
{
//Código aquí.
}
catch (Exception e)
{
//Manejo de excepciones aquí.
}
finally
{
Monitor.Exit(objeto);
}

En el .NET 2.0 ahora puede utilizarse la palabra reservada lock para hacer uso de la misma funcionalidad de la siguiente forma:

lock(objeto)
{
//Código aquí.
}

Lo que hace la palabra lock es exactamente lo mismo que el código anterior, sólo que este hace las llamadas al objeto Monitor automáticamente, de manera que el objeto sea siempre liberado, y así no tener que preocuparse por liberarlo uno mismo, aparte que reduce la cantidad de líneas de código.





Nullable Types

17 11 2006

Este es un tip que aprendí hoy en el trabajo gracias a un compañero. Como sabrán, en C# a los tipos de datos por valor (value types) no se les puede asignar el valor de null.

Ahora en .NET 2.0, esto es posible haciendo uso de los Nullable Types.

¿En qué consiste?, simplemente al declarar una variable, en vez de declarar el tipo de dato directamente, se le asigna así: Nullable<tipo de dato>.

Por ejemplo:

int numero;
numero = null; //Aquí tirará una excepción

Ahora sería:

Nullable<int> numero;
numero = null; //No aparece ninguna excepción

Esto nos permitirá poderle asignar a una variable el valor de null. Para saber si una variable es nula, sólo debemos usar la propiedad HasValue, y para utilizar el valor correspondiente debemos usar la propiedad Value.

Parece algo insignificante pero es bastante útil.