Welcome to the Enterprise Library Contrib Project!
EntLib Contrib is a community-developed library of extensions to the patterns & practices
Enterprise Library.
In short, if you wrote it, why not share it with the world so that they can benefit form all your hard work? With your help EntLib Contrib will evolve to include a wide range of additional providers, extensions, tools and even application blocks that can be used with Enterprise Library.
Note: Extensions in the core EntLib Contrib project should work against official builds of Enterprise Library, and should not require any modifications to the core Enterprise Library code. Contributions that involve modifications to Enterprise Library code will be considered, but any such contributions will be made available as separate releases on this site.
News!
- A new January 2010 release has been published. - This is not just an upgrade of all of the user contributions built for the Enterprise Library v4.1 core, but also some brand new features: For starters we have 5 new or completely updated DAAB Data Providers; IBM DB2, MySql, Oracle ODP.NET, PostgreSql and SQLite and, in addition, we also have a brand new full application block with the Query Application Block (QAB). The Resource Application Block has been upgraded to integrate with the Unity Application Block. You will also find that for this release the source code organisation is fully consistent with the core Enterprise Library v4.1. All folders and files are in the same places as for the Enterprise Library and all naming conventions consistent too with the exception that the top level namespace is EntLibContrib instead of Microsoft.Practices.EnterpriseLibrary.
- Two more Providers for the DAAB v4.1. - In addition to three new providers already in place the EntLib Contribution v4.1 core upgrade you will find another two new DAAB data providers for PostgreSQL and SQLite and also an upgraded Extended SQL Provider (SqlEx). Each provider has been given a full set of Unit Tests to match those applied to the MS SQL Server data provider and, of course, a matching Northwind Database so the tests are all consistent. Simply download the latest changeset from source code. This completes all changes to the DAAB for the time being as focus will now move to the other blocks.
- Three new Providers for the DAAB v4.1. - In the EntLib Contribution v4.1 core upgrade you will find three new DAAB data providers for Oracle ODP.NET, IBM DB2 and MySQL. Each provider has been given a full set of Unit Tests to match those applied to the MS SQL Server data provider and, of course, a matching Northwind Database so the tests can all be consistent. Simply download the latest changeset from source code. Coming soon are two more providers, one for PostgreSQL and one for SQLite. All these providers existed in the v3.1 days but without the Unit Tests and corresponding Northwind DB. In addition these data providers have been tested with the latest versions of their respective databases and .NET Providers.
What's in EntLib Contrib?
The latest release of EntLib Contrib is
Enterprise Library Contrib v4.1 Jan 2010. It contains the following functionality. For more detailed documentation,
follow this link or click on the
Documentation tab:
Common extensions
- TypeConfigurationElement<T> - A Polymorphic Configuration Element without having to be part of a PolymorphicConfigurationElementCollection.
- AnonymousConfigurationElement - A Configuration element that can be uniquely identified without having to define its name explicitly.
Data Access Application Block extensions
- DB2 Provider - IBM DB2 data provider for the Data Access Application Block.
- MySql Provider - MySql data provider for the Data Access Application Block.
- ODP.NET Provider - Oracle ODP.NET data provider for the Data Access Application Block.
- PostgreSQL Provider - PostgreSQL data provider for the Data Access Application Block.
- SQLite Provider - SQLite data provider for the Data Access Application Block.
- SqlEx Provider - This data provider extends the SqlDatabase provider included in the Data Access Application Block.
Exception Handling Application Block extensions
- SqlException Wrap Handler - Exception handler that will wrap a SqlException with different exceptions based on the SQL Server error code.
Logging Application Block extensions
- LogParser - Combines the benefits of the Enterprise Library Logging Application Block with the ability to deserialize from a human readable log text file all LogEntry objects back. This enables sophisticated log filter capabilities with LINQ on normal log files (.NET 2.0 and Orcas samples) with very few lines of code. The Log parser now includes a TimeStamp parser.
Policy Injection Application Block extensions
- PIAB Call Handlers
- CursorCallHandler: Temporarily changes the cursor while the next handler is being processed.
- OneWayCallHandler: Queues the call to the next handler on the ThreadPool
- SynchronizedCallHandler: Uses ISynchronizeInvoke to invoke the next handler
- ThreadSafeCallHandler: Synchronizes access to the next handler
- TransactionScopeCallHandler: Wraps the next handler with a TransactionScope
Query Application Block
- Query Application Block 4.1 - Next level of integration up from the DAAB providing a common interface for data stored in a DB, XML file or Web/WCF service. A full Application Block complete with configuration console designer, Unity support, group policy support and instrumentation. This block is like NHibernate without Object Mapping.
Resource Application Block
- Resource Application Block 4.1 - A full Application Block of configurable providers for Globalization and Localization, complete with configuration console designer, Unity support, group policy support and instrumentation.
Validation Application Block extensions
- Validators
- Designtime enhancements
- Other extensions
- DefaultValidators: The DefaultValidators class provides pre-allocated validators. Use them instead of instantiating new ones every time you need common validators.
- ArgumentValidation: Validate pre/post conditions of method calls.
Other separate releases hosted on this site are:
Other contributions in the source code but not in the latest release:
- The Application Block Software Factory (needs GAX)
- The Strong-Naming Guidance Package (needs GAX)
Contributing to EntLib Contrib
Would you like to join as a developer of the EntLib Contrib project to share your own extensions or improve the existing codebase? Great! Here is what you need to know
Other p&p Contrib Projects