It’s been more than a month since SharePoint 2010 RTMed. And a lot of people have downloaded and set up their very own SharePoint 2010 development rigs. And quite a few people have written blogs about setting up good development environments, there is even an MSDN article on it. Two of the blogs worth noting are from MVPs Sahil Malik and Wictor Wilén. Make sure that you check these out as well. Part of the bad side-effects of being a geek is the need to do the technical stuff the best way possible (pragmatic or otherwise), but the problem with this is that what is considered “best” is relative. Precisely the reason why you are reading this post now. Most of the posts that I read are out dated/need updations or are using the wrong OS’es or virtualization solutions (again, opinions vary) or using them the wrong way. Here’s a developer’s view of Building the Ultimate SharePoint 2010 Development Rig. If you are a sales guy, it’s time to close this window.
Confusion 1: Which Host Operating System and Virtualization Solution to use?
This point has been beaten to death in numerous blog posts in the past, if you have time to invest, read this excellent post by our very own SharePoint Joel on this subject. But if you are planning to build the Ultimate Development Rig, then Windows Server 2008 R2 with Hyper-V is the option that you should be looking at. I have been using this as my primary OS for about 6-7 months now, and I haven’t had any Driver issue or Application compatibility issue. In my experience all the Windows 7 drivers work fine with WIN2008 R2 also. You can enable Aero for eye candy (and the Windows 7 look and feel) and except for a few things like the Hibernation support (which a can be enabled if you really want it), Windows Server 2008 R2, is the best Workstation OS that I have used till date.
But frankly the answer to this question of which OS to use depends primarily on one question - Are you willing to change your primary OS? If the answer to that is ‘Yes’, then Windows 2008 R2 with Hyper-V is the best option, if not look at vmWare or VirtualBox, both are equally good. Those who are from the Virtual PC background might prefer Sun VirtualBox. Besides, these provide support for running 64 bit guest machines on 32 bit hosts if the underlying hardware is truly 64 bit. See my earlier post on this.
Since we are going to make the ultimate rig, we will use Windows Server 2008 R2 with Hyper-V, for reasons mentioned above.
Confusion 2: Should I use a multi-(virtual) server set up?
A lot of people use multiple servers for their development environments - like Wictor Wilén is suggesting - one server hosting the Active directory, one hosting SharePoint Server and another one for SQL Server. True, this mimics the production environment the best possible way, but as somebody who has fallen for this set up earlier, I can tell you that you don’t really get anything by doing this. Microsoft has done well to ensure that if you can do it on one machine, you can do it in a farm environment as well. Besides, when you run multiple Server class machine instances in parallel, there are a lot of unwanted processor cycles wasted for no good use.
In my personal experience, as somebody who needs to switch between MOSS 2007/SharePoint 2010 environments from time to time, the best possible solution is to
Make the host Windows Server 2008 R2 machine your Domain Controller (AD Server)
Make all your Virtual Guest OS’es join this domain.
Have each Individual Guest OS Image have it’s own local SQL Server instance.
The advantages are that you can reuse the users and groups in each of the Guest operating systems, you can manage the users in one place, AD is light weight and doesn't take too much resources on your host machine and also having separate SQL instances for each of the Development images gives you maximum flexibility in terms of configuration, for example your SharePoint rigs can have simpler DB configurations, compared to your MS BI blast pits.
Confusion 3: Which Operating System should I use to run SharePoint 2010
Now that’s a no brainer. Use Windows 2008 R2 as your Guest OS. When you are building the ultimate rig, why compromise? (If you are planning to run Windows Server 2008 (not R2) as your Guest OS, there are a few patches that you need to install at different times during the installation, for that follow the steps mentioned here)
Okay now that we have made our choices, let’s get to the interesting part of building the rig,
Step 1: Prepare the host machine – Install Windows Server 2008 R2
Install Windows Server 2008 R2 on your best Desktop/Laptop. If you have read this far, I am quite sure that you are somebody who can install an OS on your own, so go ahead and do that. Make sure that you run the compatibility wizard before you go ahead and nuke your current OS. There are plenty of blogs telling you how to make a good Windows 2008 R2 Workstation that feels and behaves like a Windows 7 machine, follow one and once you are done, head to Step 2.
Step 2: Configure the host machine as a Domain Controller
Before we begin this, let me tell you, this step is completely optional, you don’t really need to do this, you can simply use the local users on the Guest machines instead, but if this is a much cleaner approach to manage users and groups if you run multiple guest operating systems.
This post neatly explains how to configure your Windows Server 2008 R2 host machine as a Domain Controller. Follow those simple steps and you are good to go. If you are not able to get it to work, try this.
Step 3: Prepare the guest machine – Install Windows Server 2008 R2
- Open Hyper-V Manager
- Choose to Create a new Guest Operating system
- Allocate at least 2 GB of Memory to the Guest OS
- Choose the Windows 2008 R2 Installation Media
- Start the Virtual Machine to commence installation.
- Once the Installation is done, Activate the OS.
Step 4: Make the Guest operating systems Join the Domain
This step is quite simple, just follow these steps below,
- Fire up Hyper-V Manager, open your Guest OS
- Click on Start, and Right click on ‘Computer’ and choose ‘Properties’
- On the window that pops-up, click on ‘Change Settings’
- On the ‘System Properties’ Window that comes up, Click on the ‘Change’ button
- Now a window named ‘Computer Name/Domain Changes’ opens up, In the text box titled Domain, type in the Domain name from Step 2.
- Click Ok and windows will show you the welcome to domain message and ask you to restart the machine, click OK to restart.
If the addition to domain fails, that means that you have not set up networking in Hyper-V for the Guest OS to communicate with the Host. To enable it, follow the steps I had mentioned in this post earlier.
Step 5: Install SQL Server 2008 R2 on the Guest Machine
SQL Server 2008 R2 gets installed with out hassle on Windows Server 2008 R2. SQL Server 2008 needs SP2 to work properly on WIN2008 R2. Also SQL Server 2008 R2 allows you to directly add PowerPivot support to SharePoint. Choose to install in SharePoint Integrated Mode in Reporting Server Configuration.
Step 6: Install KB971831 and SharePoint 2010 Pre-requisites
Now install the WCF Hotfix for Microsoft Windows (KB971831) from this location, and SharePoint 2010 Pre-requisites from the SP2010 Installation media.
Step 7: Install and Configure SharePoint 2010
Install SharePoint 2010 from the installation media, after the installation is complete, you will be prompted to start the SharePoint Products and Technologies Configuration Wizard.
(If you are using a local instance of Microsoft SQL Server 2008 (not R2), install the Microsoft SQL Server 2008 KB 970315 x64 before starting the wizard. If your development environment uses a remote instance of Microsoft SQL Server 2008 or if it has a pre-existing installation of Microsoft SQL Server 2008 on which KB 970315 x64 has already been applied, this step is not necessary. With the wizard open, do the following:
- Install SQL Server 2008 KB 970315 x64.
- After the Microsoft SQL Server 2008 KB 970315 x64 installation is finished, complete the wizard.
Alternatively, you can choose not to run the wizard by clearing the SharePoint Products and Technologies Configuration Wizard check box and closing the completed installation dialog box. Install SQL Server 2008 KB 970315 x64, and then manually start the SharePoint Products and Technologies Configuration Wizard by opening a Command Prompt window and executing the following command:
The SharePoint Products and Technologies Configuration Wizard may fail if you are using a computer that is joined to a domain but that is not connected to a domain controller.)
Step 8: Install Visual Studio 2010 and SharePoint 2010 SDK
- Install Visual Studio 2010
- Download and Install the Microsoft SharePoint 2010 SDK
Step 9: Install PowerPivot for SharePoint and Configure Reporting Services
Pop-In the SQLServer 2008 R2 installation media once again and install PowerPivot for SharePoint. This will get added as another instance named POWERPIVOT.
Configure Reporting Services by following the steps mentioned here, if you need to get down to the details on how the integration between SharePoint 2010 and SQL Server 2008 R2 works, see Working Together: SQL Server 2008 R2 Reporting Services Integration in SharePoint 2010 an excellent article by Alan Le Marquand
Step 10: Download and Install Sample Databases for Microsoft SQL Server 2008R2
SharePoint 2010 comes with a lot of cool stuff like PerformancePoint Services and BCS, if you need to try these out, you need to have data in your databases. So if you want to save yourself the trouble of creating sample data for your PerformancePoint and BCS experiments, download and install Sample Databases for Microsoft SQL Server 2008R2 from CodePlex.
And you are done! Fire up your Visual Studio 2010 and Start Coding away!!