We decided to make the jump to MSDeploy/WebDeploy Parameterization for changing our configuration files in lieu of Config Transformation a few weeks ago. This was a tough decision as I had grown fond of and evangelized Config Transforms for so long. Config Transforms served us well for several years but at the end of the day Parameterization provided more value long term.
Some shortcomings of Config Transforms included:
- Only work for XML files – in some situations we needed to edit other types of files per environment
- Transform occurs at build time – this was the biggest problem; we discussed
- SlowCheetah in maintenance mode – we used SlowCheetah for transforming non-config files and its tooling
Benefits of Parameterization:
- Parameterize any type of file (SQL script, PHP file, PowerShell script, etc.)
- Parameterization occurs at deploy time
- Continued investment from Microsoft
- Native support for MSDeploy packages
- Parameter documentation/naming
- Simple key/value SetParameters files
- Supported in IIS and WPI
Other bloggers have compared these technologies as well. Given our research I feel confident Parameterization was the right choice.
As I started to convert our first app I found one big deficit for Parameterization from a tooling perspective and that was a quick preview option to see the results parameterization. I quickly checked the VS Gallery and Bing to find an similar tool but found none. I even contacted a few folks about Microsoft but they didn’t know of one either.
So I built one.
This was my first Visual Studio Extension so it took be a few days get my feet wet but it works great and fills the gap. I hope Microsoft provides this out of the box at some point but until then I will try to keep it up-to-date and fix any bugs.
Give it a try and let me know what you think.
If your curious how it works or how to develop a VS Extension, I also put all the source on GitHub at