64bit DinnerNow, testing, Virtual Server and Hyper-V

A few people have asked questions about, or have had trouble installing the latest version of DinnerNow on 64bit Vista machines. I thought I'd take some time out to explain the 64bit story and how you can get things going.

First, we don't support 64bit in the installation. We do support Vista, Vista SP1 and Windows Server 2008, but only 32bit versions.

Why you may ask? Isn't 64bit the future? (or the present depending upon your outlook in life?)

The simple answer is testing.

To get 2.5 out the door, I have to be fairly sure that it will install on a computer outside of Redmond. This means for each test pass I do, I use 3 separate VPC's, one for each OS. The starting point is a bare OS, with none of the prerequisites installed. One by one the prerequisites are installed. If the Dependency Checker fails at any point in any OS, the OS is rolled back to the start, and the test begins again. I use undo disks for this.

Once the DC passes, the undo disks are merged creating a base with the installed prerequisites.

The next task is the walk through document that we include with the install. You can find this in the documents folder. DN is installed fresh and the walk though is attempted. Each time I have to rebuild, we roll back the undo disks and start the walk through again. This is repeated for each OS, so that's all of that, 3 times.

Even worse, if Vista and Vista SP1 pass, then server fails a which requires a code change, the tests are restarted on ALL OS's. (How do I know the fix didn't break something on another OS?). I should really automate this testing, and at some point I may well do that.

So back to 64bit, to support 64bit, not only would the DC require more configuration, but I'd now have to run through 6 complete passes. This is not something I'd like to get to without some serious testing automation.

The other problem with 64bit, is the hardware we have for testing, only in the last week have I found time to upgrade to Hyper-V, which gives me the ability to run a 64bit guest OS. As a side note, Hyper-V is incredible. Even the test version we have runs more guests per server than Virtual Server did. Also if you are brave enough for a core install, its even better. ooooo and having 2 CPU's allocated to your VPC is pretty darn cool too.

The last part of the "why doesn't DinnerNow run on 64bit" is the size of the DN team. There is no build labs, ship teams, test teams, product planners, developers, UX teams or anything else. If there is ever more than 2 people working on DN, its because we have contracted some development out. The final push on DinnerNow 2.5 was James and myself. Other people have helped along the way, and without them we'd never ship anything, but do keep this in mind.

So will DN work on 64bit. Yes it does. The main blocker is the automated install and configuration. So what you have to do is look in the scripts/install folder. Look in the runme.ps1 powershell script file.

    1:  . .\library.ps1
    2:  cd ..\..
    3:  $DinnerNowRoot = (Get-Location).Path
    4:  cd scripts\install
    5:  [Environment]::SetEnvironmentVariable("DinnerNow",$DinnerNowRoot,"machine")
    6:  $env:DinnerNow=$DinnerNowRoot
    8:  new-DatabaseAlias
   10:  invoke-SqlRestoreCommand
   12:  new-WFTrackingDatabase
   14:  Create-SQLASPMembership
   16:  enable-SvcExtensions
   18:  create-DinnerNowVdir
   20:  new-selfcert
   22:  bind-SSLCertificate
   24:  & ".\Build DinnerNow.bat"
   26:  Enable-IISCopyrightHandler
   28:  Deploy-Gadget
   30:  Create-desktopicons

You should see the first few lines load library.ps1. This is where most of the install/configuration code lives. (yes PowerShell is used for almost everything). After that is simple calls to scripts within the library. To get going on 64bit, all you need to do is manually work through the runme.ps1 file one script at a time. Sometimes the script will just work, sometimes you will need to change some paths. Hopefully the scripts are too cryptic and you should get through them.

One last tip. Don't do this on your only machine. Use a 64bit Virtual machine, or a spare. That way when you wreck something you can just role back your undo disc and start again.

Good Luck.