2 Coolest Things: Boot to VHD, and TFS Basic

This is an email that I sent to my co-workers, and decided that it's something I should share with the masses.  I've been doing the same job for almost 6 years, not a whole lot gets me jazzed about technology these days.  This past week, I had 2 moments where I sat up in my seat and gave thanks to the Gods in Redmond.  So, here's the email that I sent to my group.


From: Kirk Evans

To: Harry Mower's Direct Reports

Ya know those moments when you read something, try it, and then you stand back in amazement that it works so easily?  I had two of those moments this week.  The two coolest things I have learned about lately are Boot to VHD and TFS Basic. 


Boot to VHD

I have 2 machines, and I tried to use Hyper-V.  Problem is that you only can allocate up to 70% of the RAM for your machine without causing perf issues, so a machine with 8GB RAM can only handle up to a 5.6GB VM.  Some of the technologies that I am showing these days require at least 6GB (especially those that haven't gone through perf testing yet), so the loss of RAM is very painful.  The VMs can't use wireless due to corp policy restrictions on connection sharing, and can't use USB, and can't see the host machine, and the list goes on.  You can try to dual boot machines, but then you run into problems when you want to install the same program on both OS's on the machine... some programs flat out don't like to be installed twice on the same drive.


Then I learned about Boot to VHD.  In short, you can create a VHD using Windows 7 or Windows Server 2008 R2 and then boot into it.  Why this is so cool is that you get all of your RAM (not just 70%).  You get access to USB.  You get wireless networking.  You even see the C: drive for your primary OS.  It's not a virtual machine, the VHD is just a container.  The coolest aha moment was when I copied the VHD from my Windows Server 2008 R2 machine to my Windows 7 machine and then booted into it.. from a completely different machine, different hardware, different OS.  I can now safely install, uninstall, wipe clean, etc with various beta products without affecting my day-to-day productivity environment.  And when the beta expires or a new version comes out, I can just delete the .VHD.  So incredible.


You just have to try this to get the full aha moment.  http://www.hanselman.com/blog/LessVirtualMoreMachineWindows7AndTheMagicOfBootToVHD.aspx


TFS Basic

I didn't grasp this when Hans and David presented to us.  This is just flat out cool.  I can create a small VHD with a minimum footprint for Team Foundation Server that allows me to do just workitems, builds, and source control.  It took less than 20 minutes to put together a small VHD that I can now use with my Visual Studio 2010 demos to quickly connect to source control, check in, create work items, and run a team build.  Here's what's so cool... I only installed Server 2008 R2 and TFS.  I didn't have to install SharePoint, SQL, I didn't have to do anything to make a domain controller, I only had to add the web server role and install TFS with the Basic configuration.  It installs SQL Express and does everything else for me.  So easy. 


Consider creating a Boot to VHD image with TFS and Expression Studio in it to show off the TFS integration without a huge amount of processor overhead.  It's one thing to show a slide and explain away "yeah, you can do that."  It's completely another to show a check-in from Blend.  This is awesome.