Service Locator 2 Released

After far too much delay, today I have finally released Service Locator 2 to the web. Since GotDotNet is being phased out, I have moved the project to CodePlex, which means that you should go to Service Locator's new home to download the new release.

So, what is it? Service Locator 2 addresses late binding in component-based .NET applications. When abstracting component dependencies from clients, it is necessary to have a strategy for injecting dependencies into the client. Service Locator 2 encapsulates recognized design patterns and best practices for dependency injection. 

This release is a complete rewrite, targeting Enterprise Library for .NET Framework 2.0 - January 2006, and based mainly on Object Builder. Highligts include:

  • Run-time injection. Service Locator 2 supports both static, configuration-based dependency injection, and dynamic, run-time injection. Static injection is the simple, specialized case where you only need to map from an abstract to a concrete type, but don't need to inject a particular instance of a concrete type. In some cases, e.g. when using dynamic mock objects, it is necessary to be able to inject instances that are first created at run-time. Service Locator 2 supports both cases.
  • Ease of use. It is easy to get started with using Service Locator 2: Just make a project reference to Service Locator 2, and start creating dependency instances using the ServiceFactory class.
  • Optional configuration. Depending on scenarios, configuration of Service Locator 2 is optional. Service Locator 2 uses a pipeline of strategies to create service instances. If a strategy can create the requested service without use of application configuration, no configuration is necessary. This makes it easy to get started. Configuration can be added later as necessary, which will always be the case if it is necessary to map from an abstract to a concrete type.
  • Integration. Service Locator 2 integrates with Enterprise Library, plugging in to the Enterprise Libary configuration application, and using Object Builder for its implementation.

Although the source code has been ready for quite a while now, it took me some time to generate the documentation with SandCastle, and since this isn't my main area of expertise, I hope it works out for you.

Please report any bugs, etc. at the CodePlex project, where you can also ask questions using the forum.