Andrew Connell [MVP SharePoint]
1579 Posts |  42 Articles |  4864 Comments
.NET  |  MCMS  |  SharePoint  |  Office System
SharePoint Quick Links
Article Categories
Archives
Post Categories


Add to Technorati Favorites

I frequently get questions people asking how they should go about setting up their development environment. Many people take different approaches and one size does not fit all as some are big development teams and some are more like me, single man shop.

You basically subscribe to one of two approaches, either:

  • Working within a virtual machine where everything (OS, SQL, SharePoint & development tools) runs in a self-contained environment. This could be a machine on your local desktop (using something like Microsoft's Virtual PC or VMWare Workstation).
  • Working off a shared development environment, such as building on a client machine (Windows XP or Vista).

Personally I strongly prefer the former approach, working in a VM. Some folks like to have monster boxes that house multiple VMs for their developers... others just work off your desktops/laptops. There's no right or wrong answer here.

The virtual machine approach seems to come in two flavors. Some folks like to have a shared SQL Server but install everything installed in the virtual machine. I don't care for this approach as you now effectively have a very big SharePoint farm and developers aren't working in an isolated environment.

Instead, I advocate installing everything in your VM. The only thing I don't do that a lot of people do is install Active Directory. Frankly, I find I rarely need it and don't care for how long it takes to shut down/start up. If I need AD, I'll get a VM that has it for that project. Then, in an ideal environment, have a build/development shared environment where each developer merges their changes with everyone else to make sure integration is a good story.

Now... what about creating your VMs? This is REAL easy: go buy Scot Hillier's book Microsoft SharePoint: Building Office 2007 Solutions in C# 2005. Look at chapter 2... it has a step-by-step process on installing your environment the right way. When I create new VM's, I follow Scot's process exactly. The only exception is that I don't create multiple VMs, I put it all in one, but you can easily put it on different machines.

Hope this helps!

posted on Sunday, August 31, 2008 11:55 AM

Feedback

# re: Setting up your SharePoint development environment 9/2/2008 9:52 AM Brandon Ryan
Gravatar Another method that should be given fair mention is the method of installing MOSS directly on Windows Vista.

http://community.bamboosolutions.com/blogs/bambooteamblog/archive/2008/05/21/how-to-install-windows-sharepoint-services-3-0-sp1-on-vista-x64-x86.aspx

I've found that this method works very well for my development, and it saves me the hassle of keeping a VM running. Everything has worked well for me but your mileage may vary.

# re: Setting up your SharePoint development environment 9/2/2008 10:07 AM AC [MVP MOSS]
Gravatar Brandon-
I disagree... I don't care for this approach as when stuff isn't going right, you have to not only address if it is your solution but also if it is the environment.

# re: Setting up your SharePoint development environment 9/2/2008 5:49 PM Jonas
Gravatar Andrew,

Developing on Vista:

It's actually pretty simple, when stuff doesn't work in your final test environment it's a problem with your own dev environment, this is no diferent from when you develop on a VM or a local Win2003/Win2k8 server.

I have been developing on Vista for three months now and I have yet to run into any issues where the dev environment was the problem. In fact I have been more productive and the solutions work on Win2008.

If I was constantly running into differences I would NOT suggest Vista as a dev platform but this is not the case.

I think you should give it a try ;) VMs offer a lot of invaluable things like fast setup of different environments, snapshots and alike. I use them every day and I wouldn't be able to work without them.
But the focus has changed from being my dev platform to my test/deployment/troubleshooting platform.

The speed of development (on my hardware, Quad core 8GB)can't be matched by having everything locally installed.

Thanks
/Jonas



# re: Setting up your SharePoint development environment 9/2/2008 5:57 PM AC [MVP MOSS]
Gravatar Jonas-
I'm not saying it is a bad solution, it is just another option but not one I'm going to recommend.

I'm sure there are plenty that like it and are doing it, but for my money & time, I'd much rather work in a virtual environment. Since you guys posted about it, I've yet to talk to a single developer who's using it in their day-to-day SharePoint development. That's not saying people aren't using it, but literally 100% of the people I've talked to who have tried it prefer the virtual approach. In the enterprise, I believe this to be a very bad idea (installing SharePoint on Vista) as you are greatly increasing the surface area of attach (SQL, SharePoint).

My virtual environment is very fast running off my laptop (Core2 Duo, 4GB RAM, 2GB allocated to the VM) and I don't have the hassle of all the server based stuff installed on my client and having to keep it all patched up. Plus, I can easily jump to different configurations of a SharePoint farm very quickly thanks to saved states / snapshots.

Suffice to say we'll agree to disagree.

# re: Setting up your SharePoint development environment 9/4/2008 8:20 AM Sanju
Gravatar Hi Andrew,

I have the follwoing 2 questions for you:

1. How is this different if I install everything on Windows-2003 server instead of setting up the VM Ware or Microsoft VPC. This development environment must be much faster than the VPC environment. But not sure how the licensing going to work here?

2. Is it possible to have a production environment setup for WSS portal in VPC or VM? Is it recommended, if not why?

Regards,
Sanju

# re: Setting up your SharePoint development environment 9/4/2008 9:28 AM AC [MVP MOSS]
Gravatar Sanju-
Sure you can run native... but I find most run within virtual machines. And yes, you can run a production SharePoint install in a virtual machine using Microsoft HyperV (don't use VirtualPC).

# re: Setting up your SharePoint development environment 9/10/2008 9:37 AM lottadot
Gravatar This is REAL easy: go buy Scot Hillier's book

So you'd have us go buy a book instead of listing what you install into your VM?

I don't think this is quite fair ;) You post about a great topic, and then you don't give the nitty gritty :(




# re: Setting up your SharePoint development environment 9/10/2008 11:08 AM AC [MVP MOSS]
Gravatar Lottadot-
Respectfully, there are TONS of blog posts out there by others that talk about the install process. A simple search will quickly field a lot of these. My post was not about creating your machine, it's about how the environment will work.

The reason I didn't write the install process is because others have written about it at great length. Explaining the step by step process... well no since in reinventing the wheel. I share the process I use.

# re: Setting up your SharePoint development environment 10/30/2008 9:29 AM Clark Updike
Gravatar Andrew--just to let you know, I contacted Scot Hillier to understand why the environment he specifies in his book uses multiple VMs. He said he used this approach in the book because "... it was a good compromise that would help people see how they could set up Dev, QA, and Prod environments using a similar approach"--but that a single VM was fine for development. Regards.

# re: Setting up your SharePoint development environment 11/17/2008 10:38 AM Mark
Gravatar Question:

In developing Sharepoint in the virtual setting, do you need to have a separate Windows 2003 Server license or can you use an existing Windows 2003 Server license for development work?

Thanks,

Mark

# re: Setting up your SharePoint development environment 11/18/2008 9:12 PM AC [MVP MOSS]
Gravatar Mark-
Each OS, physical or virtual, needs a license.

# re: Setting up your SharePoint development environment 12/31/2008 10:15 AM Abhijit
Gravatar Mark, you have hit the bull's eye.

I have a team of 5/7. I need all of them to work on Sharepoint, the problem is i don't have 7 (for virtual OS ) + 1 (production web)+ 1(production db) = 9 windows 2003 server licenses. I only have have 2 licenses.

And hence I am couldn't setup the VMs on development machines. Only solution I see is to purchase one more win2003 server license, and setup development server on which user's will do remote desktop and debug their application. But then I will need to have a hardware to support such a heavy load, as at peak time all 7 developers will be logged in runing VisualStudio (avg 100MB memory), and 7 individual Sharepoint sites (again 50MB to 200 MB memory). And so I will beed a server with min 4GB memory. right?

Doesn't Microsoft think that they should provide the developers some better way of developing sharepoint applications?

# re: Setting up your SharePoint development environment 3/18/2009 6:25 PM Kirk Evans
Gravatar @Abhijit - that's what MSDN subscriptions are for. Instead of having to buy 7 server licenses (assuming that was 1 for each developer), you buy 7 MSDN subscriptions (which you probably already are doing). MSDN covers their licensing in the development environment. That includes the OS, MOSS, SQL Server, Visual Studio, etc in their virtual development environment.

Post Feedback

Title:
Name:
Email:
(email will not be displayed)
Url:
Comments: 
Please add 7 and 8 and type the answer here:    
All Comments Are Filtered & Moderated
Unfortunately comment spammers are just too effecient and are constantly dirtying up blogs with irrelevant and unwanted comments trying to improve their standing on search engines. All comments on this blog are moderated. I do not censor comments, but I don't approve comments with vulger language or those soliciting products. Most of the time comments are approved within a few hours of being submitted with the only exception when I'm traveling.

Why are you asking for my email address?
The only reason I'm asking for your email address, which isn't required to submit a comment, is to provide a gravatar if you've created an account for yourself and associated your email address with a small image. If you have a gravatar created for the email address you submit, it will appear next to your comment. Otherwise nothing will appear.

What is a gravatar?
A gravatar is a "globally recognized avatar." You can get more information about gravatars, as well as create your own for free, at www.gravatar.com. You can also view my gravatar here.


Copyright © 2003 - 2010 Andrew Connell
Creative Commons License 
This work is licensed under a Creative Commons License
Site design by Heather Solomon.

 
 
MOSS WCM Training
Looking for MOSS 2007 WCM developer training? Look no further! I teach my 5-day hands-on and online WCM classes for developers I offer through my company: Critical Path Training.

Get more information on the WCM courses!