I’ve built out SharePoint development environments many times but I’ve never really sat down and made a list of the tools I use before. A good friend emailed me today and asked what tools I have on my SharePoint development box and it prompted me to put a list together. I thought I’d share what tools fit into my day to day usage.
First a bit about the infrastructure and topology of my development environment. I’ve got a dedicated VMWare ESXi 5.0 box in my basement with an i7-920, 24GB of ram, and 4x2TB hard drives in Raid 1+0. I’m using an Adaptec hardware raid controller all inside of a Super Micro tower.
With that box I’m able to run quite a number of virtual machines for a lot of different tasks beyond SharePoint development. I’ve got a combination of Linux and Windows servers and clients setup for building and testing various applications. A couple boxes are mainstays however and provide resources that are shared across the rest. These are my domain controller and SQL box. Both are running server 2008R2. The SQL box has multiple SQL instances on it (2008R2 and 2012). I have a couple of different SharePoint VMs and fire them up depending on what I’m working on.
When setting up the development box I always turn to AutoSPInstaller to actually install the SharePoint bits. It automates the process and makes it repeatable. It can handle installing the prequisites, configuring the farm, configuring service applications, creating web applications, creating site applications, etc. It is really very powerful and saves a ton of time in setting up a new environment. You can get it at http://autospinstaller.codeplex.com/.
For my primary 2010 development box I also have the following tools installed:
- Server 2008R2 made to be just a bit more workstation friendly with tools and guide over at http://www.win2008r2workstation.com/
- Visual Studio 2010 Ultimate
- Community Kit for SharePoint Tools - http://cksdev.codeplex.com/, http://cks.codeplex.com/
- ULS Viewer for viewing log files - http://archive.msdn.microsoft.com/ULSViewer
- ILSpy for reflecting the SharePoint assemblies - http://wiki.sharpdevelop.net/ILSpy.ashx -- You could also use RedGate’s reflector but it is no longer free. It is a better product but I don’t feel like buying a license http://www.reflector.net/
- PowerGUI is really a must for tweaking configuration, deployment scripts, etc - http://powergui.org/index.jspa
- Pex and Moles for unit tests - http://research.microsoft.com/en-us/projects/pex/
- Fiddler for looking at raw HTTP requests - I’ve been doing a lot of authentication work recently so this is important for me but maybe not for the average SP developer – http://www.fiddler2.com/fiddler2/
- SharePoint Manager allows you to explore site properties and settings which is handy - http://spm.codeplex.com/
- HttpWatch is good for performance tuning - http://www.httpwatch.com/
- Firefox with the Firebug add-on for looking at elements on the page and watching XmlHttpRequest when debugging AJAX code - http://www.mozilla.org/en-US/firefox/new/, http://getfirebug.com/
And while I hesitate to admit it given how much I hate the headache it can cause, I do also use SharePoint Designer from time to time. While I’m a firm believer that you shouldn’t do SharePoint customizations with it (everything should be done via Visual Studio and packaged into a WSP) the truth is that SharePoint Designer is really good for working on masterpages. If you’re doing branding work then I’d recommend it be included into your tool arsenal.