martes, 22 de septiembre de 2015

Contenedores de Inversión de Control (IoC Containers)

Como vimos en la entrada anterior, hemos conseguido evitar el acoplamiento entre distintas clases de nuestra aplicación utilizando la inyección de dependencias. En nuestro caso, utilizamos inyección por constructor, es decir, en el constructor de nuestro Controller recibimos como parámetro un objeto que implementa la interfaz IUserInterfaz.

Pero si ejecutamos el código sin más, recibiremos un error, porque no hay nadie proporcionando un objeto para esa interfaz. Aquí entran en juego los Contenedores de Inversión de Control (IoC, por sus siglas en inglés).
Haciendo un resumen muy somero, lo que hacen estos contenedores es tener una relación entre una interfaz y una clase que implemente esa interfaz, del tal manera, que cuando haya que "inyectar" una dependencia, sabrá perfectamente qué clase tiene que suministrar. También se encargan del ciclo de vida de estos objetos.

Hay bastantes contenedores de inversión de control (Unity, Ninject, Autofac, ...) y el concepto es el mismo en cada uno de ellos. Yo utilizo Unity (por ser el recomendado por Microsoft, razón por la que cualquier otro lo puede rechazar ;-)) y será el que veremos en los ejemplos. Concretamente he usado Unity.MVC4 que permite una integración sencilla con ASP .NET MVC4.
Ya veremos los detalles de cómo se instala y configura cuando lleguemos a la parte del cliente Web.

Bueno, dejamos estas dos entradas que han sido más de teoría que de práctica y en la próxima entramos un poco más en harina.


Un poco de lectura sobre los princios SOLID: http://www.codeproject.com/Tips/1033646/SOLID-principle-with-Csharp-example

3 comentarios:

  1. Te voy a seguir de cerca compañero, tiene muy buena pinta este blog y el proyecto en sí es muy interesante.

    ResponderEliminar
  2. Muchas gracias César. No seas muy duro!

    ResponderEliminar
  3. Este comentario ha sido eliminado por el autor.

    ResponderEliminar