Friday, May 30, 2008

Enterprise Library

patterns & practices Developer Center Microsoft Corporation
May 2007
SummaryThis page provides an overview of the Enterprise Library 3.1. 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.
Downloads
Webcasts
PowerPoint Presentations
Quality Assurance and Testing
Hands On Labs
License
Community

ContentsOverviewGetting StartedCommunityFuture PlansFeedback and SupportAuthors and ContributorsRelated Titles
OverviewThe Enterprise Library 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 applications. In addition, they can be added to .NET 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 3.1–May 2007 contains the following general purpose application blocks:


  • Caching Application Block. Developers can use this application block to incorporate a local cache in their applications.
  • 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 an application.
  • Security Application Block. Developers can use this application block to incorporate authorization and security caching functionality in their applications.
  • 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 builder services. These functions are used by all other application blocks.
Common ScenariosEnterprise 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. Finally, you can 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 for the 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. This means that you can use the library as a tool for learning architectural, design, and coding best practices.
Audience RequirementsThis guidance is intended for software architects and software developers. 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
System RequirementsTo develop applications using Enterprise Library, you need the following:


  • Microsoft Windows XP Professional, Windows Server 2003, or Windows Vista operating system
  • Microsoft .NET Framework 2.0 or 3.0. You need .NET Framework 3.0 for:
    • The Application Block Software Factory
    • The Validation Application Block Windows Communication Foundation (WCF) adapter
    • The Exception Handling Application Block Windows Communication Foundation (WCF) exception shielding functionality
  • 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
Note Enterprise Library includes both unit test binaries and source code. You need either Visual Studio 2005 Team Edition or NUnit 2.2 to execute the unit tests. If you modify the unit test source, you will need to recompile it, which also requires either Visual Studio 2005 Team Edition or NUnit 2.2.
To use the Application Block Software Factory and the Strong-Naming Guidance Package, you need the Microsoft Guidance Automation Extensions (GAX). To modify and compile these guidance packages, you also need the Microsoft Guidance Automation Toolkit (GAT).
To use the Data Access Application Block, you need a database server running a database that is supported by a .NET Framework 2.0 data provider. This includes SQL Server 2000 or later, SQL Server 2005 Compact Edition, and Oracle 9i or later. The database server can also run a database that is supported by the .NET Framework 2.0 data providers for OLE DB or ODBC.
Contents of this ReleaseThe Enterprise Library 3.1–May 2007 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 guidance packages, 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 QuickStarts.
  • 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, as well as a class library reference.
What's NewThis release of Enterprise Library includes a new application block named the Validation Application Block, another new application block named the Policy Injection Application Block, two guidance packages, and a configuration editor that is integrated with Visual Studio. There are also additions in functionality to the Data Access Application Block and to the Logging Application Block. For information about migrating from the January 2006 release, see About the Enterprise Library 3.1 - May 2007 Release.
Enterprise Library DependenciesFigure 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 StartedEnterprise 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:


  • Download Enterprise Library.
  • Install Enterprise Library and compile all application blocks and tools.
  • Read the "Introduction" and "Scenarios and Goals" sections of the documentation.
  • Compile and run the QuickStart samples, and read through the related "QuickStart Walkthroughs" and "Key Scenarios" sections of the documentation.
  • 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.
CommunityEnterprise 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 PlansNo new releases of Enterprise Library are planned for 2007. As customer feedback is received about the May 2007 release, the patterns & practices team will evaluate when it may make sense to release an updated version and what this should contain.
Feedback and SupportQuestions? 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. 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.
Authors and ContributorsThis release of Enterprise Library was produced by the following individuals:


  • Product and Program Management: Tom Hollander, William Loeffler (Microsoft Corporation)
  • Architecture: Edward Jezierski (Microsoft Corporation)
  • Development: Fernando Simonazzi (Clarius Consulting), Chris Tavares (Microsoft Corporation), Olaf Conijn (Cap Gemini America), Adrian Alonso (Clarius Consulting), John Socha-Leialoha (Murphy & Associates)
  • Test: Hanz Zhang (Microsoft Corporation), Mani Krishnaswami (Infosys Technologies Ltd), Sateesh Venkata Surya Nadupalli (Infosys Technologies Ltd), Terrence Cyril Joseph Anthuvan (Infosys Technologies Ltd), Carlos Farre (Microsoft Corporation), Eric Blanchet (VMC Consulting), Meenakshi Krishnamoorthi (Infosys Technologies Ltd), Abhinav Bana (Infosys Technologies Ltd), Nalini S (Infosys Technologies Ltd), Sharadda Arora (Infosys Technologies Ltd)
  • Documentation: Roberta Leibovitz (Modeled Computation LLC), William French (Linda Werner & Associates Inc.), Alex Homer (Content Master Ltd), RoAnn Corbisier (Microsoft Corporation), Tina Burden McGrayne (TinaTech Inc.)
Many thanks to the following individuals who provided invaluable assistance: Dragos Manolescu (Microsoft Corporation), Dmitri Ossipov (Microsoft Corporation), Peter Provost (Microsoft Corporation), Mohammad Al-Sabt (Microsoft Corporation), Oscar Calvo (Artinsoft), Hernan de Lahitte (Southworks SRL), Tushar More (Infosys Technologies Ltd) and the Web Service Software Factory team.
Related Titles

WebConfig 配置文件读取代码

Configuration systemConfig =
WebConfigurationManager.OpenWebConfiguration("~");

// Get the <system.web> group.
SystemWebSectionGroup systemWebConfig = systemConfig.GetSectionGroup("system.web") as SystemWebSectionGroup;

我的blog开业了

从firefox上看到了一个比较爽的工具,于是开始写blog了...