Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Best practices to build a highly configurable software product

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.

like image 951
Kabeer Avatar asked Nov 05 '22 14:11

Kabeer


1 Answers

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.

like image 73
Mark Seemann Avatar answered Nov 11 '22 18:11

Mark Seemann