ASP.NET CORE

Composition Root e Inyección de Dependencias en ASP.NET Core

El Composition Root o Raíz de Composición es el "lugar" donde se configuran las dependencias que el programa requerirá en tiempo de ejecución. Debe estar lo más cerca posible del Punto de Entrada o Inicio de la Aplicación; por lo que desde la versión 6 de ASP.NET Core en adelante y gracias a la simplificación de las Instrucciones de Nivel Superior o Top-level Statements, se define en el archivo Program.cs. En versiones anteriores el Entry Point estaba en la clase Startup.

De forma general la raíz de composición no es un método, ni una clase, es simplemente un concepto o patrón y su ubicación depende de la tecnología o tipo de aplicación a implementar. A continuación, se listan los diferentes puntos de entrada de tipos de aplicaciones comunes:

Como se puede observar, existe muchos tipos de aplicación; sin embargo, todas tienen en común el punto de entrada, inicio o raíz de la aplicación.

Tal y como se mencionó al inicio, la raíz de composición es donde se registran las dependencias en el IoC Container; por lo que es en ese mismo lugar donde se compone el Árbol de Objetos o Dependencias. Por esa razón, se debe encontrar en el punto de inicio de la aplicación; sin embargo, por organización puede también implementarse en varias clases o extensiones, siempre y cuando residan en un solo lugar, lo que garantiza que la composición de la aplicación se consolide y no se entremezcle con su lógica posterior.

¡Importante!
¡IMPORTANTE!

La Raíz de Composición debe ser el único lugar donde se utilice el contenedor de dependencias o IoC, caso contrario se caería en los antipatrones Control Freak y Service Locator.

Artículos Relacionados

Recursos Adicionales