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.
@brudog562 жыл бұрын
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
@yasirhabibkhugiani4 жыл бұрын
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.p5 жыл бұрын
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!
@abhishekbajpai99204 жыл бұрын
Finally!!! I've understood what Dependency Injection is. Thank you so much, man!!!
@ramzirich25852 жыл бұрын
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
@saidrahman59485 жыл бұрын
Simply I wanna say----> I just like it. Thanks a lot...........
@tetley37373 жыл бұрын
Right to the point, no wasted time bloating the video, just a very clear explanation of DI. Thanks.
@dimasjimenez33965 жыл бұрын
You sir are the goat. The best tutorials no matter the technology. THANK YOU!
@alex_g5 жыл бұрын
Goat? do you know what 'goat' means?
@saivaibhavmedavarapu73835 жыл бұрын
@@alex_g lol
@sherifezzat49835 жыл бұрын
@@alex_g Great Of All Time!! and Yup he is! Thanks so much Sir.
@carlosinigo92254 жыл бұрын
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!
@IamSandeepKmr5 жыл бұрын
You are dong a great service to developer community. Your work is admired by everyone across the world. What a presentation! What a control!
@NikhilShirgaonkar4 жыл бұрын
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
@adamameen52 жыл бұрын
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"
@MsAlexandr76 Жыл бұрын
Part 44 (from 8:33) of this Tutorial discussed about these 3 methods in details
@hollowbyakuya292410 ай бұрын
even though these videos are old the concepts havent changed. absolutely top quality stuff
@manjinderbajwa14685 жыл бұрын
Venkat you are a genius when you explain the concepts ..to the point ...thanks dear
@kunsssssss1134 жыл бұрын
This is the best dot net core tutorial series in the internet
@gaurravprakash5 жыл бұрын
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?
@jmurrayhead4 жыл бұрын
Look into the Factory pattern.
@interviewhappy3 жыл бұрын
Ultimate explanation
@ianmohlie4 жыл бұрын
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"?
@EriAirlangga5 жыл бұрын
Martin Fowler is a genius living legend. All patterns we know of nowadays stem from his brain
@khalidkachachi65954 жыл бұрын
A Very Very good explanation of Dependency Injection in ASP.NET Core, Thnaks man.
@gregoryhoward75944 жыл бұрын
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.
@santosharakere5 жыл бұрын
Excellent demo of DI, great job. Thanks Venkat.
@DecentProgrammer4 жыл бұрын
Finally!!! I have understood what DI is. Thanks Sir.
@Csharp-video-tutorialsBlogspot4 жыл бұрын
You are very welcome and thank you very much for taking the time to provide feedback.
@sam00700700719812 жыл бұрын
Great explanation.. Nobody explains like you . Hats off to you.
@mamadoudiallo89883 жыл бұрын
Thanks Kudventkat for your time to sharing this helpful tuto, keep it up i appreciate it a lot
@mohdilyas79625 жыл бұрын
Very great explanation, I want such tutorials taking less time to understand as it focuses on the main topic, thanks
@YahyaKawia2 жыл бұрын
Thanks for the explanation on instructor injection. It has helped my understanding of the dependency injection concept.
@anvineet4 жыл бұрын
Thanks so much for explaining lot about DI. Its so simple and so deep to understand.
@tarekshoufi75405 жыл бұрын
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
@usefultutorials2004 жыл бұрын
Did you fix it ?
@DiegoSanchez-td1fk Жыл бұрын
@@usefultutorials200 Did you fix it? lol
@ArifShaikh-dt3fy4 жыл бұрын
One word 'WOW'. Very well explained.
@MrRAHUL77777772 жыл бұрын
Your teaching method is very impressive and doubt clearing
@michaelwassell52874 жыл бұрын
Great video, just what I need for my university project.
@Csharp-video-tutorialsBlogspot4 жыл бұрын
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. kzbin.info/www/bejne/iJqulIZ6l6yJjtk
@anselhobs61113 жыл бұрын
Nice
@nirmalasundar26664 жыл бұрын
Best video that I have ever seen🙏 Thanks for all your help🙏❤️
@rongliao92554 жыл бұрын
Great tutorial! Clear and concise explanation!
@Csharp-video-tutorialsBlogspot4 жыл бұрын
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.
@amine-ps2ib4 жыл бұрын
the best tutorial with the best explanation. thank you
@tueday31915 жыл бұрын
are there any point of using other dependency injection library like autofac etc. in asp.net core?
@QuickZ_5 жыл бұрын
not really unless you feel like there is a missing feature.
@ozimax065 жыл бұрын
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
@entertainclips60065 жыл бұрын
I got an error in HomeController that "Inconsistent accessibility: parameter type 'IEmployeeRepository' is less accessible than method 'HomeController.HomeController(IEmployeeRepository)' " how to resolve that?
@thatboyneedstherapy5 жыл бұрын
Is your IEmployeeRepository interface public?
@TheSree91205 жыл бұрын
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?
@Kobriks15 жыл бұрын
The one which is registered in ConfigureServices. If you try to register both you will get an error.
@sandeepbrk5 жыл бұрын
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.
@anuyajoshi43604 жыл бұрын
Thank you for questions and shared relevant answers. They all help to improve.
@honeytrippers5 жыл бұрын
The "Previous" and "Next" video links are wrong pointing to video 17 and 18 ...and a bit quick for a complex concept
@afzalbazeer6003 жыл бұрын
The best. Ur explanations are awesome sir.
@missjude014 жыл бұрын
very well explained, thank you!
@microtech24485 жыл бұрын
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.
@amineherizi46875 жыл бұрын
No you can't must have for each interface one implementation otherwise the DI engine can't decide which one to use
@microtech24485 жыл бұрын
@@amineherizi4687 How would you inject dependencies in tutorial example, IEmployee, PermanentEmployee, ContractEmployee
@microtech24485 жыл бұрын
@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
@sandeepbrk5 жыл бұрын
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.
@trustingod03 жыл бұрын
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 !!!
@JoseAlvarez-dl3hm4 жыл бұрын
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.
@progalion46473 жыл бұрын
WOW , Thank you so much , very useful video
@somnathsharma99793 жыл бұрын
But in what scenario where we need to change mockrepository class to sqlrepository class implementation as you mentioned in video
@Vykhari13 жыл бұрын
Thank you very much Venkat. Your videos are really helpful.
@SelmanErhanekici5 жыл бұрын
You're doing great job.
@IMateme5 жыл бұрын
great great great, and simple , thank you very much
@jaheershashaik52703 жыл бұрын
Wow, Simply Wow
@SilverMan935 жыл бұрын
You make it so easy to understand, thank you sir
@junaid_aslam4 жыл бұрын
What an amazing explanation. Kudos!
@mrohailiqbal4 жыл бұрын
Very nicely explained. Thanks a lot Sir.
@PremKumar-kg5ep2 жыл бұрын
Your videos is so great..
@imikhan835 жыл бұрын
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?
@ApeKing5 жыл бұрын
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(); //
@imikhan835 жыл бұрын
@@ApeKing Thank you so much 💗👍 Understood...
@antoniocolombo94142 жыл бұрын
Thanks! That's exacly what I was looking for
@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.
@vikram50102 ай бұрын
Great one!
@fahim8690 Жыл бұрын
❤❤Great Video Sir
@richardflores85425 жыл бұрын
Thank you! Great video.
@Fkn14054 жыл бұрын
Almost hit the like button TWICE!!!
@remoteXJunkie5 жыл бұрын
InvalidOperationException: A circular dependency was detected for the service of type 'WebApplication3.Models.IEmployeeRepository'. Getting this error
@jatinkumar44102 жыл бұрын
Amazing explanation. Thanks
@patelabhay12673 жыл бұрын
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?
@nikhilkolhe20643 жыл бұрын
First time I understood dependency injection🙏🙏
@aaronaaronaaron59225 жыл бұрын
I like this enjoyable videos a lot!!
@waelmrabet68414 жыл бұрын
Great tutorial bro thx !!
@phanidivi36135 жыл бұрын
Simply supb venkat sirrrrrr......
@ymtan5 жыл бұрын
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; } }
@phanidivi36135 жыл бұрын
@@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.
@phanidivi36135 жыл бұрын
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.
@phanidivi36135 жыл бұрын
I have understand this only.Please correct if am wrong.
@phanidivi36135 жыл бұрын
@@ymtan Previously,we are using third party tools like unity.mvc5 to providing and resolve the errors in DP .
@naodagere82105 жыл бұрын
Ur best! marvelous!!!
@ayedabboushi72215 жыл бұрын
very cleared, thank you venkat
@dhliu9687 Жыл бұрын
Thanks teacher venkat, check in today !
@daredevilpantera4 жыл бұрын
Fantastic Video Gentleman
@hadisandid46714 жыл бұрын
Great explanation, thank you
@karimkazia5 жыл бұрын
Awesome Thank you!!
@Krranganathakr4 жыл бұрын
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 .
@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.
@ashokrajur094 жыл бұрын
short and to the point, thanks
@eduAIJourney4 жыл бұрын
Thank you so much what a excellent explanation
@InamiLanzhuАй бұрын
you're the best
@tamaradmoni16115 жыл бұрын
Thank you for this great tutorial! Is there a place we can ask questions about the tutorial?
@Csharp-video-tutorialsBlogspot5 жыл бұрын
Hello Tamar - Please ask your question on the respective video as a comment. Hope this helps.
@ultrahyena30135 жыл бұрын
@@Csharp-video-tutorialsBlogspot I'm wondering if what he really means is, have you ever thought about actually answering people's questions?
@reyneermorales61234 жыл бұрын
What if I want to use a class library? a class library does not include the startup.cs class.
@navyanarayanarao86944 жыл бұрын
Amazing Amazin Amaaaazing!!
@AAFactor5 жыл бұрын
Awesome bro ... just awesome :)
@Rafian1924 Жыл бұрын
Genius ❤
@nisarahmad33705 жыл бұрын
Dear sir, kindly make a tutorial for generic repository and unit of work. We are badly missing it. Thanks
@trustingod03 жыл бұрын
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.
@thetechlancer2 ай бұрын
so to the point ❤
@S431723 жыл бұрын
I am getting an error. Plz help me out in this regard. inconsistent accessibility property type is less accessible
@bullseyerendan74863 жыл бұрын
use public keyword in your classes and interface.
@meeramaahidoshi12073 жыл бұрын
i am not getting the output marry instead still getting hello world with version 3 above. what would be the problem?
@shaimaasayed69712 жыл бұрын
Thank you so much really helpful
@richardprakash46304 жыл бұрын
how to handle DI if there are multiple implementation of the interface and want to use both??
@VikramSingh-kk1mg4 жыл бұрын
amazingly explained
@ravivishwakarma7786 Жыл бұрын
How does the call parameterize the constructor 0.12
@pandybear42564 жыл бұрын
InvalidOperationException: Multiple constructors accepting all given argument types have been found in type 'PAS1._0.Controllers.HomeController'. There should only be one applicable constructor. Getting this error :(
@RaviBedre905 жыл бұрын
Nice tutorial.....Is there any other way to register the service except to use the extension method????