ASP NET Core dependency injection tutorial

Поделиться
HTML-код
  • Опубликовано: 2 янв 2025

Комментарии • 164

  • @bolafahmi
    @bolafahmi 4 года назад +53

    Dependency Injection was a mystery for me before this video, and I simply did not know why bother with all the additional code. Thanks man A LOT.

    • @brudog56
      @brudog56 3 года назад

      Same here! This is the simplest, most concise explanation of DI I’ve come across. I’ve just been assuming DI worked over PFM (as in “Pure F***in’ Magic”) LOL

  • @yasirhabibkhugiani
    @yasirhabibkhugiani 4 года назад +15

    I wish all who teaches technical concepts in universities were like you, it would have been so easier. You have amazing ways to deliver a hard concept in a very easy understandable way.

  • @bogdan.p
    @bogdan.p 5 лет назад +8

    Well, after reading docs from Microsoft and asking .NET Developers about how DI works and why I need it I finally understand with your tutorial. Thank you very much for your work!

  • @abhishekbajpai9920
    @abhishekbajpai9920 5 лет назад +6

    Finally!!! I've understood what Dependency Injection is. Thank you so much, man!!!

  • @saidrahman5948
    @saidrahman5948 5 лет назад +24

    Simply I wanna say----> I just like it. Thanks a lot...........

  • @tetley3737
    @tetley3737 3 года назад

    Right to the point, no wasted time bloating the video, just a very clear explanation of DI. Thanks.

  • @dimasjimenez3396
    @dimasjimenez3396 5 лет назад +5

    You sir are the goat. The best tutorials no matter the technology. THANK YOU!

  • @ramzirich2585
    @ramzirich2585 2 года назад +2

    I failed my interview because of why we use interface , the interviewer wanted to go so in depth with this question in this video and the previous one I understood why we use interface and and DI thank you very much I searched a lot for this topic but you offer the easiest explanation Thank you from the bottom of my heart

  • @kunsssssss113
    @kunsssssss113 4 года назад +1

    This is the best dot net core tutorial series in the internet

  • @IamSandeepKmr
    @IamSandeepKmr 5 лет назад +1

    You are dong a great service to developer community. Your work is admired by everyone across the world. What a presentation! What a control!

  • @khalidkachachi6595
    @khalidkachachi6595 4 года назад

    A Very Very good explanation of Dependency Injection in ASP.NET Core, Thnaks man.

  • @adamameen5
    @adamameen5 2 года назад +1

    What a brilliant video.. Great stuff. I judged the video by the thumbnail, and thought it wouldn't be great, but what a great explanation.. 🔥❤ "Never judge a book by it's cover"

  • @carlosinigo9225
    @carlosinigo9225 4 года назад +1

    I really like your explanation of the logic behind the use of AddSingleton instead of tightly coupling the implementation of IEmployeeRepository. Thank you for the great work! Absolute best!

  • @hollowbyakuya2924
    @hollowbyakuya2924 11 месяцев назад

    even though these videos are old the concepts havent changed. absolutely top quality stuff

  • @mamadoudiallo8988
    @mamadoudiallo8988 3 года назад

    Thanks Kudventkat for your time to sharing this helpful tuto, keep it up i appreciate it a lot

  • @sam0070070071981
    @sam0070070071981 2 года назад

    Great explanation.. Nobody explains like you . Hats off to you.

  • @nirmalasundar2666
    @nirmalasundar2666 4 года назад +1

    Best video that I have ever seen🙏 Thanks for all your help🙏❤️

  • @YahyaKawia
    @YahyaKawia 2 года назад

    Thanks for the explanation on instructor injection. It has helped my understanding of the dependency injection concept.

  • @MrRAHUL7777777
    @MrRAHUL7777777 2 года назад

    Your teaching method is very impressive and doubt clearing

  • @rongliao9255
    @rongliao9255 4 года назад +1

    Great tutorial! Clear and concise explanation!

    • @Csharp-video-tutorialsBlogspot
      @Csharp-video-tutorialsBlogspot  4 года назад

      Hello Rong - Thank you very much for the feedback. Means a lot. I have included all the .NET core tutorial videos, slides and text articles in sequence on the following page. Hope you will find it handy.
      www.pragimtech.com/courses/asp-net-core-mvc-tutorial-for-beginners/
      When you have some time, can you please leave your rating and valuable feedback on the REVIEWS tab. It really helps us. Thank you. Good luck and all the very best with everything you are doing.

  • @manjinderbajwa1468
    @manjinderbajwa1468 5 лет назад

    Venkat you are a genius when you explain the concepts ..to the point ...thanks dear

  • @MsAlexandr76
    @MsAlexandr76 Год назад +2

    Part 44 (from 8:33) of this Tutorial discussed about these 3 methods in details

  • @interviewhappy
    @interviewhappy 3 года назад +1

    Ultimate explanation

  • @DecentProgrammer
    @DecentProgrammer 4 года назад

    Finally!!! I have understood what DI is. Thanks Sir.

  • @missjude01
    @missjude01 5 лет назад +5

    very well explained, thank you!

  • @afzalbazeer600
    @afzalbazeer600 3 года назад

    The best. Ur explanations are awesome sir.

  • @santosharakere
    @santosharakere 5 лет назад +1

    Excellent demo of DI, great job. Thanks Venkat.

  • @mohdilyas7962
    @mohdilyas7962 5 лет назад +1

    Very great explanation, I want such tutorials taking less time to understand as it focuses on the main topic, thanks

  • @NikhilShirgaonkar
    @NikhilShirgaonkar 4 года назад

    Why in the world can't people explain this simple like Venkat does I use to really wonder why for god shake why we need interface when things can be done straight forward UR GOD of programming bro just wonderful

  • @ArifShaikh-dt3fy
    @ArifShaikh-dt3fy 5 лет назад

    One word 'WOW'. Very well explained.

  • @gregoryhoward7594
    @gregoryhoward7594 4 года назад

    GREAT VIDEO!!! I like how you gave a real world example of why this matters rather than assume everyone knows this.
    It would be so much better if other people would do this with their videos OR explanations on information websites.
    I will continue to see if you covered the other ways of Dependency Injection.
    This is good stuff.

  • @IMateme
    @IMateme 5 лет назад +1

    great great great, and simple , thank you very much

  • @amine-ps2ib
    @amine-ps2ib 4 года назад

    the best tutorial with the best explanation. thank you

  • @progalion4647
    @progalion4647 3 года назад

    WOW , Thank you so much , very useful video

  • @mrohailiqbal
    @mrohailiqbal 4 года назад

    Very nicely explained. Thanks a lot Sir.

  • @antoniocolombo9414
    @antoniocolombo9414 2 года назад

    Thanks! That's exacly what I was looking for

  • @michaelwassell5287
    @michaelwassell5287 4 года назад +1

    Great video, just what I need for my university project.

    • @Csharp-video-tutorialsBlogspot
      @Csharp-video-tutorialsBlogspot  4 года назад +3

      Thank you Michael. Means a lot. If you are planning to become a full stack software engineer, I think the following video will be of some help.
      ruclips.net/video/RiKcSDbGVXw/видео.html

    • @anselhobs6111
      @anselhobs6111 3 года назад

      Nice

  • @EriAirlangga
    @EriAirlangga 5 лет назад +2

    Martin Fowler is a genius living legend. All patterns we know of nowadays stem from his brain

  • @nikhilkolhe2064
    @nikhilkolhe2064 3 года назад

    First time I understood dependency injection🙏🙏

  • @Fkn1405
    @Fkn1405 4 года назад

    Almost hit the like button TWICE!!!

  • @junaid_aslam
    @junaid_aslam 4 года назад

    What an amazing explanation. Kudos!

  • @anvineet
    @anvineet 5 лет назад

    Thanks so much for explaining lot about DI. Its so simple and so deep to understand.

  • @Vykhari1
    @Vykhari1 3 года назад

    Thank you very much Venkat. Your videos are really helpful.

  • @ianmohlie
    @ianmohlie 4 года назад

    Great video, thanks. I might be confused about the different methods of DI (eg what you did here vs using Autofac).
    Question: Do you always have to register your interfaces in Startup? I watched another video where he didn't have to use Startup to tell Visual Studio which implementing class to use - he simply passed that class as an input when calling the method ("C# Dependency Injection Constructor" by Theenk, specifically 14:09-14:40). Can you please explain to me the difference in your two approaches?
    Also:
    - are "interfaces" synonymous with "services"? (see your video at 3:15)
    - is "registering" the same as "binding"?

  • @eduAIJourney
    @eduAIJourney 4 года назад

    Thank you so much what a excellent explanation

  • @gaurravprakash
    @gaurravprakash 5 лет назад +5

    My question is regarding services.AddSingleton(). How can I add multiple concrete implementations of IEmployeeRepository, and then be able to use one of them at run time depending upon the situation?

    • @jmurrayhead
      @jmurrayhead 4 года назад

      Look into the Factory pattern.

  • @jaheershashaik5270
    @jaheershashaik5270 3 года назад +1

    Wow, Simply Wow

  • @jatinkumar4410
    @jatinkumar4410 2 года назад

    Amazing explanation. Thanks

  • @waelmrabet6841
    @waelmrabet6841 4 года назад +1

    Great tutorial bro thx !!

  • @PremKumar-kg5ep
    @PremKumar-kg5ep 2 года назад

    Your videos is so great..

  • @fahim8690
    @fahim8690 Год назад

    ❤❤Great Video Sir

  • @dhliu9687
    @dhliu9687 Год назад

    Thanks teacher venkat, check in today !

  • @daredevilpantera
    @daredevilpantera 4 года назад

    Fantastic Video Gentleman

  • @richardflores8542
    @richardflores8542 5 лет назад +1

    Thank you! Great video.

  • @ashokrajur09
    @ashokrajur09 4 года назад

    short and to the point, thanks

  • @SilverMan93
    @SilverMan93 5 лет назад

    You make it so easy to understand, thank you sir

  • @vikram5010
    @vikram5010 2 месяца назад

    Great one!

  • @aaronaaronaaron5922
    @aaronaaronaaron5922 5 лет назад

    I like this enjoyable videos a lot!!

  • @naodagere8210
    @naodagere8210 5 лет назад

    Ur best! marvelous!!!

  • @thetechlancer
    @thetechlancer 3 месяца назад

    so to the point ❤

  • @shaimaasayed6971
    @shaimaasayed6971 2 года назад

    Thank you so much really helpful

  • @SelmanErhanekici
    @SelmanErhanekici 5 лет назад

    You're doing great job.

  • @InamiLanzhu
    @InamiLanzhu Месяц назад

    you're the best

  • @honeytrippers
    @honeytrippers 5 лет назад +1

    The "Previous" and "Next" video links are wrong pointing to video 17 and 18
    ...and a bit quick for a complex concept

  • @navyanarayanarao8694
    @navyanarayanarao8694 4 года назад

    Amazing Amazin Amaaaazing!!

  • @AAFactor
    @AAFactor 5 лет назад

    Awesome bro ... just awesome :)

  • @hadisandid4671
    @hadisandid4671 4 года назад

    Great explanation, thank you

  • @nisarahmad3370
    @nisarahmad3370 5 лет назад +4

    Dear sir, kindly make a tutorial for generic repository and unit of work.
    We are badly missing it.
    Thanks

    • @trustingod0
      @trustingod0 3 года назад

      If you search around there are many more thorough tutorials available. If you notice his videos are short and "Sweet". There are many instructor led tutorials that do a far better job than Kudvenkat. He may be good at teaching things via his steps approach which shows you what to do in theory but you might be missing the bigger picture in the application of dependency injection via SOA.

  • @VikramSingh-kk1mg
    @VikramSingh-kk1mg 4 года назад

    amazingly explained

  • @Rafian1924
    @Rafian1924 Год назад

    Genius ❤

  • @ayedabboushi7221
    @ayedabboushi7221 5 лет назад

    very cleared, thank you venkat

  • @JoseAlvarez-dl3hm
    @JoseAlvarez-dl3hm 4 года назад

    It was really well explained. Although I did not get the difference between singleton, scoped and transient, and when to use one over the others.

  • @somnathsharma9979
    @somnathsharma9979 3 года назад

    But in what scenario where we need to change mockrepository class to sqlrepository class implementation as you mentioned in video

  • @phanidivi3613
    @phanidivi3613 5 лет назад

    Simply supb venkat sirrrrrr......

    • @ymtan
      @ymtan 5 лет назад

      I am not able to understand the concept of ASP.NET Core Dependency Injection. Could you kindly please explain the following code block because I don't understand the code ?
      public class HomeController : Controller
      {
      private IEmployeeRepository _employeeRepository;
      public HomeController(IEmployeeRepository employeeRepository)
      {
      _employeeRepository = employeeRepository;
      }
      public string Index()
      {
      return _employeeRepository.GetEmployee(1).Name;
      }
      }

    • @phanidivi3613
      @phanidivi3613 5 лет назад +1

      @@ymtan Creating a object of dependent class with out using new keyword called Dependency injection.In our code accessing a concurrent class is MockEmployeeRepository (dependent class) in HomeController class need to create object. Whenever we are creating the object using new keyword,both the class are tightly coupled.So main concept of DP is loosely coupled.The solution is to pass dependent class or interface instance variable as a parameter to a home controller constructor.

    • @phanidivi3613
      @phanidivi3613 5 лет назад

      In this video venkat sir explain very clearly,by changing the depend class constructor,immediately home controller getting an error.So by passing dependent class or interface instance,the error was gone.

    • @phanidivi3613
      @phanidivi3613 5 лет назад

      I have understand this only.Please correct if am wrong.

    • @phanidivi3613
      @phanidivi3613 5 лет назад

      @@ymtan Previously,we are using third party tools like unity.mvc5 to providing and resolve the errors in DP .

  • @ozimax06
    @ozimax06 5 лет назад

    what is the point of using Interface for Repositories and creating mock objects while you can create an in-memory database of DB context and passing directly to classes for unit testing? That's one of the features of .NET core

  • @karimkazia
    @karimkazia 5 лет назад +1

    Awesome Thank you!!

  • @TheSree9120
    @TheSree9120 5 лет назад +1

    one doubt sir, If two classes implementing the same interface and having the same method, then if i call the method with that interface, which class method will be called?

    • @Kobriks1
      @Kobriks1 5 лет назад +3

      The one which is registered in ConfigureServices. If you try to register both you will get an error.

    • @sandeepbrk
      @sandeepbrk 5 лет назад +2

      You can use IEnumerable collection and linq for that. Inbuilt dependency injection is not supporting multiple classes from single interface. Below is the code sample.
      Services :
      public interface ITest
      {
      void writeMsg(string t);
      }
      class ATest : ITest
      {
      public void writeMsg(string t)
      {
      Console.WriteLine(t + "A");
      }
      }
      class BTest : ITest
      {
      public void writeMsg(string t)
      {
      Console.WriteLine(t + "B");
      }
      }
      Getting particular service through controller injection :
      ITest _itest;
      private readonly IEnumerable _itests;
      public HomeController(IEnumerable itestList)
      {
      _itests = itestList;
      _itest = _itests.First(o => o.GetType() == typeof(BTest));
      }
      Here you can get the instance of BTest class.
      Hope this helps.

    • @anuyajoshi4360
      @anuyajoshi4360 4 года назад

      Thank you for questions and shared relevant answers. They all help to improve.

  • @patelabhay1267
    @patelabhay1267 3 года назад

    Can you please add a video which shows Multiple implementations for Dependency Injection like in the current video (Part 19) you show one implementation for MockEmployeeRepository, how to manage if in future we have other implementation for IEmployeeRepository?

  • @tarekshoufi7540
    @tarekshoufi7540 5 лет назад +1

    Hi Venkat, im getting this error (System.NullReferenceException:"Object reference not set to an instance of an object." ). and the Application crashed. can anyone explain way ?
    Thanks

  • @trustingod0
    @trustingod0 3 года назад

    Can I use a repository pattern with .Net Core Entity framework so that I can switch out implementations? For example lets say I want to use a class like MockEmployeeRepository for testing but I also want the flexibility to use a SQL Server data store. Thanks !!!

  • @kelumedirisinghe1735
    @kelumedirisinghe1735 4 года назад

    well explained!

  • @microtech2448
    @microtech2448 5 лет назад

    Nice, much clearer now. One question though, can you please tell us if this is possible to register multiple implementations of same interface using DI and selectively use one at constructor level or method or property level as required.

    • @amineherizi4687
      @amineherizi4687 5 лет назад

      No you can't must have for each interface one implementation otherwise the DI engine can't decide which one to use

    • @microtech2448
      @microtech2448 5 лет назад

      @@amineherizi4687 How would you inject dependencies in tutorial example, IEmployee, PermanentEmployee, ContractEmployee

    • @microtech2448
      @microtech2448 5 лет назад

      @venkat, can you please explain how to inject multiple implementations of same interface otherwise if it is not possible doing so then what is use of interfaces and multiple classes inheriting same interface

    • @sandeepbrk
      @sandeepbrk 5 лет назад +2

      You can use IEnumerable collection and linq for that. Inbuilt dependency injection is not supporting multiple classes from single interface. Below is the code sample.
      Services :
      public interface ITest
      {
      void writeMsg(string t);
      }
      class ATest : ITest
      {
      public void writeMsg(string t)
      {
      Console.WriteLine(t + "A");
      }
      }
      class BTest : ITest
      {
      public void writeMsg(string t)
      {
      Console.WriteLine(t + "B");
      }
      }
      Getting particular service through controller injection :
      ITest _itest;
      private readonly IEnumerable _itests;
      public HomeController(IEnumerable itestList)
      {
      _itests = itestList;
      _itest = _itests.First(o => o.GetType() == typeof(BTest));
      }
      Here you can get the instance of BTest class.
      Hope this helps.

  • @Krranganathakr
    @Krranganathakr 4 года назад

    Hi Sir ,
    one question here , As i have just one implementation here , but in reality i may implement 2 class with same interface utilization , now if i mentioned in start up file service.addsingleton and service.addsingleton, in this case what will happen . Please suggest .Thanks for your all videos , I really enjoying while learning with your videos .

  • @davidfong7624
    @davidfong7624 4 года назад

    Subscribed!

  • @bhadrik
    @bhadrik 3 года назад

    👍👍👍👍👍👍

  • @abdulkadir-lk4xg
    @abdulkadir-lk4xg 3 года назад

    Great

  • @tamaradmoni1611
    @tamaradmoni1611 5 лет назад

    Thank you for this great tutorial! Is there a place we can ask questions about the tutorial?

    • @Csharp-video-tutorialsBlogspot
      @Csharp-video-tutorialsBlogspot  5 лет назад

      Hello Tamar - Please ask your question on the respective video as a comment. Hope this helps.

    • @ultrahyena3013
      @ultrahyena3013 5 лет назад

      @@Csharp-video-tutorialsBlogspot I'm wondering if what he really means is, have you ever thought about actually answering people's questions?

  • @pavankogpayana
    @pavankogpayana 5 лет назад

    you make it so easy to understand concepts,why so fast sir?

  • @RaviBedre90
    @RaviBedre90 5 лет назад

    Nice tutorial.....Is there any other way to register the service except to use the extension method????

  • @tueday3191
    @tueday3191 5 лет назад

    are there any point of using other dependency injection library like autofac etc. in asp.net core?

    • @QuickZ_
      @QuickZ_ 5 лет назад

      not really unless you feel like there is a missing feature.

  • @imikhan83
    @imikhan83 5 лет назад +1

    Just one question, in the real-world application there will be multiple Interfaces and Classes and that will be a little bit hard work to implement Injection for each Interface. Is there any other way so that we implement those Interfaces and classes an efficient way?

    • @ApeKing
      @ApeKing 5 лет назад +3

      I think you have to implement them like this for every interface and so on. But you can make it look a little cleaner then filling all of them in your startup.cs.
      You can make a Extension Method to keep all the DI's you want instead of filling all of them in your startup. It looks much cleaner.
      public static class ServiceCollectionExtensions
      {
      public static IServiceCollection RegisterServices(
      this IServiceCollection services)
      {
      services.AddTransient();
      // and a lot more Services
      return services;
      }
      }
      And then in your startup.cs you write this for example.
      public void ConfigureServices(IServiceCollection services)
      {
      // Add framework services.
      services.AddMvc();
      services.RegisterServices(); //

    • @imikhan83
      @imikhan83 5 лет назад

      @@ApeKing Thank you so much 💗👍 Understood...

  • @leonvanrijswijk8409
    @leonvanrijswijk8409 5 лет назад +1

    I really love your videos, but not this one. For me it was very confusing. Maybe a slide with a diagram of dependencies would have helped to make it clearer

  • @richardprakash4630
    @richardprakash4630 4 года назад +2

    how to handle DI if there are multiple implementation of the interface and want to use both??

  • @sumersinghrana8868
    @sumersinghrana8868 5 лет назад

    Nice explain.

  • @reyneermorales6123
    @reyneermorales6123 4 года назад

    What if I want to use a class library? a class library does not include the startup.cs class.

  • @entertainclips6006
    @entertainclips6006 5 лет назад

    I got an error in HomeController that "Inconsistent accessibility: parameter type 'IEmployeeRepository' is less accessible than method 'HomeController.HomeController(IEmployeeRepository)' " how to resolve that?

  • @remoteXJunkie
    @remoteXJunkie 5 лет назад

    InvalidOperationException: A circular dependency was detected for the service of type 'WebApplication3.Models.IEmployeeRepository'. Getting this error

  • @manishakharade6198
    @manishakharade6198 4 года назад

    Thanks a lot...

  • @klearner666
    @klearner666 Год назад

    What if don't inject and when we need to change MockEmpRep() to SqlEmpRep() type we just changed the code inside the mock and as a result only one place needed to changed.? Please someone clarify me this.

  • @Leon-kd2ih
    @Leon-kd2ih Год назад

    can someone please explain to me how would I create an instance of HomeController? As I understand the DI Container will handle the dependency injection.