Visual Studio 2008 or Visual Studio 2005 - what should I use for WSS 3.0/MOSS 2007 development?

.NET 3.0 and higher is already supported with MOSS 2007. Essentially, .NET 3.0 and .NET 3.5 are additional components to .NET 2.0 framework. They provide features like Windows Communication Foundation, Workflows and LINQ (if you are a beginner, also see 101 LINQ Samples). MOSS – is still running on ASP.NET 2.0 regardless of .NET 3.0 or .NET 3.5, but it uses some of the features offered by both however.

If you heavily rely on Visual Studio 2005 extensions for WSS 3.0, switching to Visual Studio 2008 would mean missing out on the extensions for a while. Although, .NET 3.5 is supported, it will require to be installed on the farm. Workflow development can still be done with workflow templates available in Visual Studio 2008 that are targeted at .NET 3.0.

An important thing though, is those workflow templates do not work properly on Visual Studio 2008. Additionally, using workflow templates on 64-bit operating system is unsupported and causes an exception. This is documented in Visual Studio 2008 readme.

Code built with .NET 3.5 (like LINQ, new WCF) can be deployed by just including .NET 3.5 specific configuration section to a SharePoint web.config file as shown here.

Points to remember: You need to specifically target/activate compilation for .NET 3.5 in your web.config file if you’ve used .NET 3.5 functionality in your SharePoint site/application. Hopefully, an extension compatible with Visual Studio 2008 would come out soon that will make SharePoint development in Visual Studio 2008 a lot easier – but till then, leverage Visual Studio 2005.