No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Compra acceso a todo Platzi por 1 año

Antes: $249

Currency
$209/año

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

15D
16H
52M
41S

Inyección de dependencias

13/22
Recursos

Aportes 12

Preguntas 15

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

o inicia sesión.

Encontré esta página que complementa la explicación de Inyección de dependencias:
https://www.netmentor.es/entrada/inyeccion-dependencias-scoped-transient-singleton

Sería más oportuno para el curso explicar con gráficos o imágenes representativas de lo que significa las tres formas de inyección de dependencia como Freddy lo hace en las clases de programación para tener una representación visual más clara del alcance que tiene cada una.

-AddScoped crea una instancia por cada request del cliente
-AddTransient crea una instancia por cada controlador
-AddSingelton crea una sola instancia para todo lo que dure la ejecución de la API.

Transient vs Scoped vs Singleton

Les dejo una explicación muy interesante 😄

https://www.youtube.com/watch?v=srPGwwMwAoA&ab_channel=hdeleon.net

La inyección de dependencias puede entenderse de mejor manera si se conocen los principios SOLID. También es necesario saber manejar interfaces.
Si tienen dudas sobre de clase, les recomendaría que acudan a estudiarlos.

Estoy haciendo el curso usando NET 5 y si hay sus cositas diferentes en el startup.cs

Creo que lo que entendei de AddScoped y AddSingleton
es que AddSingleton crea 1 contexto para todos los controladores y el AddScoped crea un contexto para cada uno de los controladores.

Y cuando dice que una api tienes que ser State Less, quiere decir que las peticiones HTTP no deberian compartir informacion y que cada peticion HTTP sea decentralizada. Es decir, que si manejo un estado en /users ese estado no debe estar en /products

Inyección de Dependencias

Nos permite utilizar diferentes tipos abstractos y configurar nuestras dependencias utilizando un inyector sin tener que crear un nuevo objeto o una nueva referencia del componente cada vez que lo necesitemos, sino que el inyector se encarga de pasarnos esa dependencia y la podemos utilizar directamente.
Configuración del inyector: Para la configuración del inyector tenemos las siguientes opciones:

  1. Usando builder.Services.addscop<>(); : De esta manera estamos creando una nueva instancia de la dependencia que estamos usando, pero a nivel de controlador o a nivel de clase, es decir que no importa si estamos inyectando varias veces y en diferentes partes esta dependencia dentro de todo el contexto del controlador o todo el contexto de la clase, se va a inyectar exactamente la misma instancia que se creo para todo ese elemento.
    (También podemos usar builder.Services.addTrasient)
  2. Usando builder.Services.addsingleton : De esta manera estamos creando UNA ÚNICA implementación o instancia de esa dependencia EN TODA LA API (no es recomendable usar singleton porque hacemos que nuestras dependencias se creen en memoria lo que podría causar un problema, además la tendencia es implementar APIS que sean stateless que no manejen ningún tipo de estado sino que con cada request se cree una nueva implementación o instancia de la dependencia configurada.)
Estoy un poco perdido en cuanto a INTERFACES y CONSTRUCTOR, algún curso que refuerce estos conceptos? ¡Saludos!

lo que dices en el minuto 14:00 no es nada claro y podria ser hasta erroneo, muy decepcionado de este curso

CReo que la palabra correcta para la interfaz es multiples definciones de metodos que pueden ser implementados cuando se implementa en una clase