Enterprise Library

 

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

patterns & practices Developer Center

Microsoft Corporation

June 2005

Summary

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. Enterprise Library features new and updated versions of application blocks that were previously available as stand-alone application blocks. All Enterprise Library application blocks have been updated with a particular focus on consistency, extensibility, ease of use, and integration.

* Important Note: The January 2005 release of Enterprise Library is no longer available to download, due to important issues discovered after the release. Customers building new applications should move to the June 2005 release. Customers who have already adopted the January release must apply the patches available on Enterprise Library Community site. Please direct any questions to the community site or to devfdbck@microsoft.com

Contents

The Enterprise Library Application Blocks
Vision and Design Themes
What Is Guidance?
Feedback and Support
Changes and Improvements in this Release
Roadmap
Collaboration
Authors and Contributors

The Enterprise Library Application Blocks

Application blocks help to 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 applications. They can be plugged into .NET applications quickly and easily. For example, the Data Access Application Block provides access to the most frequently used features of ADO.NET, exposing them through easily-used classes. The application block also adds related functionality not directly supported by the underlying class libraries.

The application blocks that comprise the Enterprise Library are the following:

  • Caching Application Block. This application block allows developers to incorporate a local cache in their applications.
  • Configuration Application Block. This application block allows applications to read and write configuration information.
  • Data Access Application Block. This application block allows developers to incorporate standard database functionality in their applications.
  • Cryptography Application Block. This application block allows developers to include encryption and hashing functionality in their applications.
  • Exception Handling Application Block. This application block allows developers and policy makers to create a consistent strategy for processing exceptions that occur throughout the architectural layers of enterprise applications.
  • Logging and Instrumentation Application Block. This application block allows developers to incorporate standard logging and instrumentation functionality in their applications.
  • Security Application Block. This application block allows developers to incorporate security functionality in their applications. Applications can use the application block in a variety of situations, such as authenticating and authorizing users against a database, retrieving role and profile information, and caching user profile information.

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.

Vision and Design Themes

Our vision is to build a broad community of customers and partners using, sharing, and extending their own application blocks that are consistent with and integrate into the patterns & practices Enterprise Library. To participate in this community, visit the Enterprise Library Community site.

The major themes of Enterprise Library are the following:

  • Consistency. All application blocks feature consistent design patterns and implementation approaches, configuration mechanisms, documentation, samples, deployment, and operational processes.
  • Extensibility. Developers are able to customize the behavior of the application blocks by "plugging in" their own code into extensibility points or by modifying the application blocks' source code. Enterprise Library also includes guidance to assist developers with building their own application blocks that integrate with Enterprise Library.
  • Ease of Use. Enterprise Library includes many usability improvements over earlier versions of the application blocks including a configuration tool, the Enterprise Library Configuration Console, that make it much easier to evaluate, install, learn, configure and develop with the blocks.
  • Integration. The application blocks are designed and tested to work well together or individually.

What Is Guidance?

Enterprise Library is a guidance offering, designed to be reused, customized and extended. It is not a Microsoft product. The following table describes some of the key attributes of code-based guidance offerings, including Enterprise Library.

AttributeDescription
SupportCode based guidance is shipped "as is" and without warranties. Customers can obtain support, but the code is considered user-written by Microsoft support staff. The patterns & practices team works with product support and will assist them with escalations as needed. Customers are encouraged to support one another through online communities.
FunctionalityProvides a flexible and architecturally sound solution to a common enterprise development challenge, which is not easy to achieve with the base platform without moderate effort or intricate knowledge of it. The guidance addresses the challenges by using base platform features and adhering to its best practices. The guidance is designed to be extended and customized by users.
ReleaseGuidance releases are typically developed in a 3-6 month life cycle. Assets are released as they become ready on the currently available platform. New versions of existing assets (possibly revised to run on later versions of the platform) are released if there is sufficient customer demand.
CompatibilityCode-based guidance is designed to help solve problems over specific versions of Microsoft products. As the products change, the guidance issued may change or become obsolete. We develop the guidance with future releases in mind when possible. There are no guarantees about guidance compatibility with earlier releases of guidance, or with past or future platform releases. A phased migration strategy is recommended, and coexistence of multiple versions of the guidance is given high priority by the patterns & practices team.
Form factorReleased as source code. Variability is provided through configuration and defined extensibility points, as well as through direct modification of the source code. Documentation focuses on how to use the asset, how to extend it, and the goals, patterns and tradeoffs driving its design.

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. Alternatively, you can send e-mail directly to the Microsoft patterns & practices team at devfdbck@microsoft.com, although we are unable to respond to every message.

Enterprise Library is a guidance offering, designed to be reused, customized and extended. It is not a Microsoft product. Code-based guidance is shipped "as is" and without warranties. Customers can obtain support through Microsoft Support Services for a fee, but the code is considered user-written by Microsoft support staff. For more information on our support policy, see What Is Guidance? earlier on this page.

Changes and Improvements in this Release

The June 2005 release of Enterprise Library is a minor update of the original version released in January 2005. This release incorporates the fixes and enhancements previously released to the community in Patches 1473 and 1475. It also includes several additional minor fixes and enhancements. A list of the changes from the January release is available here.

Like the January 2005 release, this release is designed and tested for the .NET Framework 1.1. Although it is also possible to use the June release with the .NET Framework 2.0, this release does not represent the best practices for .NET Framework 2.0 or leverage any of the new capabilities in the updated version of the platform.

Roadmap

The next release of Enterprise Library will target the .NET Framework 2.0 and Visual Studio 2005. This release will include updated versions of existing Enterprise Library application blocks that make use of the new features of the .NET Framework 2.0.

More information about this new release will be published as it becomes available. To participate in defining requirements, reviewing specifications, and testing early releases, please join the Enterprise Library Community. You can also subscribe to e-mail alerts and RSS feeds on the community site to be kept up-to-date with the latest news and releases.

Collaboration

Enterprise Library has been developed by Microsoft patterns & practices in collaboration with business partners, who provided valuable insight into industry best practices that have been incorporated into the deliverable. Enterprise Library would not have been possible without the contributions of these partners: 

  • Avanade Inc collaborated with Microsoft to develop the vision for Enterprise Library and assisted with architecture, design and development by leveraging experiences from their implementation and current deployments of ACA.NET. To accelerate development of Enterprise Library, Microsoft licensed portions of ACA.NET.
  • Bowne Global Solutions performed globalization reviews and provided feedback to improve the localizability and world-readiness of the solution.
  • Foundstone Inc performed security reviews and provided feedback to improve the security of the solution.
  • Infosys Technologies assisted with testing and quality assurance.

Authors and Contributors

The Enterprise Library was produced by the following people:

  • Program Managers: William Loeffler (Microsoft Corporation), Linh Nguyen (Avanade Inc)
  • Product Manager: Tom Hollander (Microsoft Corporation)
  • Architects: Edward Jezierski (Microsoft Corporation), Kyle Huntley (Avanade Inc)
  • Development: Scott Densmore, Peter Provost, Brad Wilson (Microsoft Corporation), Brian Button (Murphy and Associates), Timothy Shakarian, Hisham Baz, Paul Currit, Rick Zimmerman (Avanade Inc), Fernando Simonazzi (Clarius Consulting), Lenny Fenster (Microsoft Corporation)
  • Test: Mohammad Al-Sabt, Carlos Farre (Microsoft Corporation), Mani Krishnaswami, Gokulaprakash Thilagar, Rohit Sharma, Prashant Bansode, Jeevarani Radhakrishnan, Dhananjaya Rao (Infosys Technologies Ltd), Pavan Kumar Sura (Volt)
  • Documentation and Samples: RoAnn Corbisier, Nelly Delgado (Microsoft Corporation), Tim Osborn (Ascentium Corporation), Roberta Leibovitz (Modeled Computation LLC), Paul Slater (Wadeware LLC), Tina Burden McGrayne (Linda Werner & Associates Inc)

Many thanks to the following reviewers who provided invaluable assistance:

Kawarjit Bedi, Pablo Castro, Krzysztof Cwalina, Carl Ellison, Jonathan Hawkins, David Keogh, Wojtek Kozaczynski, David Lee, James Newkirk, Shanku Niyogi and Brenton Webster (Microsoft Corporation); Rudy Araujo, Yen-Ming Chen, Mark Curphey, and David Raphael (Foundstone); Benoit Morneau and Shoichi Takasaki (Bowne Global Solutions)

Next

patterns & practices Developer Center

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.
Show: