Skip to main content

technical blog

Go Search
Home
Technical Blog
Resumé
Travel
Skydiving
Contact
  
Random Image

chrishines.com > technical blog > Posts > SharePoint 2007 Team Development Environment
SharePoint 2007 Team Development Environment
I was once told that developers are like cows, put them in a nice field full of green grass and they will be both happy and yield milk! I think that part of making a developer’s green field is to design an efficient, easy-to-use environment which enables them to get on with their job more easily.
 
When our team began to work with SharePoint 2007 we decided to rethink our development and build processes in light of new tools at our disposal. To give a brief summary of what we do: our remit is to develop Portfolio, Programme and Project Management tools using Microsoft Project Server and SharePoint to support our Programme Improvement service. Our tools need to offer a high degree of customization to both Project Server and SharePoint as well as be very flexible and repeatable to support different client implementations. Basically, we do a lot of customization at the code level.
 
Whilst there have been huge improvements made to SharePoint Designer (previously called Front Page) this tool does not offer the low level customization we need nor the facilities for us to build replicable and flexible solutions. We use Visual Studio to develop customizations for Project Server, SharePoint and also to develop Reporting Services Reports.
 
By the time we started with SharePoint 2007 we were already using Virtualization but felt that we should be doing more with it. So we set out to virtualize everything, including our development tools. This begun with us building one Virtual Machine using Microsoft Virtual PC, the build was:
  • Windows 2003 Server (SP1)
  • SQL Server 2005
  • Reporting Services
  • Project Server 2007
  • SharePoint (WSS) 2007
  • Visual Studio 2005
The great thing about putting Visual Studio into your SharePoint VM is that the SharePoint environment becomes very accessible to you. For example you can reference the SharePoint assemblies for programming with the Object Model or reference XSDs to give your XML/CAML development IntelliSense. Another major advantage is that it becomes very easy to attach to the w3wp to debug WebPart assemblies.
 
We ran this VM using Microsoft VPC on a single processor laptop with 2GB of RAM. Using Todd Bleeker’s StopDeveloperSericesVPC.cmd and setting the VM’s memory to 1200MB we achieved reasonable performance.
 
Based upon this success we began to clone the VMs using NEWSID to give us more copies for the other developers on the team. However, we quickly discovered that SharePoint 2007 and Project Server 2007 do not respond well to NEWSID so we had to clone the VM prior to the installation of these products i.e. on each new VM we had to install SharePoint and Project Server again. Not ideal, but better than starting from scratch each time!
 
Each new VM was given its own name VM01, VM02 etc and allocated a static IP address in the same range. Each developer on the team took their own VM and ran it on their own laptop hooking it up to their laptop’s network adapter.
With the VMs in place we set up a Visual Source Safe running natively on a sever with an IP address in the same range as the VMs. Pass-through authentication was the fastest way to authenticate each developer on the server i.e. each developer would log into their own VM with their own account and then the account would be replicated on the Source Safe server with the same username and password.
 
It was at this point we hit some major concurrency issues when checking in and out of Source Safe. Everything worked well until more than one developer tried to use Source Safe at one time! Through persistence and with a bit of luck we found a solution to the problem. We found that if we setup our VPC to have the Microsoft Loopback Adapter at position one in the Network Adapter settings and then the real network adapter at position two we were able to work concurrently. We’ve still not found an explanation for why this works but interestingly enough the problem went away when we moved to using Microsoft Virtual Server R2 in place of Microsoft Virtual PC.
 
For the best part of the last six months we have been working using single processor IBM laptops with 2GB of RAM. However, we’ve recently taken delivery of some new desktop development machines which are of a much higher spec (see diagram below). Whilst the laptops offered acceptable performance things have become a lot easier on the new machines.
 
Here’s what our current development environment looks like:
 
SharePoint 2007 Development Environment

I would definitely recommend working in a similar way to this when developing for SharePoint 2007 (and indeed Project Server 2007). It’s proven to be an efficient environment which is easy to setup when we have new developers join the team or when we need to throw away our VM and start again.
 
I’ll try to find the time to write about our build process because I think this is the second half of the developer’s green field….
 

Comments

There are no comments yet for this post.