skip to the main content area of this page
Patterns and Practices

 

Enterprise Library 4.0 Plan Published on CodePlex - Dependency Injection and Application Block Enhancements


Grigori Melnik, the Product Manager for Enterprise Library, published the Enterprise Library 4.0 Product Backlog ( Plan ) that includes the much anticipated Dependency Injection Application Block as well as several enhancements to many of the application blocks.

The Dependency Injection Container for Enterprise Library 4.0 plan looks as follows:

  • Provide a reusable dependency injection container with convenient, non-invasive API (incl. support for constructor injection, property injection, method call injection
  • Support imperative configuration of DI container (via API)
  • Support declarative configuration of DI container (via config files)
  • Solid documentation – leveraging DI container to build loosely-coupled apps and improve their testability and maintainability – not just API docs (including: conceptual overview, quickstart, demos, hands-on labs)
  • Enable container hierarchy
  • Optimize performance of DI container
  • Support imperative configuration extensibility of DI Container
  • Support declarative configuration extensibility of DI Container
  • Update EL configuration tool (both standalone and VS-integrated) to configure DI Container
  • Provide intuitive installers (two packages: DIAB standalone; DIAB integrated with EntLIB; incl. side-by-side scenarios)
  • Once refactored, compat-test refactored blocks on other containers (Castle, Spring.NET, etc.)
  • Provide a simpler version of the EventBroker (support scenario: I want to use my Web service and to use DI to automatically wire it up when created with logging, exception handling etc.)

 

Notice the point of intuitive installers, where Grigori mentions a standalone version as well as an Enterprise Library version of the Dependency Injection Application Block. Very cool. This means we can use a standalone version of the Dependency Injection Container for those times when we don't need Enterprise Library.

Also notice the mentions of Castle and Spring.NET, which means they are looking at other popular dependency injection solutions for possible integration as providers as well as their strengths and weaknesses for their own Dependency Injection Container.

If you read Grigori's Product Backlog on CodePlex, the major need for Enterprise Library 4.0 is obviously support for Visual Studio 2008.

A couple of surprises were items for the Caching Application Block, which hadn't seen many enhancements in the past, because ASP.NET Caching is the recommended approach for caching:

  • Provide extensibility points for Caching Block to allow alternate caching implementations (including distributed cache providers) to be plugged in. The objective here is NOT to replace the ASP.NET caching but to provide more choices.
  • Caching Block: expiring items when subjected to load.

Hooray for the better and easier support for Partial Trust which has been extremely painful for everyone in the past:

  • Support partially-trusted callers (requires a full security review).

And the item I did not see on the list, which I was really hoping for, was a more lightweight interception mechanism for the Policy Injection Application Block. It would have been a perfect time to add such a mechanism.

I look forward to Enterprise Library 4.0.


Tags: EnterpriseLibrary4, DependencyInjection


Topics



 

Popular Tags



Recent Links