Geeks With Blogs

News

Disclaimer


Posts in the blog are provided "AS IS" with no warranties implied or expressed. The opinions expressed here are mine alone, and may not represent those of any organization or group that I am part of.
Manesh Karunakaran

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

  1. Make the host Windows Server 2008 R2 machine your Domain Controller (AD Server)
  2. Make all your Virtual Guest OS’es join this domain.
  3. 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

  1. Open Hyper-V Manager
  2. Choose to Create a new Guest Operating system
  3. Allocate at least 2 GB of Memory to the Guest OS
  4. Choose the Windows 2008 R2 Installation Media
  5. Start the Virtual Machine to commence installation.
  6. 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,

  1. Fire up Hyper-V Manager, open your Guest OS
  2. Click on Start, and Right click on ‘Computer’ and choose ‘Properties’
  3. On the window that pops-up, click on ‘Change Settings’
  4. On the ‘System Properties’ Window that comes up, Click on the ‘Change’ button
  5. Now a window named ‘Computer Name/Domain Changes’ opens up, In the text box titled Domain, type in the Domain name from Step 2.
  6. 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:

  1. Install SQL Server 2008 KB 970315 x64.
  2. 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:

  • C:\Program Files\Common Files\Microsoft Shared Debug\Web Server Extensions\14\BIN\psconfigui.exe

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

  1. Install Visual Studio 2010
  2. 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!!

 

Posted on Friday, May 28, 2010 9:39 PM | Back to top


Comments on this post: Building the Ultimate SharePoint 2010 Development Environment

# re: Building the Ultimate SharePoint 2010 Development Environment
Requesting Gravatar...
thaxn for all
Left by توبيكات on May 28, 2010 11:09 PM

# re: Building the Ultimate SharePoint 2010 Development Environment
Requesting Gravatar...
In Step 2 you mention the installation of a domain controller is optional...
I can't get my development system to work (can't install SQL Server/SharePoint) without joining a domain, but since I don't have a domain controller I want to use for my development system, I need another vm only as domain controller... that sucks... sorry, but I still hoped to get everything on one single machine (for moving/sharing purposes).
Unfortunately I can't get such a single machine to work yet, as it seems MS is against installing a domain conroller on the same machine as the rest.
Left by Nils on Jun 09, 2010 3:01 PM

# re: Building the Ultimate SharePoint 2010 Development Environment
Requesting Gravatar...
@Nils

There are different ways to use local users for SP 2010 install, one way is to set the registry entry

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Web Server Extensions\14.0\WSS\ServerRole to SINGLESERVER

Alternatively, you can enable Single Server install by modifying installation config.xml, by including the following entry <SettingId="AllowWindowsClientInstall" Value="True"/>
Left by Manesh on Jun 10, 2010 2:39 PM

# re: Building the Ultimate SharePoint 2010 Development Environment
Requesting Gravatar...
When installing SQL 2008R2 on server 2008R2 I get a warning that is is not recommended to install SQL on a domain controller. Later, after installing SharePoint 2010 I am unable to open Central Administration and I keep getting error code http 500. Has anyone else experienced this?
Quad core/Vmware 7/8GB Ram
Left by Greg Gignac on Jun 10, 2010 5:25 PM

# re: Building the Ultimate SharePoint 2010 Development Environment
Requesting Gravatar...
@Greg Gignac

If you need to run SharePoint 2010 on a domain controller, then you have to run the following PowerShell command on your SharePoint server to enable Sandboxed Solutions:

$acl = Get-Acl HKLM:\System\CurrentControlSet\Control\ComputerName
$person = [System.Security.Principal.NTAccount]"Users"
$access = [System.Security.AccessControl.RegistryRights]::FullControl
$inheritance = [System.Security.AccessControl.InheritanceFlags]"ContainerInherit, ObjectInherit"
$propagation = [System.Security.AccessControl.PropagationFlags]::None
$type = [System.Security.AccessControl.AccessControlType]::Allow
$rule = New-Object System.Security.AccessControl.RegistryAccessRule($person, $access, $inheritance, $propagation, $type)
$acl.AddAccessRule($rule)
Set-Acl HKLM:\System\CurrentControlSet\Control\ComputerName $acl

This PowerShell command will add an ACL access rule on your server, without which SPUCWorkerProcess.exe process won't start even though Microsoft SharePoint Foundation User Code Service will start.

[Above text from Max's blog here http://blogs.objectsharp.com/CS/blogs/max/archive/2010/01/15/running-sharepoint-2010-on-a-domain-controller.aspx]

Also for a discussion on what's different on a Domain Control installation of SP2010, see this blog
http://www.toddklindt.com/blog/Lists/Posts/Post.aspx?ID=204
Left by Manesh on Jun 11, 2010 4:32 AM

# re: Building the Ultimate SharePoint 2010 Development Environment
Requesting Gravatar...
@Nils

Single Server Complete Install of SharePoint 2010 using local accounts
http://sharepoint.microsoft.com/blogs/fromthefield/Lists/Posts/Post.aspx?ID=112
Left by Manesh on Jun 11, 2010 4:40 AM

# re: Building the Ultimate SharePoint 2010 Development Environment
Requesting Gravatar...
Hi there,

This is a very nice information for a new person to dive into Sharepoint and work with it.

I am working on a project at a company where we are planning to migrate from 2007 to 2010. I need to know if there was any process or help that I can get regarding ACL to be moved from an AD in MOSS 2007 to a global LDAP directory in 2010? Has anybody have experience or know a place where I can get some info on this? Any help will be greatly appreciated.

Thank you very much

Regards
Vishwas
Left by Vishwas Setty on Jun 16, 2010 6:25 AM

# re: Building the Ultimate SharePoint 2010 Development Environment
Requesting Gravatar...
Hi, excellent article. However, I am very novice to Sharepoint. Can you please help to clarify some questions?

1. Can the setup you recommended above work in a Team environment where several developers work on the same Sharepoint project. If each Dev VM has its own local SQL Server and Sharepoint. How can Developer #2 see the changes made by Developer #1 ?

2. If we use SQL Server 2008 standard (not the R2 version), would there be any down side?

3. Is Office 2010 recommended? If yes, where should it be installed?

Thanks in advance
Left by Garry on Aug 23, 2010 11:50 PM

# re: Building the Ultimate SharePoint 2010 Development Environment
Requesting Gravatar...
Hello,

I want to set up a rig such as you're describing, but, suppose I want to set up the domain controller as a VM, and, suppose I want to use VMWare player for my virtualization environment. I've seen other posts (e.g. http://www.astaticstate.com/2010/07/how-to-create-local-sharepoint-2010.html and http://blogs.architectingconnectedsystems.com/blogs/cjg/archive/2010/05/27/Step-by-Step-SharePoint-2010-Instal-RTM.aspx . I've tried following the first one. But I get to the point where I've created the domain controller, then want to install SQL server, and the installer tells me SQL shouldn't be installed on a domain controller. So that's fine, I'll just create separate VMs. But I guess I'm not understanding something fundamental about creating these virtual network environments, namely, if I set up my DC with a static IP address, how do I get it to also see the Internet? (And is that even necessary?) Or would I need to create another network adapter through VMWare or something? I understand this is more of a networking/VMWare question but I imagine it applies to Hyper V etc. I guess my problem is, I'm a little worried about blowing away my Windows Vista install on my host machine and replacing it with Windows Server 2008 and making that a domain controller, as I'm not sure if the I.T. police in our corporate environment will come down on me with the dreaded "we don't support that configuration." Sorry if this post is a bit meandering but the gist is, I want to set up a rig such as you're describing and thinking maybe I can alter your setup only in that I would make my domain controller a VM instead of the host machine. But I want them all to peacefully co-exist and still be able to see the internet. Any tips appreciated. Thanks, -Dave

Left by David Barrows on Sep 14, 2010 10:04 PM

# re: Building the Ultimate SharePoint 2010 Development Environment
Requesting Gravatar...
@Garry,

Sorry about the late reply. here are the answers to your qns.

1. Can the setup you recommended above work in a Team environment where several developers work on the same Sharepoint project. If each Dev VM has its own local SQL Server and Sharepoint. How can Developer #2 see the changes made by Developer #1 ?

ANS: Use MS Team foundation Server for this. Also the DEV process should be robust enough to make use of the new SharePoint Solution packaging features of VS2010 to deploy the changes to other dev machines/test/production environments. If you are doing any manual step to sharepiont after deploying the latest code base that means that you have some flaws in the dev process that needs to be ironed out.

2. If we use SQL Server 2008 standard (not the R2 version), would there be any down side?

ANS: As long as you install all the required patches, there shouldnt be any problem.

3. Is Office 2010 recommended? If yes, where should it be installed?

ANS: That depends on if you are using Office 2010 inetgration in your project, if not this is an optional but nice to have thing.


Left by Manesh on Sep 19, 2010 1:33 PM

# re: Building the Ultimate SharePoint 2010 Development Environment
Requesting Gravatar...
I always set my *development* boxes to Full trust. I also then have a separate box (or boxes) to test.

The real problem is fighting something for hours (and hours and hours) to realize that it was some sort of security that you didn't have. So I open my dev box up completely (it's a VPC anyway -- natted so noone can get to it.) Then I go back and tighten things up after I'm done with development. I look at CAS as an implementation detail that has to be done just like creating a CAB file, MSI, documentation, etc.

Just my perspective ...
Left by Quick Fizz on Jan 05, 2011 1:30 PM

# re: Building the Ultimate SharePoint 2010 Development Environment
Requesting Gravatar...
Great post, could you please do a part 2 on hardware, and building a server on the cheap that is good for Sharepoint?
Left by Michael on Jul 04, 2011 11:18 PM

# re: Building the Ultimate SharePoint 2010 Development Environment
Requesting Gravatar...
Manesh, just curious about something on Step #7. I don't believe a saw exactly where you installed Sharepoint 2010. Was it on the guest OS that you installed Server 2008 R2 on or was it on your host desktop that has Server 2008 R2? Good article too. Good info. Thanks.
Left by ARW3 on Feb 04, 2012 3:29 AM

# re: Building the Ultimate SharePoint 2010 Development Environment
Requesting Gravatar...
Do you ever run into any browser compatibility issues? A few of my blog audience have complained about my site not operating correctly in Explorer but looks great in Chrome. Do you have any ideas to help fix this problem?
Left by waterproof camera on Mar 02, 2012 7:37 PM

# re: Building the Ultimate SharePoint 2010 Development Environment
Requesting Gravatar...
Nice article! I have a suggestion: It would be nice if you could expand upon step 7 a bit. There seems to be a number of different choices depending upon how you want your install to be configured. For example, I would think the "ultimate" environment would use SQL Server 2008 R2 (not express). This would go a long way toward making sure one's development processes would continue to work in a client's environment. Hope that makes some sense. Thanks for the tutorial!
Left by Inot on Mar 30, 2012 4:24 PM

# re: Building the Ultimate SharePoint 2010 Development Environment
Requesting Gravatar...
Great article about building sharepoint environment.....
One doubt, is there any different process for sharepoint 2012???????
Left by Nick Johnson on Oct 29, 2012 2:52 PM

# Custom SharePoint Development
Requesting Gravatar...
Visual Studio facilitates the capability to set up and debug your SharePoint alternatives by establishing a breakpoint and beginning the debugger. Initially you debug a SharePoint remedy in VS,VS will ask you if you want it to instantly set up your web.config.
Left by Xanthus Harrison on Jan 18, 2013 5:23 PM

Your comment:
 (will show your gravatar)
 


Copyright © Manesh Karunakaran | Powered by: GeeksWithBlogs.net | Join free