I read Joel Oleson’s recent blog post called The Great Virtualization Debate: What to do? SharePoint 2010 for Laptops and thought I would chime in with a few comments.
So far my personal preference for developing SharePoint 2010 solutions on my laptop is to install it directly on Windows 7. Unlike running it virtualized I can more efficiently use my very limited memory (4GB) and other system resources. If I throw it up into a virtual image I am already limiting the SharePoint environment to 3GB or less plus there is the overhead of the guest operating system. So by the time everything is said and done SharePoint is down to about 2GB of ram available. This includes trying to run SQL, SharePoint and Visual Studio. Not a good experience at all.
One argument Joel had against running SharePoint 2010 directly on Windows 7 is the downside of having the services eating up your RAM all the time. I just noticed that Joel did update his original post stating that you can disable and stop the services supporting SharePoint when they are not needed, freeing up RAM and CPU resources. This is exactly how I have configured my system. When I need to work with SharePoint 2010 I kick off a PowerShell script that starts up all of the services in the proper order. Within a couple minutes I am ready for some coding. Once I am done I can run a 2nd script to shutdown the SharePoint services and recover all of the used RAM and processing power.
I would make one note of caution here. I have seen some scripts for disabling and shutting down services that I feel handle things in the wrong order. I would strongly advise against stopping the SQL service before stopping the other SharePoint services. The last thing we want is to end up with some strange state because SharePoint was doing a bunch of database insert / updates / deletes as we shut down SQL. Sure SQL is transactional and that shouldn’t cause any problems… the transactions would either complete or be rolled back. I guess maybe I am just a bit paranoid here and don’t want to end up losing a bunch of content.
Bottom line is, do what makes sense for your setup. For me I don’t want to be dual booting my machine and losing access to my Outlook inbox or other applications just so I can do development. I don’t want to eat up a bunch of memory using VirtualBox or some other virtualization product to host a guest OS with SharePoint on top of it. I also don’t want to install a server OS and lose out on power management and other nice little features I have come to love in a desktop OS. Developing for SharePoint directly on Windows 7 works very well for me.