General
Greetings!
This is a general list of ideas to help the patterns & practices team plan future releases of Microsoft Enterprise Library and Unity.
Vote on the existing stories or feel free to suggest new ones.
Please note the list may not always represent the actual prioritized backlog of the development team.
-
Throw more informative exception when a type cannot be loaded by Unity
To help debug when config didn't load. Motivated by user reports similar to http://unity.codeplex.com/workitem/9223
52 votes -
Unity configuration tool
Add a graphical config tool for Unity like it already exists for the other app blocks
52 votes -
Enhanced configuration for Unity
To make container setup easier an less verbose add support for registration by conventions and a real DSL
44 votes -
Documentation for Unity
Unity lacks real documentation of all the moving parts that are hidden under the hood (strategies, policies ...) and how they interact
42 votes -
Async logging
Enable async logging. This is particulalry useful when logging via database tracelistener. It's typically slow, a lot of inserts... hence asynchrony is desirable.
41 votes -
Unity Lifetimes: TearDown should dispose objects created by container
TearDown does not do anything with the LifetimeManagers supplied ootb. It should properly dispose object(graph)s created by the container
39 votes -
Metro Style Application support for Unity
I'm following the Microsoft Yellow Brick Road and jumping on the Metro Band Wagon and expect that it will take time for tools to catch up (as it did when WPF emerged). However, I feel crippled without IOC / Unity (and Prism) - would be nice to have a Metro IOC package, supported by Microsoft, available!
30 votes -
27 votes
-
validate multiple rulesets
Allow ValidatorFactory to create a validator of more than one specified rule set or allow validator to validate based on more than one specified rule set...
24 votes -
16 votes
-
Facilities
Castle Windsor Facilities equivalent
14 votes -
New system to roll log file
Contrary to Log4Net (or to a lot of other logging mechanism like IIS logs), the rolling mechanism can cause some inconsistent dates problems.
Example with RollInterval.Midnight:
- The app is logging data on the rolling file on day n
- The app doesn’t write any data during x days
- The app is logging data on day n+x => the rollingHelper.RollIfNecessary() roll the file and put the current rolling date (n+x) as the name of the file, which is inconsistent with the content of the log file because of the check for the rolling is in the write methodIn… more
14 votes -
Use claims for authorization checks
As a developer I want to be able to leverage a ClaimsPrincipal for the authorization checks using the Security Application Block. The claims that are recognized as identity or roles should tie into the authorization providers (AuthorizationRuleProvider and AzManAuthorizationProvider). Currently the AzMan provider seems dependent on Windows identities.
14 votes -
Provide include semantics for config
I would like to extract alias definitions to a centralized config file and reference this from the master app config. See:
http://stackoverflow.com/questions/7848139/is-it-possible-to-move-the-container-alias-definitions-into-a-separate-file9 votes -
Log ActivityId to Database
I would like to log the ActivityId field of the LogEntry class to the database when using a DatabaseTraceListener. ActivityId is not currently one of the values logged to the Log table.
9 votes -
wcf service factory
Exposing a unity-managed object with wcf through a svc file is a common scenario. It would be great if Unity could provide a wcf factory out of the box, so it would be possible to use it directly instead of writing our own (many examples on the web).
8 votes -
Allow custom default LifetimeManagers
One of the things I like most about Unity, is that Unity can build object trees, even if not all types used in the object tree are explicitly registered.
However, if I want to use a custom default LifetimeManager, I do have to register all types with the custom LifetimeManager, because Unity does not support a custom default LifetimeManager.
So, the request is simple: make the default LifetimeManager type configurable.E.g.:
var container = new UnityContainer();
container.ChangeDefaultLifetimeManagerTo<ContainerControlledLifetimeManager>();8 votes -
Register multiple instances without naming them
And then resolve all these instances by ResolveAll
6 votes -
Nested Configuration
it would be great to register nested objects instead of using dendencyName. This way the xml, will reflect the object tree visually.
6 votes -
6 votes