Luis Baigorria – Software Developer

Acquire Wisdom and Live with Passion

Contenedor de Inversión de Control – IoC Container

leave a comment »

En esta oportunidad quiero compartirles sobre los contenedores de inversión de control (IoC Containers). Uno de los puntos a tomar en cuenta durante el desarrollo de sistemas es reducir el acoplamiento entre componentes, mientras mas bajo sea éste, menos esfuerzo realizamos durante el proceso de integración de los mismos, además estar preparados ante cualquier cambio que puedan surgir.  Uno de los principios SOLID que nos ayudan para lograr este objetivo es el Principio de Inversión de Dependencia y las técnicas de Inyección de Dependencias, acompañados con los magníficos contenedores de inversión de control.

Un Contenedor de Inversión de Control (IoC Container) es un componente especializado en la creación de instancias de objetos, así como en la gestión del ciclo de vida éstas, en términos simples es una clase encargada de suministrarnos las instancias que necesitemos en nuestra aplicación y olvidar sus dependencias hacia otras clases. ¡Fabuloso!. Nos olvidamos de los molestos “new” cada vez que necesitemos una instancia de alguna clase, por supuesto requiere una configuración inicial donde registramos todas las clases.

Los contenedores de inversión de control se apoyan en dos conceptos muy importantes Inyección de Dependencia e Inversión de Control, muchos creen que son lo mismo pero son dos conceptos diferentes que comparten cosas en común.

Inyección de Dependencia (DI)

  • Es un patrón de diseño que consiste en hacer que nuestras piezas de Software sean independientes.
  • Se refiere a la forma de como implementar el patrón IoC.
  • Se refiere a la forma de como los objetos consumidores reciben sus dependencias

Inversión de Control (IoC)

  • Patrón de diseño que coadyuva al bajo acoplamiento entre componentes de un sistema o una aplicación.
  • Los objetos consumidores no crean los objectos ayudantes, de los que depende. Estos son creados por un contenedor (Ejem: Unity Conteiner), que inyectará las dependencias. Útil para implementar un sistema enfocado a un diseño orientado a componentes.

Ahora vamos a ver uno de los contenedores mas usados dentro de la plataforma .NET, si aún no lo conoces es momento de hacerlo e iniciar el desarrollo de tus proyectos usando esta herramienta.

Unity (By Microsoft)

Éste IoC Container fue creado por Microsoft Pattern & Practices.

unity

Unity tiene licencia MS-PL Licence. Fue escrito por Chris Tavares y su “Kernel” está basado en ObjectBuilder.

Aquí puedes ver como puedes iniciar la configuración del contenedor y registrar las clases.

Si bien este es un ejemplo sencillo, mas adelante estaré compartiendo las distintas configuraciones que puedes realizar, inyectar constructor y la configuración de los tiempos de vidas de los objetos.

Espero sea de utilidad y puedas aplicarlos en tus proyectos.

Saludos y hasta pronto.

Written by Luis Alberto

16/09/2016 a 11:04 PM

Publicado en Artículos, ioc, Microsoft, Unity

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: