views:

137

answers:

1

Hello. I am working on a software product that can substantially change behavior based on the configuration & meta-data supplied.

I would like to know best practices to architect / build a highly configurable software product. Considering that there are substantial number of configuration parameters, I'd like to look at something that will not affect the performance before I look at dependency injection. My platform is .Net ... I seek recommendations on architecture / design and implementations fronts.

+1  A: 

Dependency Injection is very unlikely to adversely impact performance. There may be slight (measured in miliseconds) delays when you wire up your initiali dependency graph, but compared to the usual performance culprits of most applications (very often out-of-proccess calls), it's negligible.

If you have a need to recompose a running application without restarting it, you may want to take a look at MEF, but otherwise, common DI patterns should serve you well.

Mark Seemann
Thanks Mark. While architecturally MEF is solid, it is still in beta. Further, making it 'core' part of my solution my not be so easily sellable at least at this point in time.
Kabeer