I have the good fortune of working for Tronox, a company that allows me quite a bit of latitude when it comes to setting up my development environment. With SharePoint 2007 looming on the horizon for us, and as the lead for our SharePoint deployment, I was allowed to requisition a proper environment for developing/deploying SharePoint. So, let's just get right to it…
A requirement for our IT department is that everyone is to have a laptop. If you've been around IT long enough, then it goes without saying a laptop is indispensible. We have a tendency to work obscure hours and meet at unconventional locales. Being tied down to a desktop system just doesn't cut it; though, the processing power sure would come in handy.
When considering what type of system to build for my SharePoint environment, I had to consider the hardware that limits the speed of development. Keep in mind that the large majority of my SandBox development will be done locally on a virtual server, not on a full-fledged server farm.
- RAM – As much of it as possible. This will allow you to allocate more resources to the virtual server while still maintaining a working host environment.
- Processing Power – The more processing power, the faster the virtual server will run.
- Hard Disk Speed and Size – The faster the hard drive, the faster you can write data. In a development environment, you need extra storage for the multitude of applications that need to be installed as well as the virtual servers
- External Storage – Since laptops are pretty much limited to a single HDD, an external drive is essential for running the virtual server; this will allow a dedicated drive to the virtual server and relieve the I/O bottleneck that would otherwise be created when your host environment begins fighting with the virtual server for disk write resources. If possible, an eSATA drive is preferred for the mere size of files you'll be passing back and forth. But, a USB will suffice.
We purchase all our laptops from Dell, so I was limited to what they offered. So, what did I end up with?
Intel Core2 Duo 2.6GHz
4 Gigs of RAM
120GB 7200RPM internal HDD
For the external drive, I built it up from scratch using a 100GB 2.5" internal laptop drive and tossed it into a nice compact enclosure. The enclosure had both USB and eSATA connections. However, the laptop could not be configured with an eSATA port. To compensate, I picked up PCMCIA eSATA card. Sadly, the eSATA via the PCMCIA was a bust! The transfer rates were barely faster than the USB rates. So, I ended up ditching the eSATA and have gone the route of USB.
Everyone will have their own opinions on how to set up their SharePoint development environment. I'm offering this as a guideline based upon how I built up my environment. Keep in mind, this software list is not for the virtual server; I'll cover that in an upcoming post.
Various Other Utilities
- Virtual Clone Drive – a free utility for mounting ISO disks.
- ExtractNow – a free (though you should donate) utility for extracting compressed files.
- OpenExpert – a free utility allowing you to easily associate a given file type with any number of applications in your contextual menu. This is one of those apps that are subtle, but highly productive when you need it.
- Taskbar Shuffle – shuffle those buttons on your taskbar to your heart's content.
- Fiddler – a must for viewing what is actually being passed through the HTTP context from web page to web page.
- Windows PowerShell – OK, I've yet to really use the PowerShell, but there are many a blogs I reference that tell me I should be using it.
Wrapping it All Up
I can tell you from my own experiences that the above environment will keep your development moving along quite fast; especially when running virtual servers locally. The external drive and the extra RAM have proven that my local SharePoint virtual server runs very well. Not quite like a 64bit server, but it sure does the job!