Page copy protected against web site content infringement by Copyscape

TFS Team Project Portal and Project Server Workspace Integration

Ensure the following steps are done:

1) Installed & Configured MOSS 2007

2) Installed & Configured Project Server 2007 to integrate with MOSS 2007. Once the configuration is done, if you can access the pwa site from MOSS, you would be set.

3) Install & Configure TFS 2008 to integrate with MOSS 2007. Note: If your TFS talks to an existing instance of SQL, ensure SQL Reporting Services is installed but not configured. Let TFS do the configuration. This will reduce a lot of Reporting Services headaches. Enable VSTS Web access.

Once all that is done, it is time to integrate Project Server 2007 with TFS 2008

Open up a project plan, save it on the Project server. Publish the project plan but not create a work space.  If you encounter manual work space greyed out, like shown below 


Navigate to the PWA site and click on Server settings.  Under Operational Policies, click on Project workspace Provisioning Settings.


On the Project workspace Provisioning settings page, change the Provisioning Mode to the settings shown below.


Once that is done, you will now be available to publish the project plan and not configure the work space.

If you now are too excited 🙂 and jump to configure the work space to integrate with TFS 2008, you may encounter this error message


This happens because certain Project related features are not activated at the Team project site level. Go to the TFS Team project portal and click on Site Settings.

Under Site Settings –> Site Administration, click Site Features and activate the 2 project related features shown

(Project proposal workflow & Project workspace collaboration Lists)


Once this is done, you will be able to integrate Project work space with TFS Team project portal. Now, clicks on TFS Team portal and Project server work space Team project plan will take you to the same site.

Page copy protected against web site content infringement by Copyscape

MOSS Site Navigation – Obtain Page layouts programmatically 

Here is the code snippet that will help you obtain the site navigation structure of an existing site (this will be useful when you are trying to automate deployment of site structure to the target server)

Assuming web is of type SPWeb, SW is StreamWriter that writes to a xml file

 PublishingWeb pubWeb = PublishingWeb.GetPublishingWeb(web);
          if (PublishingPage.IsPublishingPage(pubWeb.DefaultPage.Item))
               SW.WriteLine("<page site=\"");
              \\ this will give you the site page name
              SW.Write(web.ServerRelativeUrl.Remove(0, 1));
              SW.Write("\" pagelayout=\"");
              \\ this will give you the Page layout name
              \\ this will give you the Page title
              SW.Write("\" title=\"");
              SW.WriteLine("\" />");


I have left out the exception handling part and other detailed code. This is just to give you an idea about the methods available with the PublishingWeb object that will fetch you the site names/page layouts/title details.

Remember, this code snippet has to be called recursively for each SPWeb available under SPWeb.Webs