El blog del burgués

22 febrero 2011

Usando Threads en C#.NET: BackgroundWorker

Filed under: C# — elburgues @ 1:21 AM

Desarrollando aplicaciones muchas veces habremos tenido la necesidad de realizar una operación que potencialmente puede llevar unos cuantos segundos, incluso minutos. El problema que presenta esta situación es que si realizamos dicha operación en el hilo principal de nuestra aplicación, aunque sea por unos pocos segundos, la interfaz de nuestra aplicación deja de responder a nuestros movimientos con el ratón y/o el teclado, dando la sensación de que la aplicación se ha quedado bloqueada (aunque realmente no sea así), provocando incertidumbre e insatisfacción en el usuario. Lo deseable en estos casos sería realizar dicha tarea en un segundo hilo de trabajo e ir obteniendo información acerca del estado de la operación en la interfaz gráfica del programa. Sería deseable también tener la posibilidad de cancelar la tarea en cualquier momento, así como también tener la posibilidad de seguir interactuando con nuestra aplicación hasta que la operación en un segundo plano termine y nos ofrezca los resultados. (more…)

Anuncios

21 febrero 2011

Inyección de dependencias

Filed under: C#,CAB,SCSF — elburgues @ 8:04 PM

La inyección de dependencias es cuando una clase principal hace uso de una clase secundaria sin hacer referencia directa a ella. Alguna entidad externa proveerá la clase secundaria a la clase principal en tiempo de ejecución, inyectará la dependencia. Para ser útil, la clase secundaria deberá implementar una interfaz que la clase principal conocerá. El objetivo de esto es permitir cambiar el comportamiento de nuestra estructura de clases, cambiar que clase secundaria es inyectada a la clase principal. Como la clase principal no tiene una dependencia directa con ninguna clase secundaria, esto puede ser decidido en tiempo de ejecución. Esta es precisamente la diferencia entre la inyección de dependencias y el patrón strategy. De esta manera, el código se vuelve flexible, desacoplado y fácil de modificar. (more…)

14 febrero 2011

Inversión de Control (IoC)

Filed under: C#,CAB,SCSF — elburgues @ 8:20 PM

Normalmente, para reutilizar código fuente de alguien, se debe llamar a una librería. Es lo que estamos haciendo cuando usamos .NET framework. Por ejemplo, cuando llamas a Console.WriteLine(“bla bla…”), estás usando código fuente que ha escrito alguien, tu haces la llamada, por lo tanto, tu tienes el control. Sin embargo, hay veces que es .Net framework el que reutiliza código fuente escrito por ti. Por ejemplo, cuando escribes un algoritmo de ordenación de números enteros usando la interfaz IComparable. En ese caso la dirección del control está invertida, alguien está llamando a tu código en vez de ser tu el que llama al código de alguien. Eso es la inversión de control (IoC). (more…)

Blog de WordPress.com.