VSeWSS v1.3 and source control
I have recently looked into using the Visual Studio extensions for Windows SharePoint Services (VSeWSS) that are currently at release version 1.3. I evaluated the initial releases a couple of years ago and was completely underwhelmed; it was very buggy, very restrictive and, as far as my clients were concerned, I had to recommend an alternative approach to structuring Visual Studio solutions for deploying SharePoint solutions. A few months ago I was challenged on this point by another experienced SharePoint development consultant and after reviewing Kirk Evans’ series of articles and webcasts I downloaded the March 2009 CTP and set about recreating a few existing solutions using the extensions. I am very impressed with how far the extensions have advanced since those early releases and they are now supported by the Feedback and Feature Requests forum on MSDN.
The extensions are obviously a work-in-progress but my concerns lay with the upgrade path to Visual Studio 2010 and the indicated/anticipated increase in the level of integration for SharePoint as a development platform. However, I quickly discovered there is an issue with the extensions when it comes to source control because the feature.xml files are dynamically generated. This is all well and good except that there is no chance that the standard, minimal settings generated will be sufficient for a production release; the project assembly name is used for the feature title (I think), there is no description, the version number is always 1.0.0.0, the list goes on. Using the WSP View it is possible to open feature.xml files and make any necessary updates but the problem is the extensions store the physical files in a sub-directory of the project named pkg. When another developer opens the project from source control the pkg sub folder is not included and it is therefore auto-generated when they first package or deploy the solution.
Richard Slater is one of many people who have already raised the issue of source control for VSeWSS 1.3 solutions. As per the MSDN article How to: Create an Automated Build and Deployment Solution with Team Foundation Server Team Build (taken from the SharePoint Guidance on Codeplex) the recommended approach is to add the pkg folder to source control;
To permit team development, you must add this folder to the source control repository. This makes any WSP structure customizations that one developer performs available to the other developers on the team.
The guidance also says;
…the Setup.bat file must be placed under source control so that a build process can use these files to generate a .wsp file and deploy it.
Whether I am automating the build process or not, when the .wsp file is the output to a client I also want this under source control.
Okay, so it seems that we have everything we need in source control for team development and although it doesn’t exactly feel quite right we can live with it because we know this is a work-in-progress and an interim solution before we can get our hands on Visual Studio 2010. Is it robust enough? I’m not 100% convinced but I’ve now committed some current projects to the setup so time will tell and if I find more issues then I will report them to the Feedback and Feature Requests forum and blog them here.
Update: I should also have mentioned that when version 1.3 of the extensions is installed a help file is deployed to “[drive_letter]:\Program Files\Microsoft SharePoint Developer Tools 9.0\VSeWSS13.CHM”. The “Application Lifecycle Management with VSeWSS” chapter should be considered essential reading when using the extensions and there is a section entitled “Source Control using TFS” which details a good demonstration of adding the necessary files and folders to source control.
