I'm starting to get my world setup to dig into SharePoint 2010. To do this, I bough 8GB of RAM for my work laptop as I need to run both SharePoint 2007 and SharePoint 2010 for demos and testing out various scenarios. I also work with a variety of customers, so will be working with both products for quite a while. My laptop was originally running on 4GB of RAM with Windows 7, and Windows Virtual PC to host SharePoint 2007...I really like this setup. The Windows Virtual PC integration with the host and wireless NIC works really well. The VM is also pretty speedy on my laptop with 2GB of RAM allocated to it. Since Windows Virtual PC doesn't support x64, and I wanted an all Microsoft solution with SharePoint 2010 in a VM, the initial plan was to setup Windows 2008 R2 with Hyper-V then run SharePoint 2010 and SharePoint 2007 in VM's hosted on my laptop. I have Hyper-V setup on a couple machines in the office and it's great. One box has Windows 2008 R2 Server Core with Hyper-V and the other has Windows 2008 with Hyper-V.
The first hurdle I hit was that I use wireless on my laptop 99% of the time. Since Hyper-V doesn't support wireless, you have to use some workarounds. Since I also use the laptop to VPN and we get policy restrictions pushed to us, I'm pretty limited on those options, so I went with the RRAS scenario where you setup NAT between the Primary OS and the VM's. This blog has a good walkthrough: http://sqlblog.com/blogs/john_paul_cook/archive/2008/03/23/using-wireless-with-hyper-v.aspx With this setup, my primary box could remote desktop into the VM's so I could map my laptop drive to the VM drive via RDP, but the VM's couldn't get DNS to the internet, so no direct downloading of patches, and I was very tied to RDP for moving files to/from the VM. I tried the comment in the above blog about setting up the DNS role on the Primary OS, but that didn't do me any good. I also hit issues where my Primary OS couldn't find the VM's when I was VPN'ed on my wireless NIC, so that was also a no go. Considering wireless in Hyper-V isn't a supported scenario, I really wasn't surprised by hitting a bunch of weirdness here.
The other issue I was hitting was that my laptop was taking 5 minutes to boot up. With Windows 7, it was taking about 1 minute. With Hyper-V enabled, you can't hibernate or put the machine to sleep, so this was also a problem. The events being logged all seemed related to networking (timing out binding IPv6, Hyper-v setting up an SPN), and not being a networking master, I didn't want to spend a ton of time troubleshooting. I did try the big hammer approach of removing all the roles I had added previously and the boot time was still in the 5 minute range.
The above two issues pushed me in another direction. I decided to take a lot of the complexity out of the picture and go back to Windows 7 as the host. I would run SharePoint 2007 in Windows Virtual PC that I was super happy with, and then run SharePoint 2010 on Windows 7. Main concern here is the use of Beta software on my main box, and how cleanly the upgrade to RTM will work, but considering I'm also running the Office 2010 beta I'll just cross that road when the product ships. Here's the MSDN article on setting up SharePoint 2010 on Windows 7 for development work. I did change the steps to some extent in that I installed SQL 2008 separately.
Couple things with this setup:
- If using local accounts (which I do), you have to run a PowerShell command to create the SharePoint 2010 Configuration Database. See this blog: http://sharepoint.microsoft.com/blogs/fromthefield/Lists/Posts/Post.aspx?ID=112
- If you want to manage when SharePoint and SQL are running, you can use PowerShell to start and stop processes. I put a script together that starts/stops IIS, SQL, and SharePoint on an as needed basis. This way you don't have timer jobs running and taking up resources when you're not using the product. The script is attached as StartStopSP2010.ps1. To run the script, you pass in a single parameter:
- Stop SP2010 --> StartStopSP2010.ps1 stop
- Start SP2010 --> StartStopSP2010.ps1 start
I created 2 shortcuts to manage this. The shortcuts point to PowerShell.exe and pass in the above commands. This allows me to pin the shortcut to the Start Menu, or the Windows 7 Task Bar and quickly start/stop SharePoint. Here's an example of what the shortcut path looks like:
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -command "D:\SP2010Manager\StartStopSP2010.ps1 start"
You also have to run the script as administrator and enable PowerShell to run .ps1 files (look for set-executionpolicy).
[Edit 1/13/2010]: Updated the ps1 file to disable/enable w3svc and iisadmin to ensure IIS does not load after a reboot.