Microsoft MVP Logo

I noticed this post the other day by SharePoint legend & Certified Master Todd Carter. In it he references the MSDN article that shows you how to setup a Windows 7 box to do SharePoint 2010 development.

By the way, if you've been under a rock, you can now do SharePoint 2010 development on a client operating system such as Windows Vista SP2+ or Windows 7 (both must be 64-bit). Couldn't do this in SharePoint 2007.

While some folks love this option, here's how I pitch it when I explain this new option when teaching one of our SharePoint 2010 development courses at Critical Path Training:

In the SharePoint 2007 timeframe, developers were left to figure out how to do SharePoint development:

Microsoft: Ideally you could install a server OS (Windows 2003/2008) on your desktop/laptop and install SharePoint on top of that.

Developer: My company won't let me install a server OS on my workstation.

Microsoft: Then install some sort of virtualization technology, like VirtualPC (or a competing product), and then install the server OS in a VM and install SharePoint on top of that.

Developer: My company won't let me do local virtualization on my workstation.

Microsoft: Then get your IT group to stand up a SharePoint server, either virtual or native, and RDP into it to do development.

Developer: My IT group doesn't have the hardware to stand up a bunch of VMs or dev servers for my team.

Microsoft: Well, then you could quit your job and go somewhere that do one of the three above options and then you could do SharePoint development.

Developer: Can I use this technique I learned from a blog post about installing SharePoint 2007 on Vista?

Random person passing by: Dude, you're crazy to do that.

In my mind, the ability to do SharePoint 2010 development on Windows 7 (or Vista SP2+) is only addressing the above scenario. In addition to just about every single reason Todd outlines in his post, I'd like to add the following:

  • Quite a few things simply don't work, or don't work the way you expect them to (User Profile Service, Search, Office Web Apps, other randomness).
  • Do you REALLY want all those SharePoint services running all the time? Better yet, do you want to have to remember some script that turns them on/off every time you want to do SharePoint development?

So how do I do it? First, I'm all about virtualization... specifically Hyper-V. As Todd says "I love being able to hit the reset button."

I have a two-part approach. I work from a home office 50% of the time and on the road teaching, presenting, mentoring, development, etc. the other 50%:

Home Office

When in my home office, I use my virtualization rig I built a few years ago. Still running Hyper-V, still loving this box. In fact I'm so dependent on this thing I'm seriously considering building a 2nd updated one to run side by side for backup purposes.

On the Road

When I'm on the road I lug around two laptops. One is my primary (Lenovo ThinkPad x200s) for doing everything such as very light development, email, writing, etc. because it's so small, portable, light and has a killer battery life. The other (Lenovo ThinkPad w500) is my workhorse I use for doing development, testing (all my load testing & memory profiling tools are here.

My my w500 I have two drives installed: the primary and a 2nd one in the modular bay (who needs DVDs?). On the primary I have Windows 7 installed natively like a traditional OS. On the other drive I have a bunch of VHDs that I boot into (I run a quad-boot system setup using this great PowerShell script). One of the bootable VHDs is a Windows Server 2008 R2 OS with the Hyper-V role enabled. From that machine I run different Hyper-V machines that are on the same drive. This setup runs great!

Comments powered by Disqus