Monday, November 06, 2006

Walkthrough - Windows SharePoint Services 3.0 Tools: Visual Studio 2005 Extensions

Microsoft has today released the Visual Studio 2005 Extensions for Windows SharePoint Services 3.0 (VSeWSS).

"Tools for developing custom SharePoint applications: Visual Studio project templates for Web Parts, site definitions, and list definitions; and a stand-alone utility program, the SharePoint Solution Generator."

Let's take a quick walkthrough of this new toolset for SharePoint developers and see what Santa has brought us!

SharePoint Solution Generator

The first VSeWSS tool we'll take a look at is SharePoint Solution Generator (SPSolGen). SPSolGen is a stand-alone program, so after installation you'll find a link to SPSolGen has been placed in your Start Menu under All Programs.

SPSolGen can take an existing Site Definition or List Definition from WSS and automatically reverse engineer it into a Visual Studio 2005 development project. The value proposition of SPSolGen is that a designer can create a WSS Site from the browser or with SharePoint Designer and then hand it off to a developer for deeper customizations.

By default, SPSolGen will create a subfolder in your My Documents folder and place its output there.

The SPSolGen output project in Visual Studio 2005 Solution Explorer:

New Project Item Templates

If you right-click your new project in Visual Studio and select Add->New Item, you'll be greeted by five new project items:

Item Templates include:

Selecting a new List Definition launches a dialog which allows you to specify a base list type. You can optionally create an instance of the list and include an event receiver class:

The Content Type template lets you select a base type to derive from:

New Project Templates

There are also a few new project templates.

The Team Site Definition project includes an Onet.xml and provisioning receivers:

Over all this is a useful suite of tools from Microsoft, and will provide developers with a good starting point for their SharePoint projects. The reverse-engineering capabilities of SPSolGen are pretty cool. I'm looking forward to using these new templates.

Download Windows SharePoint Services 3.0 Tools: Visual Studio 2005 Extensions

Related Articles:

Anatomy of a SharePoint WSS v3 Feature Project in Visual Studio 2005

Automation in Visual Studio 2005 for WSS v3 Feature Development

Categories: , , , , , ,


Brad Covelle said...

This looks like a very valuable tool. Thanks for making it available.

Anonymous said...


Once i create the site definition from the existing site whats the prefered way to deploy

Anonymous said...

Great Article!! Unfortunately when I run SPSolGen I get an exception with details saying it can't find the default web site. Of course I don't use the deault IIS web site for my SharePoint site(s).

Any idea???

System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.IO.FileNotFoundException: The Web application at http://mypc could not be found.

Anonymous said...

Hi, my name is Pablo Alvarez Jalon. To solve this, i added a alternate domain, to my web site. But my web site must have a default site collection on http://server:port.
The spssolgen application process must have right access to the site too.
Sorry for my english.....

Tony Bierman said...

Related post from Serge van den Oever's blog:

SharePoint Solution Generator - part 1: create a site definition from an existing site

Tony Bierman said...

Part 2 of related post from Serge van den Oever's blog:

SharePoint Solution Generator - part 2: the internals of the created site definition project

Tony Bierman said...

Alexander Malek's weblog: Welcome to VS extensions for WSS!

ScottA said...

In response to lsomers' question, it appears SPSolGen automatically sets the url for the root site to the 'ComputerName' environment variable value. Unfortunately, if you have an installation like mine where MOSS is extended on a fully qualified host name that is different from the 'ComputerName' value, then you will encounter the exception mentioned and SPSolGen quits. Hopefully this will be addressed in the next preview/full release for these tools by either prompting for the site url (there may be more than one on the server) or allowing you to configure this via the app.config.

Anonymous said...

I also get the "The Web Application at could not be found. Verify that you have typed the URL correctly. If the URL should be serving existing content, the system administrator may need to add a new request URL mapping to the intended application." error (WSS 3.0) trying to run an application from a remote computer.
The Pablo Alvarez Jalon solution didn't work and Lisa's one ( didn't work either.
ScottA said something about a bug in MOSS but I didn't understand if he could solve the problem.

Scoutman said...

Hi there, i've add this problem and
the Pablo Alvarez Jalon solution worked!
You have to go to Central Administration > Operations > Alternate Access Mappings
and add http://server even if it is extended.

B@rney said...

ScottA was close to a solution, if you open a Command Prompt and set the Computername Environment Variable to whatever name your SharePoint installation is running under yor home free. See - B@rney's Blog

Anonymous said...

I downloaded VSeWSS but it only works for XP. All our development PCs are Windows 2000, how do we get around it?


Anonymous said...

What a bummer... This tool is only for C# developers. What about us dedicated coders? C# is so unfriendly I don't want to waste my time trying to master it as well as I have for VB. Are there any plans to supply web parts and other sharepoint templates to the VB development team?

Bye, Joe

Anonymous said...

You Upgrade...

Anonymous said...

I have XP pro, I cant install it, It says it needs Windows Server 2003 and Shre Point services. What am I missing

Anonymous said...

Originally I only had one mapping to my site using the FQDN and I was getting the 'no site exists' error. I added an additional internal mapping for my intranet zone using just the server name and port number. (as mentioned above) Worked like a charm after that.