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)
Learnability:
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)
Architecture
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)
Config
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)
Extensibility
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)
Caching
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)
Logging
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)
Validation
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)
Unity
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)
Installation/Repair/Uninstallation
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)