Enterprise Library for .NET Framework 2.0

Retired Content

This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This page may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.

The latest Enterprise Library information can be found at the Enterprise Library site.


patterns & practices Developer Center

January 2006


This page provides an overview of Enterprise Library for .NET Framework 2.0. The patterns & practices Enterprise Library is a library of application blocks designed to assist developers with common enterprise development challenges. Application blocks are a type of guidance, provided as source code that can be used "as is," extended, or modified by developers to use on enterprise development projects. This release of Enterprise Library provides similar functionality to the previous releases for the .NET Framework 1.1; however, Enterprise Library has been redesigned to use the new capabilities of the .NET Framework 2.0.


Enterprise Library for .NET Framework 2.0, January 2006

Enterprise Library for .NET Framework 1.1, June 2005


Enterprise Library for .NET Framework 2.0: Overview

Enterprise Library for .NET Framework 2.0: Core Architecture

PowerPoint Presentations

Enterprise Library for .NET Framework 2.0: Overview

Enterprise Library for .NET Framework 2.0: Core Architecture

Hands On Labs

Enterprise Library for .NET Framework 2.0: Hands On Labs


Enterprise Library Community


What’s New
Getting Started
Future Plans
Feedback and Support
Authors and Contributors
Related Titles


Application blocks help address the common problems that developers face from one project to the next. They are designed to encapsulate the Microsoft recommended best practices for .NET-based applications. In addition, they can be added to .NET-based applications quickly and easily. For example, the Data Access Application Block provides access to the most frequently used features of ADO.NET 2.0 in simple-to-use classes, thus boosting developer productivity. It also addresses scenarios not directly supported by the underlying class libraries.

Different applications have different requirements, and you will not find that every application block is useful in every application that you build. Before using an application block, you should have a good understanding of your application requirements and of the scenarios that the application block is designed to address.

Enterprise Library–January 2006 contains the following general purpose application blocks:

  • Caching Application Block. With this application block, developers can incorporate a local cache in their applications.
  • Cryptography Application Block. With this application block, developers can incorporate hashing and symmetric encryption in their applications.
  • Data Access Application Block. With this application block, developers can incorporate standard database functionality in their applications.
  • Exception Handling Application Block. With this application block, developers and policy makers can create a consistent strategy for processing exceptions that occur throughout the architectural layers of enterprise applications.
  • Logging Application Block. With this application block, developers can include standard logging functionality in their applications.
  • Security Application Block*. With this application block, developers can incorporate authorization and security caching functionality in their applications.

Enterprise Library also includes a set of core functions, including configuration, instrumentation, and object builder services. These functions are used by all other application blocks.

Common Scenarios

Enterprise Library can be useful in a variety of situations:

  • Microsoft Visual C# or Microsoft Visual Basic .NET
  • Microsoft .NET Framework 2.0

System Requirements

To develop applications using Enterprise Library, you need the following:

  • Microsoft Windows 2000, Windows XP Professional, or Windows Server 2003 operating system

  • Microsoft .NET Framework 2.0

  • Microsoft Visual Studio 2005 development system (any of the following editions):

    • Microsoft Visual Studio 2005 Standard Edition
    • Microsoft Visual Studio 2005 Professional Edition
    • Microsoft Visual Studio 2005 Team Edition for Software Developers
    • Microsoft Visual Studio 2005 Team Edition for Software Testers
    • Microsoft Visual Studio 2005 Team Edition for Software Architects
    • Microsoft Visual Studio 2005 Team Suite


    Enterprise Library includes unit test source code. To compile and execute the unit tests you need either Visual Studio 2005 Team Edition or NUnit 2.2. For instructions about how to use the unit tests, see the "Unit Tests" topic in the Enterprise Library documentation

In addition, each application block may have further requirements. See the documentation for the individual application blocks.

Contents of This Release

Enterprise Library for .NET Framework 2.0–January 2006 contains the following:

  • Source code. Installing Enterprise Library places source code for the application blocks, configuration console, and QuickStarts into the installation directory. To execute the QuickStarts or the Enterprise Library tools, you must first build the Enterprise Library source code. For instructions about how to build Enterprise Library, see "Building the Enterprise Library" in the documentation.
  • Unit tests. Enterprise Library includes the unit tests that were created while the application blocks were being developed. For more information, see the documentation for the appropriate application block and the unit test documentation.
  • QuickStarts. Enterprise Library QuickStarts are brief, easy-to-understand illustrations of key application block features. Each application block includes one or more QuickStarts.
  • Documentation. Enterprise Library includes documentation that can be viewed with the Visual Studio Help system. The documentation includes guidance about how to use Enterprise Library, as well as a class library reference.

What's New

The January 2006 release of Enterprise Library is the first official release targeted for .NET Framework 2.0. For more information about updates to the individual application blocks, see About the January 2006 Release.

Migrating from Previous Releases

Enterprise Library–January 2006 uses features that are available in .NET Framework 2.0. Most of the changes to the application blocks are internal and will not affect your client code. However, there are changes that require you to modify your existing applications, configuration data, and custom providers.

The documentation for each application block includes a description of the public API changes. For detailed migration guidance, see the application block documentation and QuickStart samples.

Configuration data is treated differently in Enterprise Library–January 2006 than in earlier releases, and this change affects all application blocks. You must migrate existing configuration information from earlier releases. The Enterprise Library–June 2005 release stored the application block configuration data in a location separate from the application configuration file. By default, this location was an XML file specific to the application block. With this release, the default location for application block configuration data is the application configuration file. For a description of how to migrate your existing application for use with Enterprise Library–January 2006, see Migration Information.

You must update any custom database providers to reflect how Enterprise Library–January 2006 passes configuration information to providers. In addition, some application block changes will require you to implement a new interface for certain providers.

Enterprise Library Dependencies

Figure 1 illustrates the interdependencies of the application blocks that make up Enterprise Library.


Figure 1
Interdependence of application blocks

All the application blocks are designed to have a limited number of dependencies so that they can be used individually as well as with other application blocks. All application blocks depend on the Enterprise Library Core, which is a logical grouping made up of the following subsystems:

  • The Common assembly, including instrumentation.
  • Configuration helper classes, design-time components, and the Enterprise Library Configuration Console.
  • The ObjectBuilder subsystem.

Getting Started

Enterprise Library has been developed as a result of analyzing common enterprise development challenges and successful solutions to these challenges. However, because each application is unique, you will not find this application block suitable for every application. You should evaluate each application block and determine its applicability to your projects. Microsoft suggests that you dedicate at least half of a day to explore each application block. The following is a suggested evaluation approach:

  1. Download Enterprise Library.
  2. Install Enterprise Library and compile all application blocks and tools.
  3. Read the "Introduction" and "Scenarios and Goals" sections of the documentation.
  4. Compile and run the QuickStart samples, and read through the related "QuickStart Walkthroughs" and "Key Scenarios" sections of the documentation.
  5. If the application block looks like a good fit for your application, try implementing a simple use case in your application or in a throw-away prototype application using the application block.


Enterprise Library, like many patterns & practices deliverables, is associated with a community site. On this community site, you can post questions, provide feedback, or connect with other users for sharing ideas. Community members can also help Microsoft plan and test future deliverables, and download additional content such as extensions and training material.

Future Plans

No new releases of Enterprise Library are planned for 2006. As customer feedback is received about the January 2006 release, the patterns & practices team will evaluate when it may make sense to release an updated version and what this should contain. The team will also evaluate the opportunity to update Enterprise Library as new platform technologies such as WinFX and Language Integrated Query (LINQ) are released. In the meantime, the team is focusing on new deliverables that will assist developers in using multiple application blocks together to form solid end-to-end applications. More information about this initiative will be available on the Enterprise Library community site.

Feedback and Support

Questions? Comments? Suggestions? To provide feedback about this application block, or to get help with any problems, please visit the Enterprise Library Community site. The community site is the preferred feedback and support channel because it allows you to share your ideas, questions, and solutions with the entire community.

Enterprise Library is a guidance offering, designed to be reused, customized, and extended. It is not a Microsoft product.

Authors and Contributors

This release of Enterprise Library was produced by the following individuals:

  • Program Manager: William Loeffler (Microsoft Corporation)
  • Product Manager: Tom Hollander (Microsoft Corporation)
  • Architects: Edward Jezierski, Jonathan Wanagel (Microsoft Corporation)
  • Development: Scott Densmore (Microsoft Corporation); Brian Button (Murphy and Associates); Fernando Simonazzi (Clarius Consulting); Olaf Conijn (Macaw); Lenny Fenster, Brad Wilson, Peter Provost (Microsoft Corporation)
  • Test: Mohammad Al-Sabt (Microsoft Corporation); Mani Krishnaswami, Gokula Thilagar, Jeevarani Radhakrishnan, Manickavasagam Shanmugasundaram, Meenakshi Krishnamoorthi, Umashankar Murugesan (Infosys Technologies Ltd); Bhavin Jayantilal Raichura; Pavan Kumar Sura (Volt); Carlos Farre (Microsoft Corporation)
  • Documentation: Tim Osborn (Ascentium Corporation); Roberta Leibovitz (Modeled Computation LLC); Alex Homer (Content Master Ltd); Sharon Smith (Linda Werner & Associates Inc.); Tina Burden McGrayne (TinaTech Inc.); Nelly Delgado (Microsoft Corporation)

Many thanks to the following reviewers who provided invaluable assistance: Brian LaMacchia, Carl Ellison, Mike Downen, Pablo Castro, Eric Deily, Krzysztof Cwalina, Jonathan Keljo, Shanku Niyogi, Stefan Schackow, Dave McPherson, Thomas Marquardt (Microsoft Corporation)

Related Titles


Retired Content

This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This page may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.

The latest Enterprise Library information can be found at the Enterprise Library site.