Part of PraVeeN's adventure in DOTNET
The Unity Application Block (Unity) is a lightweight, extensible dependency injection (DI) 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.
Design Goals
· To promote the principles of modular design through aggressive decoupling;
· To raise awareness of the need to maximize testability when designing applications;
· To provide a fast and lightweight dependency injection container mechanism for creating new object instances and managing existing object instances;
· To expose a compact and intuitive API for developers to work with the container;
· To support a wide range of code languages, with method overrides that accept generic parameters where the language supports these;
· To implement attribute-driven injection for constructors, property setters, and methods of target objects;
· To provide extensibility through custom and third-party container extensions;
· To provide the performance required in enterprise-level line-of-business (LOB) applications.
For an introduction to dependency injection, see the article
Inversion of Control Containers and the Dependency Injection pattern by Martin Fowler.
More details avilable here:
http://msdn2.microsoft.com/en-us/library/cc468366.aspx
Other links:
*
http://codeplex.com/unity
*
http://msdn.microsoft.com/practices/
Leave a passing comment »