Enterprise Library 5.0 Product Backlog (Tentative, non-prioritized)

Refer to the following list of possible features/stories for Enterprise Library v5.0 and the codes for each feature and estimated costs for their implementation.


User Experience

UX01: Better error reporting/messaging throughout (M)

UX02: Debugging Visualizer for Unity (L)

UX03: Config IntelliSense for Unity and EntLib in XmlEditor (M)

UX04: Config IntelliSense for Unity in XmlEditor (M)

UX05: Config tool facelift - towards a more intuitive and easier to use UI (XL)


LEARN01: Discoverability and context/dependencies EntLib poster (L)

LEARN02: Notebook-style 150 page book for Architects (XXL)

LEARN03: Notebook-style 150 page book for Enterprise Developers (XXL)

LEARN04: Notebook-style 100 page book for Operations/IT management (XXL)

LEARN05: Migration guide v.2.0 ->5.0 (XL)

LEARN06: Migration guide v.3.1 ->5.0 (XL)

LEARN07: Migration guide v.4.1 ->5.0 (L)

LEARN08: Updated Quickstarts (XL)

LEARN09: Updated Hands-on Labs (XXL)

LEARN10: EntLib Overview Video (L)

LEARN11: EntLib5.0 New Features Video (L)

LEARN12: Unity Overview Video (L)

LEARN13: Unity Extensibility Video (L)

LEARN14: Unity Extensibility Guide (XL)

LEARN15: Guidance on environmental overrides in Unity (S)

LEARN15: Unity& MEF decision tree/matrix (M)


ARC01 : Architectural update: use DI container instead of one-off Object Builder factories; DI container independence (XL)

ARC02 : Simplification of the codebase (identify redundancies, obsoletes etc.) (XL)

ARC03 : Reduction of the number of assemblies (XL)


CFG01 : Config decentralization (support for config stored in multiple sources) (S)

CFG02: Improved Config API (XL)

CFG03: Support for different sections of config in different media (not just files) (XL)

CFG04: Support for multiple pieces of config for a single block in multiple places (XXL)

CFG05: Making Unity configuration less verbose (M)

CFG06: Support other config schemas for Unity config (e.g. XAML-based config)

CFG07: Unity config auto-registration: expanded conventions and helper classes to reduce need for explicit configuration (M)

Config Tool

TOOL01: Type picker improvements (sped up search, better generics UI) (M)

TOOL02: Support of Unity configuration (M)

TOOL03: Block invocation from the configuration designer (e.g. Configure a block, Right-click, Copy “Code to Invoke”, and then paste it elsewhere) (S)

TOOL04: Web-based config tool (L)

TOOL05: Easier manipulation of validation trees (potentially, drag&drop) (M)


EXT01: Simplifying writing extensions and plugging their custom configs into the config tool (XXL)

Data Access

DAAB01: DAAB & LINQ basic integration (i.e. execute a query on a database, get back an object that you can do LINQ on) (M)

DAAB02: Async ADO.NET support (M)

DAAB03: Fix: validation of sprocs parameters – do not validate (S)

DAAB04: No swallowing of SQL exceptions (S)

Exception Handling

EHAB01: Default post-handling action to ThrowNewException instead of NotifyRethrow (S)

EHAB02: Parameterized templates for exceptions (M)


CACHE01: Adding a reason to the class that informs a user why their object was removed from the cache (S)

CACHE02: Cache backing store targeting ESENT (L)


LAB01: ETW sink (?, potentially XXL)

LAB02: Async logging (text formatting done asynchronously) to cut down on load on primary thread (M)

LAB03: Automatically purging old files by the rolling trace listener (S)

LAB04: Authenticated Email Trace Listener (S)

Resource Management & Localization

LOC01: Localizability of EntLib assemblies (L)

LOC02: Localizability of exception messages and templates (S)

RAB03: Resource Application Block (a provider to get assorted resources from various media/sources) (XXL)


VAB01: Integration with WPF (XL)

VAB02: Integration with/assistance in implementing IDataErrorInfo (S)

VAB03: ArgumentValidationException.ToString() show the validation results (S)

VAB04: Decorating LINQ objects with Validation attributes (M)

VAB05: Simplifying checking for positive / negative values (S)

VAB06: Simple validating field only if the value is not null (S)

VAB07: Validation Block refactoring to allow using Unity to resolve Validators (M)

VAB08: Enabling Validation Block to be used with 3rd party object relational mappers (M)

VAB09: Honouring validation attributes defined in System.ComponentModel.DataAnnotations (S)

VAB10: Honouring MetadataType attribute (M)

VAB11: Better localization support (i.e. the first time the validator is used, the locale for the messages is defined) (M)

VAB12: Inheritance-aware object validator (M or ?)

VAB13: Support for recursive data structures (M)

VAB14: Provide NullValidator to properly "ignore nulls" instead of the "Or composite" (S-M)

VAB15: Additional validator: Number of decimal places validator (S)

VAB16: Additional validator: Validator that checks that an enum contains a value that maps onto its defined values (S)

VAB17: Validator that compares against a single specific value (S)

VAB18: RelativeDateTimeValidator update to compare against UtcNow instead of Now (S)


U01: ResolveAll to return unnamed registration too (S)

U02: Allow a mapping from a named registration to the "default" one (S)

U03: Support for passing arguments to the Resolve method (M)

U04: Container introspection (S)

U05: Unity-MEF Integration (e.g. unityContainer.Resolve<MefPart>()) (M)

U06: Clearer error reporting (M)

Unity Interception

UIN01: Generalized interceptor (XXL)

UIN02: Caching of matching policies (M)

Policy Injection

PIAB01: Implement PIAB interface that takes an interceptor type (to leverage new Unity interceptors) (S)

PIAB02: Add non-generic overloads (S)

PIAB03: New handlers (incl. RequiresTransaction and Call Forwarding) (S)



INS01: Installer allows you to pick which specific blocks to install instead of the whole package (M)

INS02: Installer ships both debug and release versions of the DLLs (S)

INS03: EntLib installers to be included as part of installers of other custom products (merge modules) (M)