October 2008 Release (1.2)
What is Unity?
The Unity Application Block (Unity) is a lightweight, extensible dependency injection container. It facilitates building loosely coupled applications and provides developers with the following advantages:
– Simplified object creation, especially for hierarchical object structures and dependencies
– Abstraction of requirements; this allows developers to specify dependencies at run time or in configuration and simplify management of crosscutting concerns
– Increased flexibility by deferring component configuration to the container
– Service location capability; this allows clients to store or cache the container
– Instance and type interception (via an extension introduced in this release)
The Unity Application Block 1.2 release contains the following changes to the previous release (Unity 1.1 – May 2008):
− Added an interception mechanism (extension) and integration of the Policy Injection Application Block with the Unity Application Block.
− Added two instance interceptors (TransparentProxyInterceptor, InterfaceInterceptor) and one type interceptor (VirtualMethodInterceptor).
− Improved support for generics.
− Added support for arrays.
− Registered names are now available as an ObjectBuilder policy so that you can do a ResolveAll from within the strategy chain. The container automatically registers itself with itself.
− Added PerThreadLifeTimeManager.
− Bug fixes.
− Performance improvements.
For an introduction to dependency injection, see the article Inversion of Control Containers and the Dependency Injection pattern by Martin Fowler. Two Quickstarts packaged with the release are also a good start.
In addition, check out the Introduction to dependency injection with Unity webcast.
Check out www.codeplex.com/unity for updates.
– Community Forum: http://codeplex.com/unity
– Community Extensions: http://codeplex.com/unitycontributions