Windows Installer XML as a Domain Specific Language.

Gareth Jones, who is obviously a DSL aficionado, makes a couple interesting points in his two recent blog entries.

In his first blog entry, Gareth points out that the "DSL Setup Project" in November's DSL Tools CTP is a "domain specific setup builder". I called it a "specialized setup package builder" here but Gareth's wording is far more buzzworthy. More importantly, he correctly points out that the WiX schema is a Domain Specific Language for MSI packages.

I can't say that I made that connection previously but after thinking about it for a little bit, I suddenly realized that ClickThrough is a DSL for the WiX toolset. I realize that haven't talked much about ClickThrough (because I'm still trying to work out all the major kinks) but I'll get back to it soon. And thanks to Gareth, I think I have a cool approach I can use to describe it.

In Gareth's second blog entry, he calls out how the "DSL Setup Project" doesn't pretend to cover 100% of the deployment scenarios by trapping their developers in their tool. This is extremely wise in my humble opinion. I hope this sort of open attitude about interaction with Visual Studio that spreads across the division. Personally, I've always been a bit frustrated that the VS debugger really wants me to save a solution when all I want to do is a bit of JIT-debugging.

Finally (and this is the thing that really got me excited when Grayson first showed me their solution), as Gareth points out the DSL Setup Project is mostly just text templates that transform the solution data into a .wxs file that is compiled into a MSI package. My hope is that we can get Grayson or Gareth to help us add a template or three to Votive. Imagine how useful it would be if Votive always opened with up to date information from your Visual Studio solution. Very cool.