I have seen multiple questions posted to several of the forums I participate in concerning how to begin developing against SharePoint 2007. They usually come from users who are copying assemblies from the SharePoint server to their development box and then attempting to develop against it. While this will work in many cases, most developers will find this to be a very difficult approach to development. Others have installed Windows Server 2003 on their desktops and begun developing solutions, but if they accidentally do something unexpected through code, they have to end up rebuilding their machine or reinstalling SharePoint -- thus wasting valuable time.
Since I have gone multiple routes with my development environment, I decided that I would share what has been the best environment thus far (and is recommended standard from Microsoft).
I have a standard desktop with the following configuration:
- Hardware
- Intel Core 2 Duo 6700
- 4GB Memory
- 250 GB Primary Hard Drive (SATA)
- 500 GB Secondary Hard Drive (SATA)
- Software
- Windows XP Professional, 32-Bit
- VMWare Workstation 6.0
I have created a virtual machine using Windows Server 2003 R2 and installed MOSS 2007 Enterprise Edition, Visual Studio 2005 and Office 2007 Enterprise Edition. I now do all of my development inside of the virtual machine. This affords me two tremendous benefits: 1) If I accidentally break a machine, I can restore to a previous snapshot and 2) I can perform local debugging and step through the code. From here, I complete the entire development of the new feature or solution and then create a solution file to deploy to a development network running SharePoint in a similar configuration as our production systems. This gives me a chance to work with real data in a scratch-pad environment.
The final step occurs after testing and Q&A have been completed on the newly developed solution in the development network. This is where we deploy the solution to production servers and begin using it.