How I Learned to Love Dependency Injection


Tightly coupled applications lead to heartache. They are difficult to manage. They are difficult to maintain. The create applications that are inflexible. They make TDD, or even TAD (Test After Development) all but impossible. It doesn’t have to be this way. You’ve probably heard fancy terms like “Dependency Injection” and “Inversion of Control” but what do these mean and can they really help you write better applications and make testing easier? What about all those exotic frameworks? And what the heck is a “container?!” The bad news; this knowledge is a MUST HAVE for most testable applications these days. The good news, they are simpler than you think and besides simply making your code testable will also lead to good architecture practices that will help you develop better applications. This session will explain and demonstrate how these concepts some easy to use frameworks can help make your C# or VB.NET application more loosely coupled, easier to work with, more flexible, more maintainable and more testable.

James Bender

James is the Appication Development Practice Lead at ICC in Columbus, OH. James has worked as a developer and architect on everything from small, single-user applications to Enterprise-scale, multi-user systems. His specialties are .NET development and architecture, TDD, Web Development, JavaScript, cloud computing, and agile development methodologies. He is an experienced mentor and author. James is a Microsoft MVP and former President of the Central Ohio .NET Developers Group. James’s book “Professional Test Driven Development with C#: Developing Real World Applications with TDD” was released in May of 2011 and his new book “Developing SPAs: Working with Visual Studio 2015, AngualrJS and ASP.NET Web API” will be out in the first quarter of 2016. James’s Twitter ID is JamesBender