Deep Dive into Dependency Injection and Writing Decoupled Quality Code and Testable Software
Dependency Injection is one of those terms that advanced programmers throw out with an expectation and assumption of full understanding on the part of the receiver. It's easy to get infatuated by a cool buzz phrase, especially when you hear so many others using it, but to truly understand something you need to start by understanding the problem spaces that it is trying to solve. It’s important to learn the concepts behind DI so you can write software that can be properly tested. In this session, we explain dependency injection from concept to implementation, and use raw code samples to show you how it works and what problems it solves. We demonstrate how writing abstracted code can help you test your applications much better, whether or not you use a DI container. Then we get into what a DI container is and differences between Unity, MEF, MEF2, CasttleWindsor, Ninject, etc. and the different techniques, like DI thru Constructor, Properties, Interception, object graph LifeTime, and other topics. We finish by showing you implementation examples in three different platforms.