What Is Enterprise Library?

Enterprise Library consists of a collection of application blocks and core infrastructure. All of these are reusable software components designed to assist developers with common enterprise development challenges.

Enterprise Library also provides many highly configurable features that make it much easier to manage repetitive tasks, known as crosscutting concerns, which occur in many places in your applications. These include tasks such as logging, validation, caching, exception management, and more. In addition, the dependency injection container it provides can help to simplify and decouple your designs, make them more testable and understandable, and help you to produce more efficient designs and implementations of all kinds of applications.

The basic process for using Enterprise Library involves three stages, all fully described in this documentation. Briefly, they are:

  1. Reference and deploy the assemblies you require. You only require the common assemblies plus the assemblies for the actual block or blocks you want to use in your application. You can reference the precompiled signed assemblies and install them in the global assembly cache (GAC) or just copy them into your application's bin folder. For more information, see Referencing Enterprise Library Assemblies.
  2. Configure the application to use Enterprise Library. You can use the configuration tools to add the required blocks to your application and specify their behavior or you can configure them programmatically. For example, specify the validation rules you want to apply for the Validation Application Block or the target for log entries in the Logging Application Block. For more information, see Configuring Enterprise Library.
  3. Create and use the Enterprise Library objects in your code. Write simple code to create and use the Enterprise Library objects. Each object exposes methods that help you to manage crosscutting concerns. For example, the Logging Application Block provides a LogWriter object that makes it easy to create and write log entries to a wide variety of targets. For more information, see Creating Application Block Objects.

Application blocks help address the common problems that developers face from one project to the next. Their design encapsulates the Microsoft recommended practices for Microsoft® .NET Framework-based applications development. For example, the Data Access Application Block provides access to the most frequently used features of ADO.NET, exposing them through easily used classes. In some cases, application blocks also add related functionality not directly supported by the underlying class libraries.

Enterprise Library is a collection of application blocks and services intended for use by developers who build all types of enterprise-level applications. These blocks are architecture agnostic. In addition, they generally have strict security, reliability, and performance requirements.

The goals of Enterprise Library are the following:

  • Consistency. All Enterprise Library application blocks feature consistent design patterns and implementation approaches.
  • Extensibility. All application blocks include defined extensibility points that allow developers to customize the behavior of the application blocks by adding their own code.
  • Ease of use. Enterprise Library offers numerous usability benefits, including a graphical configuration tool, a simple installation procedure, and clear and complete documentation and samples.
  • Integration. Enterprise Library application blocks are designed to work well together and are tested to make sure that they do. You do not have to use them together. Though it is possible to use the application blocks individually they still have some dependencies such as common components in the Enterprise Library core and Unity.