Unity Application Block released

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/

 

Unity Application Block released

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/