Dependency Injection Deep Dive | .NET & C# Essentials

Sdílet
Vložit
  • čas přidán 10. 05. 2024
  • In today's video we'll dive into Dependency Injection in .NET & ASP.NET.
    We'll cover almost everything you need to know about integrating dependency injection in your applications from the various lifetimes to every single configuration method on the dependency injection Inversion of Control (IoC) container.
    Connect with me on 'em socials:
    Twitter: / amantinband
    LinkedIn: / amantinband
    GitHub: github.com/amantinband
    Check out all my courses on DomeTrain:
    dometrain.com/author/amichai-...
    Support the channel and get the source code:
    / amantinband
    Thanks for watching, don't forget to like & comment & subscribe! ❤️ 💻
    0:00. Opening
    0:59. Registering controllers
    2:43. Registering services
    7:18. Implementing what ASP.NET does using the IServiceCollection and the ServiceProvider
    09:10. Transient lifetime
    11:21. Singleton lifetime
    18:38. Scoped lifetime
    27:35. Multiple Registrations
    30:16. Keyed services
    32:44. TryAdd methods
    34:20. Service descriptor and the Add method
    35:20. TryAddEnumerable
  • Věda a technologie

Komentáře • 39

  • @amantinband
    @amantinband  Před 2 měsíci +7

    Cheers 🥂
    0:00. Opening
    0:59. Registering controllers
    2:43. Registering services
    7:18. Implementing what ASP.NET does using the IServiceCollection and the ServiceProvider
    09:10. Transient lifetime
    11:21. Singleton lifetime
    18:38. Scoped lifetime
    27:35. Multiple Registrations
    30:16. Keyed services
    32:44. TryAdd methods
    34:20. Service descriptor and the Add method
    35:20. TryAddEnumerable

  • @voidmice1669
    @voidmice1669 Před 2 měsíci +5

    Finally cleared out for me the difference between AddScoped and AddTransient. Thanks! 😊

  • @martinlabastie3518
    @martinlabastie3518 Před 2 měsíci +4

    This sereies is amazing, please never stop

  • @lucaciandrei
    @lucaciandrei Před 7 dny

    very clear and concise explanations, congrats and to many more tutorials

  • @sushilb7994
    @sushilb7994 Před 2 měsíci +1

    Yet another wonderful video from Amichai ❤ thank you…

  • @shahzadahmad-vg2ou
    @shahzadahmad-vg2ou Před měsícem

    Absolutely fantastic tutorial! The depth of explanation is unparalleled. Keep up the great work!

  • @user-dg5qy3cq8m
    @user-dg5qy3cq8m Před 2 měsíci

    In my opinion the best tutor for explaining complex topics in easy steps without skipping important details

  • @EzequielBinker
    @EzequielBinker Před 2 měsíci

    Excellent video Amichai. You're great!!

  • @HackerUC
    @HackerUC Před 21 dnem

    Best explanation I've heard on DI. 👍🏼

  • @longuinni
    @longuinni Před 2 měsíci +1

    Really nice introtuction to DI.

  • @greekplayback
    @greekplayback Před 2 měsíci

    תודה אלוף

  • @Philippe42460
    @Philippe42460 Před 2 měsíci

    Hi Amichai,
    Thank you very much for this very good introduction to service registration, this will be very useful for my new colleagues. 👍

  • @aldkdenedik2451
    @aldkdenedik2451 Před 2 měsíci +1

    Really nice

  • @vascofernandes6192
    @vascofernandes6192 Před měsícem

    Fantastic video

  • @Andy01010
    @Andy01010 Před 2 měsíci

    Great stuff, tbh you have a good chance to lead the c# and .net learning for us mortals. The more people understand it the more it is used

  • @neroamayo6345
    @neroamayo6345 Před 2 měsíci

    Great content. Please keep it up.😇😇

  • @naftalyweinberger7892
    @naftalyweinberger7892 Před měsícem

    thanks amichai, i like when u talk fast, its more easy.

  • @mckayanderson2046
    @mckayanderson2046 Před 5 dny

    So good Amichai! I'll be purchasing your courses and recommending to friends.
    Have you dug into Microsoft's Semantic Kernel yet?
    The documentation and current tutorials from the team are really scattered and confusing and I didn't find a single good example of applying good DDD and Clean Architecture.
    I won't need it by the time you're done, but it might be a good opportunity for you.

  • @gerardwisse406
    @gerardwisse406 Před měsícem

    Another great video. Thx for sharing and keep up the good work. And just out of curiosity, what tool do u use to draw those colorful arrows and rectangles?

  • @DavidSmith-ef4eh
    @DavidSmith-ef4eh Před měsícem

    I wish we had such things in PHP. In php di system, everything is just a singleton, had to create my own DI service to be able to have factories/transient services. Maybe in 20 years, php will catch up to this.

  • @joshmeyers2034
    @joshmeyers2034 Před měsícem

    I always share your videos with my team. So detailed and easy to digest. What kind of annotating tool do you use? I can't find anything remotely like it other than zoomit 🙂

  • @shayvt
    @shayvt Před měsícem

    Thank you Amichai for another great video.
    Regarding keyed services - is it ok to use it or is it a code smell? When I have more than one implementation, I usually create a factory class, register the factory and the implementations in the container, get the IEnumerable to the factory, and use the factory to pick the implementation. What do you think?
    Another thing - do you know if there is an option to register all the implementations of an interface from an assembly? I saw it in other container and I think it could be very useful.
    תודה 🙂

  • @alexandernava9275
    @alexandernava9275 Před 24 dny

    I am confused on the lifetime of a single request for scoped. What is that? Like is there a timeout for each "session" on a browser?

  • @thijsvandervegt3377
    @thijsvandervegt3377 Před 2 měsíci

    Hey Amichai 👋 , any chance you're making a Deep Dive course on DDD on Dometrain sometime soon?

    • @amantinband
      @amantinband  Před 2 měsíci

      Working on it as we speak 💪🏼

  • @seba123321
    @seba123321 Před 2 měsíci +1

    Can you recommend a solution/library/helper for scenario where you have a lot of classes and corresponding interfaces. Scan of dlls and bulk registration. Registration by conversion: IService1 and Service1. I'm sure that there must be an easy way to do that.

    • @amantinband
      @amantinband  Před 2 měsíci +3

      I have a video in my backlog on dynamic DI registration using a few different NuGet packages

  • @ivandrofly
    @ivandrofly Před 10 dny

    What is the name of the tool that you are using for highlighting and creating arrows?
    PS: I've been using ZoomIt from Microsoft Sysinternals

  • @maheshgangineni4860
    @maheshgangineni4860 Před 2 měsíci +1

    Nice video , can you share the extensions that you use for dotnet development?

    • @amantinband
      @amantinband  Před 2 měsíci +1

      This is pretty similar to what I’m using today: czcams.com/video/m9HvsB1-hAo/video.htmlsi=TKZqbOSktM_Y5FHl

  • @az6876
    @az6876 Před 2 měsíci

    This video can be defined as a reference to definitively understand dependency injection in c#.
    Can I ask you what you think about the class constructor in C# defined like this:
    public class NumbersController(NumberService numberService)
    {
    private readonly NumberService numberService = numberService; // also I can add ?? throw new ArgumentNull...
    ...
    }
    Thanks

    • @amantinband
      @amantinband  Před 2 měsíci +1

      Looks good, but the exception throwing is redundant since the DI container with throw an exception if it cannot resolve a dependency

    • @az6876
      @az6876 Před 2 měsíci

      @@amantinband Thank you

  • @parkerwarner8688
    @parkerwarner8688 Před 2 měsíci

    Are keyed services essentially an implementation of the factory pattern or am I misunderstanding that?

  • @shayvt
    @shayvt Před 2 měsíci

    Do you prefer vscode over vs or rider?