July 2008 - Artículos

Cargar un tipo dinamicamente

Una aplicación modular suele ser una aplicación donde sus funcionalidades son opcionales, de forma que podemos quitar ó añadirlas según nos convenga. La aplicación solo sabe que va a tratar con instancias que cumplen un determinado contrato, ya sea cumpliendo con una interfaz ó determinado tipo base (usando clases abstractas). Estos contratos suelen estar en ensamblados que conocen las dos partes, de forma que la aplicación espera una instancia de clase que cumple el contrato definido en el ensamblado...

Conversion de arrays sin cast directo con C#

Realizar casting entre clases es siempre sencillo, el inconveniente es cuando se trata de un arrays. Por ejemplo... sabiendo que la clase Manager deriva de Employee , si tenemos un array de Manager , es fácil convertirlo en un array de Employee usando casting directo: Employee[] employees1 = (Employee[])managers; Pero si tenemos un array de Employee no es posible convertirlo en un array de Manager de la misma forma que tampoco podríamos hacer un casting directo entre objetos simples. No se me ocurre...
Publicado por Valeriano Tórtola | 2 comment(s)
Archivado en: ,,

Desechable o no desechable

La interfaz IDisposable nos provee del método .Dispose() que utilizamos para liberar los recursos que esta usando ese objeto, pero dicho método... no deja de ser un simple método ;) Solo hace falta hacer una pequeña prueba para darse cuenta: 1: class Program 2: { 3: static void Main( string [] args) 4: { 5: Desechable test = new Desechable(); 6: 7: test.Dispose(); 8: 9: Console.WriteLine(test.Cadena?? "Muerto" ); // Muestra: Vivo! 10: Console.ReadKey( true ); 11: } 12: } 13: 14: class Desechable...
Publicado por Valeriano Tórtola | 2 comment(s)
Archivado en: ,,

Constructores, inicializacion rapida de objetos y C# 3.0

La inicialización rápida de objetos es una nueva e interesante característica de C# 3.0, pero me gustaria reflexionar un poco sobre su uso y el de nuestros amigos los constructores. Un constructor es el método de una instancia que implementa las acciones necesarias para inicializar la instancia de la clase, y es invocado por el operador new cuando instanciamos dicha clase. Por lo tanto, cuando desarrollamos una clase, el ó los constructores deben de tener la capacidad de inicializar los aspectos...
Publicado por Valeriano Tórtola | 3 comment(s)
Archivado en:

Asi da gusto usar Windows Vista

Pedazo de maquinón que estrené en el trabajo y con el que estoy más que contento, es un placer trabajar así. Mi jefe es de esas personas que sabe como hacerte feliz. Después de algo más de una semana trabajando con él, cuando cojo mi portátil ya no es lo mismo... definitivamente tengo que hacerme con uno de estos para mi casa :D El monitor no es que se quede atrás: Asi da gusto usar Windows Vista| vtortola.NET
Publicado por Valeriano Tórtola | 11 comment(s)
Archivado en: ,

Asistente P/Invoke Interop

Si trabajas con p/invoke tanto habitual como eventualmente y pinvoke.net esta en tus bookmarks... esta herramienta no te va a dejar indiferente :D Leo en el blog del BCL Team : El equipo Interop ha publicado recientemente una nueva herramienta llamada P/Invoke Interop Assistant . Esta herramienta genera automáticamente las declaraciones en C# ó VB.NET de las llamadas p/invoke nativas. Incluye una búsqueda rápida por las librerias comunes Win32 y permite generar las declaraciones para cualquier otra...
Publicado por Valeriano Tórtola | 3 comment(s)
Archivado en: ,,

Recursividad y yield return. Haciendo queries a colecciones en arbol en C# 2.0

Estoy disfrutando de lo que será mi último proyecto en C# 2.0 y .NET 2.0 antes de pasar a WPF, y la verdad es que se hace amargo algunas veces cuando ya conoces C# 3.0, por ejemplo se hecha de menos LINQ :D En este artículo quiero demostrar como hacer queries a una colección de elementos en forma de arbol desde C# 2.0, de forma que se pueda definir el tipo de colección, criterio de búsqueda que se quiere usar y obtener los resultado conforme se vayan obteniendo. Una función recursiva , es una función...