The Microsoft Enterprise Library is a collection 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.

Downloads

Enterprise Library 4.1 – October 2008 (for .NET Framework 3.5 and Visual Studio 2008)

Discussion forum

Discussions for patterns & practices – Enterprise Library

Community

patterns & practices community site

Community Extensions

Enterprise Library Contrib

Webcasts

Taking advantage of Microsoft Enterprise Library 4.0 for Visual Studio 2008, (demo code)

Introduction to dependency injection with Unity, (demo code)

Extending the Unity dependency injection container, (demo code)

License

Microsoft Public License (Ms-PL)

Enterprise Library consists of reusable software components that are designed to assist developers with common enterprise development challenges. It includes a collection of application blocks and a set of core features, such as object generation, configuration, and instrumentation mechanisms. This release of the Enterprise Library includes one new application block, the Unity Application Block, which implements a framework that provides object generation and dependency injection capabilities, plus other new features and enhancements.

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 4.1 – October 2008 contains the following application blocks:

  • 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, as well as instance and type interception (via an extension).
  • 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.

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

Common Scenarios

Enterprise Library can be useful in a variety of situations:

  • Enterprise Library provides enough functionality to support many common scenarios that enterprise-level applications must address.
  • Enterprise Library can serve as the basis for a custom library. You can take advantage of the extensibility points incorporated in each application block and extend the application block by supplying new providers. You can also modify the source code for the existing application blocks to incorporate new functionality. You can also add new application blocks to Enterprise Library. You can either develop extensions for existing application blocks and new application blocks yourself, or you can use extensions and application blocks developed by others.
  • Enterprise Library is designed so that its application blocks can function independently of each other. You have to add only the application blocks that your application will use; you do not have to add the entire library.
  • Enterprise Library includes the source code and the unit tests for all application blocks. This means you can modify the application blocks to merge into your existing library or you can use parts of the Enterprise Library source code in other application blocks or applications that you build.
  • Enterprise Library includes documentation, QuickStart samples, and source code. Hands-on-labs and webcasts are posted as separate downloads on the Enterprise Library Home page. This means that you can use the library as a tool for learning architectural, design, and coding best practices.
Audience Requirements

This guidance is intended for software developers and software architects. To get the most benefit from this guidance, you should have an understanding of the following technologies:

  • Microsoft Visual C# or Microsoft Visual Basic .NET
  • Microsoft .NET Framework
Contents of This Release

The Enterprise Library 4.1 – October 2008 contains the following:

  • Binaries. The Enterprise Library includes pre-compiled, strong-named assemblies for all the source code.
  • Source code. The Enterprise Library includes the source code for the application blocks, the configuration tools, the unit tests, and the QuickStarts.
  • Unit tests. The Enterprise Library includes the unit tests that were created while the application blocks were being developed.
  • QuickStarts. Enterprise Library QuickStarts are brief, easy-to-understand illustrations of key application block features. Each application block includes one or more QuickStart.
  • Documentation. Enterprise Library includes documentation that can be viewed with the Visual Studio Help system. The documentation includes guidance about how to use the Enterprise Library and a class library reference.

The following two features have been removed from Enterprise Library 4.x and are now available separately:

  • The Application Block Software Factory
  • The Strong-Naming Guidance Package

Both of these features are suitable for use in many situations outside of Enterprise Library; therefore, it is appropriate to be able to download and install them separately from Enterprise Library. For more details, and to download these features, see the Enterprise Library community site on CodePlex.

System Requirements

For all application blocks except for the Unity Application Block, the Enterprise Library core features, and the configuration tools, the minimum requirements are the following:

  • Microsoft Windows XP Professional, Windows Server 2003, Windows Server 2008, or Windows Vista operating system
  • Microsoft .NET Framework 3.5
  • Microsoft Visual Studio 2008 development system (any of the following editions):
    • Standard Edition
    • Professional Edition
    • Team Edition for Software Developers
    • Team Edition for Software Testers
    • Team Edition for Software Architects
    • Team Suite

Minimum requirements for the Unity Application Block can be found on the Unity Application Block Home page.

What's New

This release of Enterprise Library is a service release that includes the following:

  • Unity interception mechanism and integration of the Policy Injection Application Block with the Unity Application Block
  • Added support for generics in the Unity Application Block
  • Added support for arrays in the Unity Application Block
  • Performance improvements
  • Usability improvements to the configuration tool
  • Visual Studio 2008 Service Pack 1 support
  • Bug fixes

For more information, please check out the Patterns and Practices website.