Microsoft Enterprise Library
Encyclopedia
The Microsoft Enterprise Library is a set of tools and programming libraries for the Microsoft .NET Framework. It provides an API to facilitate proven practices in core areas of programming including data access, security, logging, exception handling and others. Enterprise Library is provided as pluggable binaries and source code
Source code
In computer science, source code is text written using the format and syntax of the programming language that it is being written in. Such a language is specially designed to facilitate the work of computer programmers, who specify the actions to be performed by a computer mostly by writing source...

, which can be freely used and customized by developers for their own purposes.

Benefits

  • Improved productivity: Each of the Application Blocks provides several interfaces meant to satisfy common application concerns.
  • Configuration-driven design: Many technical decisions about the application behavior can be delayed until configuration time of the application. For instance, if an application does not properly handle an exception, instead of adding another exception handler to the code, an administrator can configure an additional exception handling policy.
  • Improved testability: Many application areas can be reconfigured to improve testing of the application in isolation.
  • It reduces the work load of the developer

Application Blocks

Each application block addresses a specific cross-cutting concern and provides highly configurable features, which results in higher developer productivity. The Application Blocks in Enterprise Library are designed to be as agnostic as possible to the application architecture, for example the Logging Application Block may be used equally in a web, smart client
Smart client
Smart Client is a term describing an application environment which:* delivers applications over a web [] connection* does not require installation * automatically updates without user action...

 or service-oriented
Service-oriented
In human sexuality, Service-oriented is a term used in the BDSM community to refer relationship dynamic.In a service-oriented relationship, the focus is on how the submissive can contribute resources to the dominant partner, provide for some of their needs or advance their goals...

 application. The patterns and practices team also produces more specialized Application Blocks that are not included in Enterprise Library, such as the User Interface Process Application Block, Aggregator Application Block, Updater Application Block and the Composite UI Application Block
Composite UI Application Block
The Composite UI Application Block is an addition to Microsoft's .NET Framework for creating complex user interfaces made of loosely coupled components. Developed by Microsoft's patterns & practices team, CAB is used exclusively for developing Windows Forms. A derivative version of CAB exists in...

.

The patterns and practices team produces a number of other deliverables that leverage Enterprise Library Application Blocks. These include the Web Service Software Factory
Software factory
In software engineering and enterprise software architecture, a software factory is an organizational structure that specializes in producing computer software applications or software components according to specific, externally-defined end-user requirements through an assembly process...

 and Smart Client Software Factory
Software factory
In software engineering and enterprise software architecture, a software factory is an organizational structure that specializes in producing computer software applications or software components according to specific, externally-defined end-user requirements through an assembly process...

.

Utilities

In addition to the Application Blocks, the standard Microsoft distribution of the Enterprise Library includes:
  • Configuration console: to visually add an Application Block to an application's configuration.
  • Security database console: to add roles, profiles and authorization rules to support the Security Application Block.

Version History

There have been several versions of the Microsoft Enterprise Library:
  • Enterprise Library 6.0 (2012) - Envisioned
  • Enterprise Library 5.0 (April 2010) - Current
  • Enterprise Library 5.0 Optional Update 1 (May 2011) - Current
  • Enterprise Library 5.0 Silverlight Integration Pack (May 2011) - Current
  • Enterprise Library 5.0 Windows Azure Integration Pack (Fall 2011) - In dev
  • Enterprise Library 4.1 (October 2008) - Active
  • Enterprise Library 4.0 (May 2008) - Active
  • Enterprise Library 3.1 (May 2007) - Active
  • Enterprise Library 3.0 (April 2007) - Deprecated
  • Enterprise Library 2.0 (January 2006) - Active/Retired
  • Enterprise Library 1.1 (June 2005) - Deprecated
  • Enterprise Library 1.0 (January 2005) - Deprecated

Version 5.0

Microsoft Enterprise Library 5.0 was released in April 2010. Public announcement by Grigori Melnik, Enterprise Library Producer is available here.
New features include:
  • Architectural refactoring fully supporting DI
    Dependency injection
    Dependency injection is a design pattern in object-oriented computer programming whose purpose is to improve testability of, and simplify deployment of components in very large software systems....

    -style of development
  • Simplification of the codebase
  • Container independence (ships with Unity but you can choose to use other DI containers)
  • Async database support
  • Data accessors
  • Fluent configuration interface support
  • Configuration schemas to enable IntelliSense
  • New configuration tool
  • Higher performing logging
  • Support for hierarchical configuration merge and redirects
  • Honouring validation attributes between VAB and System.ComponentModel.DataAnnotations
  • WPF Validation
  • Clearer error messaging throughout
  • Side-by-side support
  • A la carte installer
  • Visual Studio 2008 and Visual Studio 2010 RC support
  • Bug fixes


Note: Existing public APIs (v4.1) are mostly supported. For the list of breaking changes, see http://entlib.codeplex.com/wikipage?title=EntLib5ChangeLog#breakingChanges

Note: Several features are demoed in this video: http://blogs.msdn.com/agile/archive/2009/12/07/enterprise-library-5-0-preview-video-posted.aspx

Note: For the full Change Log, see http://entlib.codeplex.com/wikipage?title=EntLib5ChangeLog

Note: An optional update was released in May 2011. It contains fixes to Unity Interception and file configuration source. This update is required if you are using the Silverlight Integration Pack and need WCF RIA Services Integration or configuration tool support.
Available via NuGet or from http://www.microsoft.com/download/en/details.aspx?id=6836

Version 5.0 Silverlight Integration Pack

This is a port of Microsoft Enterprise Library 5.0 to Silverlight. Includes the following blocks:
  • Caching Application Block
  • Validation Application Block
  • Logging Application Block
  • Exception Handling Application Block
  • Unity Application Block
  • Policy Injection Application Block


Public announcement - http://blogs.msdn.com/b/agile/archive/2011/05/11/silverlight-integration-pack-for-microsoft-enterprise-library-5-0-released.aspx

Available as individual blocks via NuGet or as a single download

Version 5.0 Windows Azure Integration Pack


Unity 3.0 for .NET framework 4.5 Preview


Version 4.1

This release of Enterprise Library in October 2008 is a service releases 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


Note: Existing public APIs (v3.1) are still supported.

The Application Block Software Factory and the Strong Naming Guidance Package are not included in this release but are available as a separate download. Thus, there is no longer a dependency on Guidance Automation Extensions (GAX).

For the detailed list of all changes, see About This Release of Enterprise Library.

Version 4.0

This release of Enterprise Library in May 2008 includes the following:
  • 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

Version 3.1

In May 2007, Enterprise Library 3.1 was released with minor enhancements to the Validation and Policy Injection Application Blocks.

Version 3.0

In April 2007, Enterprise Library 3.0 was released. It contains new Application Blocks, a new Application Block Software factory
Software factory
In software engineering and enterprise software architecture, a software factory is an organizational structure that specializes in producing computer software applications or software components according to specific, externally-defined end-user requirements through an assembly process...

 designed to simplify the development of new Application Blocks and extensions, and new features providing better integration with .NET Framework 3.0. The 3.0 release of Enterprise Library contains the following Application Blocks:
  • Caching
  • Data Access
  • Cryptography
  • Exception Handling
  • Logging
  • Policy Injection (new)
  • Security
  • Validation (new)

Version 2.0

In January 2006, a new version of Enterprise Library was released that targeted .NET Framework 2.0. The most significant change in this release was that the Configuration Application Block was removed, and the blocks were updated to use .NET's improved System.Configuration
Base Class Library
The Base Class Library is a standard library available to all languages using the .NET Framework. .NET includes the BCL in order to encapsulate a large number of common functions, such as file reading and writing, graphic rendering, database interaction, and XML document manipulation, which makes...

 capabilities. This release also included significant improvements to the Logging Application Block, and much of the Security Application Block was removed due to similar capabilities provided in .NET Framework 2.0. The .NET 2.0 release of Enterprise Library contained the following Application Blocks:
  • Caching
  • Data Access
  • Cryptography
  • Exception Handling
  • Logging
  • Security

Version 1.1

Two releases of Enterprise Library were released for .NET Framework 1.1. The first was released in January 2005, followed by a minor maintenance release in June 2005. The .NET 1.1 releases of Enterprise Library contained the following Application Blocks:
  • Caching
  • Configuration
  • Cryptography
  • Data Access
  • Exception Handling
  • Logging and Instrumentation
  • Security

Future

Ron Jacobs, a Microsoft Evangelist, described the purpose of Enterprise Library as "filling in the gaps" of .NET development between releases of the framework. As the framework continues to advance, developers are demanding more productive development libraries.

Microsoft continues to promote Enterprise Library for "Enterprise Development", and even many projects within Microsoft IT use it.

See also

  • Unity Dependency Injection Container
  • Composite UI Application Block
    Composite UI Application Block
    The Composite UI Application Block is an addition to Microsoft's .NET Framework for creating complex user interfaces made of loosely coupled components. Developed by Microsoft's patterns & practices team, CAB is used exclusively for developing Windows Forms. A derivative version of CAB exists in...

  • Software Factories
    Software factory
    In software engineering and enterprise software architecture, a software factory is an organizational structure that specializes in producing computer software applications or software components according to specific, externally-defined end-user requirements through an assembly process...

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK