Enterprise Library 5.0 Product Backlog Prioritization Survey

Note: This articles is updated at How To Prioritize with 100 Points.

Now's your chance to influence patterns & practices Enterprise Library 5.0.  You can do so by taking the Enterprise Library 5.0 Product Backlog Prioritization Survey.   The current backlog includes more than 100 stories.  You can suggest priorities for these items as well as suggest up to 3 new stories.  Each story has a "T-Shirt size", which is a rough estimate of the cost.  You get 100 points to spend on your priorities.  For example, you might spend all 100 points on your most important priority or you might spread your points over several stories.

T-Shirt Cost Sizes / Cost
Here's a summary of the T-Shirt sizes and relative costs:

  • S = 1
  • M = 2
  • L =4
  • XL = 8
  • XXL(epic) = 20 points

Story Categories
The Enterprise Library 5.0 product backlog is organized by the following categories:

  • User Experience
  • Learnability
  • Architecture
  • Configuration
  • Configuration Tool
  • Extensibility
  • Exception Handling
  • Caching
  • Logging
  • Resource Management and Localization
  • Validation
  • Unity
  • Policy Injection

Enterprise Library 5.0 Stories List
Here's the list of stories in the tentative Enterprise Library 5.0 Product Backlog:

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)

Additional Resources