- A site definition is the core definition of what a site is in SharePoint.
- A site definition is installed on file system of web front ends, located at ..\12\Template\SiteTemplates. This directory is language-neutral.
- A site definition consists of .aspx pages and .xml files with Collaborative Application Mark-up Language (CAML).
- A major benefit is that the Page and List definition is read locally from the file system, not from Content Database.
- A site template (*.stp file) is created through the user interface or through implementation of the object model.
- The site template package is a package containing a set of differences and changes from a base site definition.
- The site template package is stored as a CAB-based file that can be downloaded or uploaded to site collections by users with the appropriate rights.
When choosing whether to create a site template or a site definition, first consider the following issues:
Are the changes you need to make simple or complex? If, for example, you need to make only minor changes in the look of certain pages and add a few fields in particular lists, you should create a custom site template.
However, if you need to create new content types, add new Web Part definitions, and significantly restructure sites, you should create a custom site definition.
Can you deploy changes to the front-end Web server? If you do not have access to the file system of the computers running Windows SharePoint Services, you have no choice but to create a custom site template.
Site definition (Advantages):
- Data is stored directly on the Web servers, so performance is typically better.
- A higher level of list customization is possible through direct editing of a Schema.xml file.
- Certain kinds of customization to sites or lists require use of site definitions, such as introducing new file types, defining view styles, or modifying the Edit menu.
Site definition (Disadvantages):
- Customization of site definition requires more effort than creating custom templates.
- Editing a site definition after it has been deployed is difficult.
- Doing anything other than adding code can break existing sites.
- Users cannot apply a SharePoint theme through a site definition.
- Users cannot create two lists of the same type with different default content.
- Customizing site definitions requires access to the file system of the front-end Web server.
Site Templates (Advantages):
- Custom templates are easy to create.
- Almost anything that can be done in the user interface can be preserved in the template.
- Custom templates can be modified without affecting existing sites that have been created from the templates.
- Custom templates are easy to deploy.
Site Templates (Disadvantages):
- Custom templates are not created in a development environment.
- Custom templates are less efficient in large-scale environments.
- If the site definition on which the custom template is based does not exist on the front-end server or servers, the custom template does not work.