Enterprise Library feature voting: The results are in!

We had a fantastic response to the Enterprise Library for .NET Framework 3.0 feature prioritization survey, with over 300 people sharing their ideas. I wanted to share the results, as we found them to be pretty interesting.

But first, it's important for everyone to understand that while customer feedback such as this is the most important factor in determining what we build, it's not the only factor. We also need to consider things like project resources, the skills we have on our team, alignment with current and future Microsoft products and p&p guidance, and so on. At this stage we haven't been able to consider all of these factors, so we can't say exactly what will actually make it into the new release of Enterprise Library - but it is safe to say that it will be heavily inflenced by the results of this survey.

And now, the results:

The first graph shows the number of points allocated to each feature in the survey. We used a simple algorithm giving 20 points for a Priority 1 vote, 19 for a Priority 2 vote, down to 1 point for a Priority 20 vote. (If there are any statisticians in the audience who would like to suggest a different approach for analyzing the results, let me know :-). Here's what you told us:

Here is the legend to help you decipher this chart:

Library Management

  • LM1: Simple Strong-naming
  • LM2: Ability to create custom developer installs
  • LM3: Ability to create custom production installs
  • LM4: Mini-Factory for building your own blocks and providers

New Blocks

  • NB1: Validation
  • NB2: Data/XML aggregation
  • NB3: User settings
  • NB4: Business Rules
  • NB5: Workflow
  • NB6: Plug-ins
  • NB7: Event Broker

Core Architecture

  • AR1: Manageability extensions for configuration (WMI, Group Policy)
  • AR2: Hardened SQL Configuration Source
  • AR3: Support for different configuration sources for each section
  • AR4: Default behavior for blocks with no configuration
  • AR5: ObjectBuilder / IOC enhancements
  • AR6: User of typed parameters instead of strings

Configuration Tool

  • CT1: Environmental Overrides
  • CT2: Support for encryption from the tool
  • CT3: Edit AppSettings and other .NET settings from the configuration tool
  • CT4: Config tool embedded in the Visual Studio IDE
  • CT5: Web-based configuration tool
  • CT6: Improved type loading behavior when assemblies can't be found

Caching Application Block

  • CA1: Configurable expirations

Cryptography Application Block

  • CR1: Asymmetric crypto support
  • CR2: Tools for key management in a web farm

Data Access Application Block

  • DA1: Batch support
  • DA2: ODP.NET provider support
  • DA3: Richer transactions support
  • DA4: Test database connections from the configuration tool

Exception Handling Application Block

  • EH1: Localization of exception messages
  • EH2: WCF integration (exception shielding / fault mapping)

Logging Application Block

  • LO1: Support for localized log messages
  • LO2: WCF pipeline integration
  • LO3: Strongly-typed event log entries
  • LO4: Per-source filtering
  • LO5: Local or UTC timestamps in formatted log messages
  • LO6: Reflected property tokens
  • LO7: Reliability enhancements using Critical Finalizers
  • LO8: Rolling flat file TraceListener
  • LO9: Log viewer tool
  • LO10: Improved performance and locking behavior for FlatFile
  • LO11: Create event sources from tool

Security Application Block

  • SE1: Finer-grained authorization

Docs and Samples

  • DS1: Docs and scripts to get all unit tests to pass
  • DS2: Detailed documentation for ObjectBuilder
  • DS3: More code samples
  • DS4: ASP.NET QuickStarts/Samples
  • DS5: Hands-On Labs in the box

I also did another graph that shows the totals for each feature area by combining all of votes for each individual feature. This graph isn't quite as useful for prioritization as it's highly unlikely we'll get to everything on the list - but it does show which feature areas people are most interested in:

I hope you found this interesting - as we get a more detailed picture on what will actually make the cut, we'll keep you in the loop.