A long time ago, when I was just starting out with SharePoint development myself, I wrote an entry that detailed setup of a SharePoint development environment – the first hurdle a new developer will face.  This is both the launch of a new effort in simple SharePoint education and a revisitation of that post, updated for the tail end of 2009.

What you’ll need:

  1. 4GB RAM, minimum.  You’re likely going to need to set up a virtual machine to house your dev environment (more on that below), and you will really want to give the VM 2GB of RAM, or the time it takes to do anything will slowly drive you insane
  2. ~20GB of free drive space.  The VM that I use every day that has everything I need to work is around 20GB in size.  The ideal case here is to have this on as fast a hard drive as you can find – I just ordered a 160GB SSD.
  3. Windows Server 2003 32 bit minimum, Windows Server 2008 R2 x64 recommended.
    • One of the idiosyncrasies of the SharePoint development environment is that you need to develop directly on a SharePoint server.  Yes, really.  There are ways around it, but you’re better off just going with the flow on this one.  You will need to set up this server on an active Windows domain – I typically make my server a domain controller, so I can control things like DNS, accounts, etc. without any need for IT approval – yet another reason to have everything inside a VM.
    • Why 2008 R2?  Why x64?  Simple – Microsoft has already announced that the next version of SharePoint will require a 64-bit SQL Server and 64-bit machine to run on.  Might as well get ready now.
  4. SQL Server 2005 minimum, SQL Server 2008 x64 recommended.  SharePoint needs a SQL database (several, actually) – it’s a black box, we can’t touch it (you’re best off forgetting it even exists), but you need it.  I don’t know if 2010 will require 2008 yet, but better safe than sorry.
  5. Microsoft Office SharePoint Server (MOSS) 2007.  Duh.
  6. Visual Studio 2008 Standard or above.  SharePoint specific add-on(s) are required.
    • There is a Microsoft official add-on, but I don’t recommend it.  It tries to do too much for you, and hides way too many details to the point where key information (the SharePoint Solution ID GUID) doesn’t even get included as part of the project, and therefore doesn’t make it into source control – yikes.
    • I recommend WSPBuilder- it adds SharePoint-specific projects to the File –> New Project dialog, and WSPBuilder-specific items to the Project –> Add Item dialog.  It also structures your project to match the structure of the MOSS “12 hive” – the directory where all of SharePoint’s files live.  Believe me when I tell you that seeing this structure from day 1 of development makes it SO much easier to understand how SharePoint deployment works, how the structure of the WSP deployment packages are built, etc.  You want this add-on.
  7. Microsoft Office 2007.  There’s lots of Office client interactivity (it IS Office Server, after all), so you’ll want the client apps there for your testing.

OK, I have all that stuff.  Now what about a VM?

If you can run a server with connected domain access without IT jumping down your throat, more power to you – but most of the time, this won’t be the case.  So, we’re going to need a VM.  Several people have already discussed the various different ways you can run SharePoint in a VM, the pros and cons, etc. so I’m not going to go too deeply into it here, so I’ll just sum up my feelings on the matter here:

  • You want a VM.  You really do.  Stop thinking that maybe you don’t need one.  You do.
  • Microsoft has stated that there is no support for 64-bit guest OS VMs under VirtualPC/Virtual Server 2005 in the near future.  This is bad, due to the 64-bit requiredness of SharePoint 2010.  If you’re starting out now, VirtualPC is out.  Of course, if you only have a 32-bit processor, then none of this matters to you, and VPC is just fine.
  • If you still need a free VM solution, check out VirtualBox from Sun (check for processor support by following these directions).  They allow 64-bit guest OS installs, and are totally free.  Free even.  I’ve been using it for my day to day development VM for a while now, and haven’t had any issues.  If you are running a client OS as your host (XP, Vista, Windows 7), then this is a pretty good was to go.
  • Virtual Server 2005.  Don’t do it.  See also: Virtual PC.  There are better alternatives for server-level hosts, like:
  • Hyper-V.  If you can run a server OS as your host, then Hyper-V is a great way to go.  Performance-wise, configuration-wise, it’s harder to do better.
  • VMWare – probably pretty good, but I haven’t used it in a long time, so I can’t give it a thumbs up or down.  YMMV.

OK, I’ve got a VM created.  Now what?

Now, we spend a whole day clicking “Next”. :)

  1. Install the server OS.
  2. Promote the server to a domain controller.
  3. Create accounts for SQL and SharePoint to run under.  I typically use SQLSrv and MossSrv respectively, though it doesn’t really matter what you call them.
  4. Run Windows Update and get all the OS patches, service packs, etc. you can get your hands on.
  5. Install SQL Server.
    • If you’re installing SQL Server 2008, you’re going to need SP2.  Ignore the compatibility warning on the initial install, just make sure to install SP2 directly afterward.
  6. Install SharePoint Server.
    • If you’re installing on Windows Server 2008 R2, you’re going to need to slipstream SharePoint Server SP2 into your install.  The Microsoft SharePoint Team Blog has details on what you need to do.
    • NOTE: DO NOT install SharePoint as a stand-alone install.  Install it as a single-server farm instead.  The stand-alone install uses SQL Server Express as a back-end, which will only slow everything down.
    • I know that there’s a million steps to the wizard – call this SharePoint Googling 101, Assignment #1 – find a walkthrough if you get confused.  You will be using Google a LOT during your SharePoint development lifetime, best get used to it now!  Pro tip: use ‘SharePoint’ as your first search term, no matter what – you always get better results that way.
    • Once the configuration starts running, go get something to eat.  Seriously – this takes a WHILE.
  7. Install Visual Studio 2008.
  8. Install the .Net Framework 3.5.
  9. Install the Visual Studio 2008 / .Net Framework 3.5 SP1.
  10. Install WSPBuilder.
  11. Install Microsoft Office 2007.
  12. Run Microsoft Update to get any Office, etc. patches you might need.
  13. Leave your VM open and running overnight so SharePoint can do all its background tasks.