Resources and Recommendations for Upgrading Site Definitions and Site Templates
This topic has come up more times than I can count. This is one of those sticky topics that IT Pros seem to have a hard time with. See the TechNet reference for how to handle customizations and you can see that it can't be handled at that layer for most deployments. There is one good light reference on TechNet for upgrading Site Definitions with references to the mapping files and upgrade definitions, but the MSDN/SDK goes into much more detail (links below). It's understandable since the development that was done on the platform has got them to this position, but most won't want to simply start over. One of these days I'm going to do a post around levels of customization and supportability, but it's such a meaty topic. Many have wondered if there are scripts that would make the process easier. Thanks Luis and Oleg from the SAT team. We have other projects in the works which I will be sharing more about in the future.
The (MSDN) Architectural approaches to upgrading site definitions is a great read and overview of what decisions you have ahead of you. This snippet from that article includes an awesome recommendation. "You can either change a site definition that Windows SharePoint Services 3.0 installs, probably the site definition that's basically closest to your 2.0 site definition, or attempt to change your 2.0 definition so that it resembles a 3.0 site. Whether you choose the first or second approach depends on how much you have customized the 2.0 site definition. If you minimally customized the site definition (for example, merely added a new list type or added a few files), we recommend that you copy the equivalent 3.0 site definition and make the appropriate changes in it. Changing a 2.0 site definition to 3.0 is more difficult."
Although the best content below appears to be all about WSS, it is very applicable to SPS as well. For generic upgrade content. I have a few good posts and one good list of links in the past. As you look at this stuff you'll realize how important it will be to involve your development team. Although I haven't yet done the post on supportability, please read this article which references how to keep your customizations supportable. Here's a KB specifically talking about supportability (supported and not supported) in reference to site definitions in SPS 2003. The biggest. DO NOT modify the out of the box site definitions, and do not change the site defintions of sites that already exist. This recommendation continues to be relevant for WSS 3.0 and MOSS 2007. There is another KB which references custom site templates how to create and how to add, the steps in WSS 3.0 and MOSS 2007 are very similar.
Here's the best resources for upgrade of Site Templates and Site Definitions I've come across on the topic.
WSS 3.0 SDK (from MSDN) - download the WSS 3.0 SDK
SPS 2003 to MOSS 2007
Many have wondered what changes to my SPS portal and development efforts will impact my upgrade. I recommend reviewing these sections to understand changes, deprication, and things that will error out.
Upgrade Toolkit for WSS and Site Templates (published Dec 20, 06) NEW!
I can't give you all the details here, but this guide goes into more detail than you'd think. It isn't just about upgrading the WSS Application Templates. It also features taking your own custom site defintions and upgrading them, and walks you through the process. The scripts and insight are invaluable. Here's a snippet from Chapter 2.
"Build an Upgrade Definition File
An upgrade definition file describes how to map a customized WSS 2.0 site definition to a new WSS 3.0 site definition. It maps files, lists, libraries, and features, as well as specifying the new WSS 3.0 functionality that should be placed in the upgraded site definition."
Overview...
Ch 1: Introduction. Introduces the Upgrade Toolkit for Windows SharePoint Services Sites and Templates, explaining its purpose, scope, audience, and contents.
Ch 2: Planning Your Template Upgrade. Examines the site and site template upgrade process from beginning to end and gives you necessary information for planning your upgrade strategy. It explains that the upgrade process has two stages: one to perform before your Windows SharePoint Services environment is upgraded to Windows SharePoint Services 3.0, and one to perform after the upgrade.
Ch 3: Preparing a Site Template Based on a Customized Site Definition. If you determine, based on Chapter 2, that one or more of your site templates are based on customized site definitions, this chapter will familiarize you with upgrade definition files and new site definitions.
Ch 4: Stage 1: Before Upgrading to Windows SharePoint Services 3.0. Describes the Stage 1 site template upgrade steps that you must perform before starting the Windows SharePoint Services 3.0 upgrade.
Ch 5: Stage 2: After Upgrading to Windows SharePoint Services 3.0. Describes the Stage 2 site template upgrade steps that you must perform after finishing the Windows SharePoint Services 3.0 upgrade.
Ch 6: The Upgraded Application Templates for Windows SharePoint Services. Lists and describes the function of each of the upgraded application templates for Windows SharePoint Services and gives you detailed instructions for installing the application templates in a Windows SharePoint Services 3.0 environment.
Ch 7: Troubleshooting. Provides workarounds and fixes for problems you may encounter.
Appendix: Glossary. Lists the relevant terms used in this solution accelerator.
Accelerator Components
The solution accelerator is comprised of three components:
Upgrade Toolkit for Windows SharePoint Sites and Templates Guide
End-to-end guidance to plan and implement custom site and template upgrades.
Solution scripts
Nine command line scripts to facilitate the upgrade process.
Upgraded application templates
33 application templates that have been upgraded from WSS 2.0 to WSS 3.0.
You can download the toolkit here and get the updated WSS application templates here.
<update 1/8/07>
TechNet Webcast: Upgrading and Migrating to Office SharePoint Server 2007 (Level 200)
Friday, January 12, 2007 1:00 PM Pacific Time (US & Canada)
"... We discuss how to handle special circumstances that may exist in your environment, such as customizations and shared services. We also offer tips and best practices that can assist you both before and after the upgrade."
</update>
<update 1/16/07>
Came across a section in this article "Site Definitions Made Easy" which talks to the developer about the Visual studio extensions and how this makes it so much easier. Obviously the recommendation would be to create the new site def, then use the mapping file to perform the upgrade.
</update>