An introduction to Inversion of Control, using the Dependency Injection and Service Locator patterns, along with simple examples in C#.