Saturday, September 25, 2010

Managing configuration settings for multiple environments

One of the design problems I encounter in each IT project is where to store the configuration settings. .NET offers a lot of options to store this information, with the app.config and web.config as the most obvious one.

One problem with this approach is that you have to update these settings when you deploy your application to a different environment, a manual and error-prone process. Of course with the new web deploy feature in .NET 4.0, you’ll have the option to merge multiple web.config files together but this only works for web applications and you’ll need good knowledge of XSLT transformations.

Another more simple solution is to store your environment specific configuration in the environment itself.

If the only thing different in each environment is in one place, in one file in that environment, how easy will it be to tell what is different? By making the configuration for an environment live in the environment and in one place, you take the responsibility of managing the configuration away from the build process and put it in one known place…

How do you manage your environment settings?

No comments: