Creating an awesome SharePoint development environment on Windows 8


I have been using Windows 8 Professional with Hyper-V for about 2 months now, and I thought I would take a few minutes to post about my setup – as I think it works very well for SharePoint development. I’m not intending to say this is the best setup, but it works well for me and I’m sure there are others who may be wanting a similar setup.

I’ll try to break the post down into chunks, as there are several pieces to this puzzle.

The Laptop

My laptop is an HP EliteBook 8570w, with 32GB RAM and i7 quad-core processors. It is running Windows 8 Professional, and I use Hyper-V for my virtualization. The beauty of this setup is with Windows 8 and Hyper-V, I can actually use things like hibernation – where in the past i would’ve used Windows Server with the Desktop Experience. While it looked like Windows 7 and in reality worked really well, the one thing missing was the ability to hibernate. In addition, there were some things that just didn’t quite work on a Server OS.

Here’s a screenshot of Task Manager, as you can see, there’s a whole bunch of RAM as well as 4 Cores and 8 Logical processors. Pretty sweet eh? 🙂

TaskManager

The Hyper-V Setup

As mentioned above, Hyper-V is my virtualization platform of choice. The VMware folks will probably have plenty of arguments for why I could have used VMware instead, but Hyper-V is free and included with the Windows 8 Professional license. It works fantastically well and I can honestly say I’ve never had an issue with it for what I need it for.

Hyper-V is pretty simple to use, and in my case I’m using it to run a few VMs for different purposes. Here is what I have running currently:

  1. Domain Controller – this is a Windows Server 2012 machine with 1GB of RAM. I’ve got a domain at AdventureWorks.com.
  2. SharePoint 2010 – this is a Windows Server 2008 R2 machine with 10GB of RAM. It is sp2010.adventureworks.com.
  3. SharePoint 2013 – this is a Windows Server 2012 machine with 12GB of RAM. It is sp2013.adventureworks.com
  4. Office Web Apps 2013 – this is a Windows Server 2012 machine with 6GB of RAM. It is owa2013.adventureworks.com

The Networking

The piece that brings all of this together is networking. Since I am running this on a laptop with Windows 8 as my host operating system, it is important that my host have access to the internet. However, it’s also critical that my host can access each of my VMs without issues. Luckily, Hyper-V has a great solution to that problem.

Internal Network

Windows Hyper-V has a Virtual Switch Manager which allows for easy configuration of networking for your virtual machines. In my environment I have what I consider to be a fairly simple setup. I’m sure you can do some pretty complex networking, but I simply didn’t need to.

My requirements were:

  1. My host must be able to access all VMs
  2. My VMs must all be able to access each other
  3. My VMs must all be able to access the web

With those requirements in mind, here’s how my Internal Network is configured:

Host

My host is using 10.0.10.100 as its IP address. Notice I’m using 10.0.10.1 as the DNS IP address, that’s the IP of my Domain Controller – which means I can use name resolution from my DC…

nic1

Domain Controller

My domain controller using 10.0.10.1 as its IP address, with itself as the DNS Server…

nic2

Other VMs

The other VMs all have IP addresses starting at 10.0.10.2 and up, and all of them use 10.0.10.1 (DC) as their DNS server. They are all joined to my AdventureWorks.com domain.

nic3

Hyper-V

Hyper-V networking is very simple for an Internal network, in fact it’s as simple as creating a new Virtual Switch using the type Internal. That’s it:

switchmgrInternal

External Network

The External Network is pretty simple as well, it’s just bound to my physical wireless adapter – which allows all VMs to get a dynamic IP address from my wireless adapter. This allows them to access the internet for browsing, downloads, etc.

switchmgrExternal

Putting it all together

Now that I’ve shown how the networking all works, let’s summarize. Using this setup allows me to run multiple environments with a single domain controller, and since I’m using domain-joined machines with a DNS server, I can setup networking as close as possible to a “real-world” scenario. Additionally, I’ve got adequate system resources to run SharePoint 2013 with Office Web Apps, so I can actually use search with document previews, I can do user profile synchronization with ADDS, etc.

Also, since networking from the host works as well – I can access all of my SharePoint sites from my favorite browser on my Windows 8 host, which includes PowerShell Web Access on my 2013 box. Here’s my 2010 Team site from Google Chrome:

MyTeamSiteFromTheHost

Advertisements