Tame Your Software Dependencies for More Flexible Apps

When your application design is too tightly coupled, every class is directly or indirectly coupled to every other class in your design. Making changes in this type of system is difficult at best because a change in any one class can have a ripple effect throughout the rest of the system.

In the March 2008 issue of MSDN Magazine, James Kovacs explains how creating loosely coupled designs can help you better respond to inevitable, and many times unforeseeable, changes.

James discusses dependency inversion, dependency injection, inversion of control containers, and lifetime management, demonstrating how coding to contract rather than concrete implementation can increase the flexibility of your architecture.