InfoQ

InfoQ

News

My Bookmarks

Login or Register to enable bookmarks for unlimited time.

The content has been bookmarked!

There was an error bookmarking this content! Please retry.

Microsoft Enterprise Libarary 4.0 Released for Visual Studio 2008

Posted by Robert Bazinet on May 22, 2008

Sections
Development,
Enterprise Architecture
Topics
.NET ,
Enterprise Application Blocks
Tags
Microsoft ,
Dependency Injection

Microsoft released a version of their Enterprise Library 4.0 for Visual Studio 2008 and at the same time, Unity 1.1 application block, their dependency injection container.

Grigori Melnik, Product Manager from the patterns and practices team, announced the release of both the Enterprise Library 4.0 and the Unity 1.1 refresh, describing all the new features.

The MSDN Developer Center explains what this release means to developers:

This release of Enterprise Library includes a new application block (see The Unity Application Block). Unity is a lightweight, extensible dependency injection container with support for constructor, property, and method call injection. You can use the Unity Application Block as a stand-alone dependency injection mechanism without requiring installation of Enterprise Library. However, this release of Enterprise Library incorporates integration with Unity that provides new opportunities for generating instances of Enterprise Library objects.

There are also additions in functionality to several of the existing application blocks. The following sections discuss these and other changes in the current release. In addition, this release has been adapted to work with Microsoft Visual Studio 2008, Windows Management Instrumentation (WMI) version 2.0, and the Microsoft .NET Framework 3.5.

Enterprise Library 4.0

Version 4.0 of the Enterprise Library application blocks include:

  • Caching Application Block. Developers can use this application block to incorporate a cache in their applications. Pluggable cache providers are supported.
  • Cryptography Application Block. Developers can use this application block to incorporate hashing and symmetric encryption in their applications.
  • Data Access Application Block. Developers can use this application block to incorporate standard database functionality in their applications.
  • Exception Handling Application Block. Developers and policy makers can use this application block to create a consistent strategy for processing exceptions that occur throughout the architectural layers of enterprise applications.
  • Logging Application Block. Developers can use this application block to include standard logging functionality in their applications.
  • Policy Injection Application Block. Developers can use this application block to implement interception policies that can be used to streamline the implementation of common features, such as logging, caching, exception handling, and validation, across a system.
  • Security Application Block. Developers can use this application block to incorporate authorization and security caching functionality in their applications.
  • Unity Application Block. Developers can use this application block as a lightweight and extensible dependency injection container with support for constructor, property, and method call injection.
  • Validation Application Block. Developers can use this application block to create validation rules for business objects that can be used across different layers of their applications.

What's new in Enterprise Library 4.0?

  • Integration with the Unity Application Block
  • Windows Management Instrumentation (WMI) 2.0 support and improved instrumentation
  • Performance improvements (particularly, in the Logging Application Block)
  • Pluggable Cache Managers
  • Visual Studio 2008 support
  • Bug fixes

The QuickStart for all of the application blocks are available:

The Enterprise Library 4.0 is available for download from the patterns & practices Developer Center.

Unity 1.1

Unity is described as a dependency injection container that integrates with the Enterprise Library but is not dependent on it:

The Unity Application Block (Unity) is a lightweight, extensible dependency injection container with support for constructor, property, and method call injection. You can use it with Enterprise Library to generate both Enterprise Library objects and your own custom business objects. However, the Unity Application Block differs from the other application blocks included in Enterprise Library in several fundamental ways:

  • You can use the Unity Application Block as a stand-alone dependency injection mechanism without requiring installation of Enterprise Library.
  • The Unity Application Block can use configuration information exposed through configuration files to prepare the container, but you can also use code to register dependencies dynamically at run time.
  • The Unity Application Block has no dependency on the Enterprise Library core or the Enterprise Library configuration system. It contains its own built-in mechanism for reading configuration—although, if appropriate, this information can come from the normal Enterprise Library configuration file.

What is new in Unity 1.1?

  • Remove all obsolete ObjectBuilder code.
  • Fix the bug: lifetime managers with open generic types.
  • Fix the bug: RegisterType was overriding RegisterInstance.
  • Performance improvement when resolving singletons.
  • Made some internal classes public to make it easier to write certain type of extensions (the ones that need to customize how the dependencies are resolved.
  • Improved error messages when value resolution fail.

What did not make it into this release?

  • Interception mechanism is not implemented yet; it is on top of our Unity backlog though.
  • Policy Injection Application Block can still be used if AOP functionality is needed.
  • No tool support for DI configuration.

Unity 1.1 is available for download from the patterns & practices Developer Center.

A screencast of the Enterprise Library 4.0 Data Access Application Block using the Unity Inversion of Control (IoC) integration is available from David Hayden and gives a good introduction to how this can be used.

Enterprise Library 5 planning kick-off - submit your feature requests by Grigori Melnik Posted
Hands-on Labs covering all blocks in EntLib4 Released by Grigori Melnik Posted
  1. Back to top

    Enterprise Library 5 planning kick-off - submit your feature requests

    by Grigori Melnik

  2. Back to top

    Hands-on Labs covering all blocks in EntLib4 Released

    by Grigori Melnik

Educational Content

New-age Transactional Systems - Not Your Grandpa's OLTP

John Hugg discusses high volume transaction processing applications with high and low frequency profiles, and how VoltDB can be used for that purpose.

Cool Code

Kevlin Henney examines code samples to see what can be learned from them starting from the premise that one won’t write great code unless he knows how to read it.

Collaboration: At the Extremities of Extreme

Jason Ayers share the observations he made watching a team of developers collaborating in real time on the same code base, pushing XP, pair programming and continuous integration to their extremes.

Yesod Web Framework

Michael Snoyman presents Yesod, a web framework written in Haskell and containing a web server, templating, ORM, libraries (templating, gravatar, etc.).

Transactions without Transactions

Richard Kreuter and Kyle Banker on how to avoid classical RDBMS transactional systems by using compensation mechanisms, transactional messaging or transactional procedures.

Attila Szegedi on JVM and GC Performance Tuning at Twitter

Attila Szegedi talks about performance tuning Java and Scala programs at Twitter: how to approach GC problems, the importance of asynchronous I/O, when to use MySQL/Cassandra/Redis, and much more.

10 tips on how to prevent business value risk

One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.

Interview: Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives

InfoQ spoke to the authors of Software Systems Architecture on a couple of new topics, the System Context viewpoint and Agile, which have been added to the second edition.