Test Drivin’ and installin

I’ve been on vacation – which really means I haven’t done any work for the last few weeks. Now I’m back and working on a super cool project, which I will share in a few weeks.

The project involves writing some code which is not part of DinnerNow! (Although we did drop an Orcas Beta 2 version this week on codeplex http://www.codeplex.com/DinnerNow/Release/ProjectReleases.aspx?ReleaseId=6232)

Since we learnt a bunch of stuff building DinnerNow, I thought it would be good to adopt the best practices from the start.

First,  I’m adopting a TDD approach. So you would think my first piece of code was a test. WRONG! My first piece of code is the installer!

Installer? – there is nothing to install. Correct. But there is still an installer project, which compiles and builds and installs pretty much nothing. (It actually installs a DLL from the 1st project – the DLL contains an empty class otherwise you cannot build an installer). I’ve decided to use WIX as the installer technology (the same as we used for DinnerNow)

2nd task – another Installer! That is correct, since this is another project that won’t be shipping binary code (it’s a sample), there needs to be a way to install the source code. Since I now have source code, the first installer, I need a way of installing that.

So now I have 2 installers and no code to speak of. What does that give me. Well, I am already in “ship” mode. I don’t have to scramble around at the end of the project, figuring out how to install and configure things.

If someone wants to take a look or to test, I hit F5 and out pops an MSI.

Next, a unit test for a Windows PowerShell CmdLet that doesn’t exist…