Building a SharePoint 2010 Development machine

Table of Contents
Install walk through
For a complete walk through with screen shots from a base Windows server follow these steps here at Install SharePoint 2010 Public Beta on Standalone Windows Server 2008

Environment Requirements

"In any development environment, you should use a computer with an x64-capable CPU, and at least 2 gigabytes (GB) and preferably 4 GB of RAM for SharePoint Foundation, and 6 to 8 GB of RAM for SharePoint Server." Setting Up the Development Environment for SharePoint Server - MSDN

* At least Windows Server 2008 64 bit OR direct onto Windows 7/Vista 64 bit

  • SQL Server 64-bit (2005 or 2008)

General Tuning Recommendations

  • Invest in an SSD drive to maximise disk I/O
  • Invest in 4GB + to ensure there are enough memory resources for your workstation
  • Invest in secondary (external) drive (SSD, ESATA, USB) - you will need it when virtualizing
  • Stop and Go scripts - Emmanuel Bergerat's post has some nice scripts to run to keep services purring

Options

Physical Machine

Pro Con
Isolated Must be 64-bit Server2008/Win7 workstation (see below)
Developer Control Tied to one instance of SharePoint, this may not be appropriate if you want to isolate your client code bases for conflicts, especially if you are targeting a specific release of SharePoint 2010 e.g. Beta 2, RTM, SP1 etc., or feature set like Foundation, Standard, Enterprise
  Hard to backup
  Will slow your normal every day work down as it'll always be running regardless of you using it or not

Option 1: Windows Server 2008 R2

Pro Con
  limitations around drivers and software support

Option 2: Windows Vista/Windows 7

Pro Con
Most organisations would have made the move to Vista already and probably planning to move to Windows 7. So this is a good option for those who don't want to worry about Virtualisation at all. Can't do User Profile imports and other server related things without other dev/test servers to connect to

Workstation Virtualisation

For a virtualised environment, a minimum of 2GB RAM is required for the guest as well as 50GB HDD space. There has been feedback that you really need 3GB. The guest virtual machines will run more efficiently if you allocate more than one CPU also.

Pro Con
isolated Need high spec'd workstation
clone, pause, snapshot your VM instances  
can migrate these to Rack Virtualisation or between workstations  
developer has full control  

Option 1: Hyper-V

Pro Con
free with Windows Server 2008 R2 your host needs to be Win Server 2008 R2
Very good performance Poor copy/paste experience

Option 2: Boot-VHD

Pro Con
feature comes with Win 7/Win Server 2008 R2 (essentially free) means you'll be booting in and out of a VMs to do non dev stuff
  Tied to whatever machine it is built on (disk virtualisation) so hard to port to new machine

More on boot-vhd here

Option 3: VMWare Workstation

Pro Con
can be run on laptop/workstation e.g. Vista/Win7 licensed product (not a lot though USD$189)
Unity mode (virtualized the Windows on your main OS - ie no server desktop)  
Teams (group VMs into teams  
Supports DirectX (faster gfx)  
Multiple snapshots  
Support x64 guests on x32 host  

Option 4: VMWare Server

Pro Con
can be run on laptop/workstation e.g. Vista/Win7 Version 2 is web based (Apache Tomcat + JSP) and may be sluggish. Opt for Version 1
free product Single snapshots

Option 5: Sun Virtual Box

Pro Con
can be run on laptop/workstation e.g. Vista/Win 7  
free  

Option 6: VMware ESXi (Can be used in small business server environments)

Pro Con
Bare metal hypervisor (very fast!) Requires dedicated hardware
Free Lacks VMware tools such as VMotion
Large hardware support  
Can move VMs between Server, Workstation and ESX  

Rack Virtualisation

Pro Con
Incredibly fast Will mean having off-workstation hardware to run ESX typically shared with other virtuals
often doesn't get priority CPU and RAM resources
Can remote debug from workstation Requires access remotely over internet if mobile
Workstations can be lower spec'd Typically not going to get one VM per Developer so not isolated
  Slower provisioning if not administrator of environment

Option 1: Hyper-V

Option 2: VMWare ESX Server

Pro Con
Bare metal hypervisor (very fast) Expensive
Includes VMotion (failover measures) Small hardware support
vSphere allows templates of servers Works best with 2+ servers (inc. management box)

Notes

Virtual PC

Can't use Virtual PC as does not support 64-bit guest and SharePoint 2010 requires this

IE support

Will not support for IE 6

Sample rigs

Dual Virtual Machine setup

This setup will work with whatever virtualization s/w you are using. The idea is to not use the SharePoint 2010 machine as a Domain Controller (which will save you a lot of installation troubleshooting/workarounds). (Tested on a HP EliteBook 6930p with VMWare Workstation 7)

Server #1

This server is a Windows Server 2008 R2 x64 Core installation with 512MB memory, 1 CPU, 1 Core.
Only install Active Directory and run dcpromo, then enable remote administration and enable the AD web services (net start adws). Nothing more should be done.
(Another good thing is that you can reuse this server and prepare the AD with sample users etc)

Server #2

This server is a Windows Server 2008 R2 x64 installation with (at least) 4096 MB, 1 CPU, 1 Core. If possible pump up the memory.
Install SQL Server 2008, SharePoint 2010, Visual Studio 2010, SharePoint Designer 2010, Office 2010. Install the Active Directory Services role, but do not run dcpromo, so you get the AD MMC snap-ins.
Note: Cap your SQL Server so that it uses at most 25% of the total memory, since SQL Server is quite greedy.
As long as you are not enabling all SharePoint Service Application this setup will run smoothly and you will have good dev experience.
Use a lot of snapshots so you can clone it and have multiple versions of this one, that will also save you a lot of time.

External References

Labels

environment environment Delete
virtualisation virtualisation Delete
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.
  1. Nov 17, 2009

    Steven Fowler says:

    My name is spelled wrong :D

    My name is spelled wrong :D

  2. Nov 19, 2009

    Piers Williams says:

    AFAIK you can just use VMWare *server* on your desktop, rather than Work...

    AFAIK you can just use VMWare *server* on your desktop, rather than Workstation, which has the added pro that it's free. I've not done this personally but a man said so down the pub, so it must be true.

  3. Nov 20, 2009

    Anonymous says:

    I can strongly recommend Option 4: Sun Virtual Box. Works fantastic and I Wouldn...

    I can strongly recommend Option 4: Sun Virtual Box. Works fantastic and I Wouldn't have thought about it if I hadn't stumbled onto this page. thank you very much

  4. Nov 21, 2009

    Anonymous says:

    I used VMWare Virtual Server 2 instead of VMWare Workstation.

    I used VMWare Virtual Server 2 instead of VMWare Workstation.

  5. Dec 07, 2009

    Toni Frankola says:

    I would nice to have actual HW spec with each option...

    I would nice to have actual HW spec with each option...


Creative Commons License
This work is licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License. Hosted generously by CustomWare