While SharePoint 2010 is similar to SharePoint 2007, there are many tips and tricks to setting up a proper SharePoint 2010 development environment. Some of these are the same as SharePoint 2007 and some are new to SharePoint 2010. I run all my development environments in a single server farm configuration on VMWare products.
- Use a 64-bit Windows Server environment as your virtual machine because SharePoint 2010 only runs on 64 bit. I am using Windows Server 2008 R2 at the time of this blog.
- Make sure your host machine has at least 8GB of RAM. SharePoint 2010 is a beast and you need to allocate at least 5GB to the SharePoint virtual machine (but hopefully you can do more than that). Otherwise it might be slow development for you.
- Make sure you host machine has a fast disk. 7200 RPM will work, but 10000 RPM or an SSD drive will make things go faster for you.
- Configure your SharePoint virtual machine to act more like a desktop operating system. SharePoint runs on a server which can make the environment act differently than a desktop operating system. I use the Windows 2008 Workstation converter from: http://www.win2008workstation.com/win2008/windows-server-2008-workstation-converter. This allows me to:
- Remove the Shutdown tracker
- Change the machine name
- Disable Enhanced IE Security Configuration
- Install Desktop Experience
- Disable Verbose messages at startup and shutdown
- Install SQL Server 2008 SP1 and the cummulative updates. At the time of writing this blog the latest cummulative updates were required to install SharePoint 2010.
- Turn the machine into an Active Directory Domain Controller
- Create an sp_admin account in my AD and use this account to setup SharePoint
- Give this account DBCreator and Security roles in the SQL Server database
- Delegate Replicating directory changes control to this user (this is used in lieu of making the user an administrator on the machine)
- In AD Users and Computers applet, right-click your domain and choose delgate control
- Choose “Create Custom Task to Deletage”
- Choose to delegate control of “This folder, existing objects in this folder”
- Choose to pick “Replicating Directory Changes”
- Setup environment variables to the 14 hive
- Setup a menu on the toolbar to the 14 hive so you have easy access to it on your server
- Enable developer dashboard on demand: stsadm -o setproperty -pn developer-dashboard -pv OnDemand
- Enable Sandbox Solutions to work on a Domain Controller (typically they don’t). Use the following PowerShell script:
$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



