.NET Tutorials, Forums, Interview Questions And Answers
Welcome :Guest
Sign In
Win Surprise Gifts!!!

Home >> Articles >> SharePoint >> Post New Resource Bookmark and Share   

 Subscribe to Articles

Site Definition in SharePoint

Posted By:Dhananjay Kumar       Posted Date: December 17, 2009    Points: 25    Category: SharePoint    URL: http://www.dhananjaykumar.net  

Site Definition in SharePoint

Site Definition

  • Site Definitions are the foundations on which all sites and user templates are built. 
  • Site Definition is collection ox XML and .aspx file.
  • Site Definitions are predefined components needs to be included when a site was created in SharePoint server.
  • Site Definition contains information of Web Part , Lists, Features and navigation bars to be included in the site.
  • Customizing Portal Sites and other SharePoint sites using Site Definition is most appropriate for third party developer and SharePoint Administrator.
  • Site Definitions requires access to a file system of the Web Server.
  • Server administrator must be also involved in deployment of Site Definitions. 
  • Custom Site Definitions are Version and Upgrade independent. 
  • Subsequent upgrades to SharePoint products  and technologies may overwrite  existing Site Definitions. Using Custom Site definition exclude site from potential upgrade issues. 
  • To avoid Unghosting  , Custom Site Definition is to be create.
  • There are two options to create it
    1. Create New Site Definition File : Either Start from Scratch and create files one by one  or Copy an existing Site Definition and modify it.
    2. Copy a Site Definition and change it in Visual Studio:  We can make copy an existing site definition and modify it in visual studio to create new site definition.
  • The configuration of this site definitions are defined in XML file which is available in

    C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\1033\XML folder.
  • In the file system these definitions are available in C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\Site Templates.
  • Each of these site definitions consists a XML folder and a Home page (default.aspx).
Steps to create custom Site Definition

 Log on as an administrator

2. Browse to C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\SiteTemplates.
Copy STS folder-> Paste it at same place -> Rename it as TIGER.

3. Open the folder Tiger

4. Search for default.aspx

5. Open default.aspx in notepad.

6. Modify code. Here we need to add code for site definition.


<%@ Page language="C#" MasterPageFile="~masterurl/default.master" 
ublicKeyToken=71e9bce111e9429c" %> <%@ Register Tagprefix="SharePoint" 
Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=, Culture=neutral, 
PublicKeyToken=71e9bce111e9429c" %> <%@ Register Tagprefix="Utilities" 
Namespace="Microsoft.SharePoint.Utilities" Assembly="Microsoft.SharePoint, Version=, Culture=neutral, 
PublicKeyToken=71e9bce111e9429c" %> <%@ Import Namespace="Microsoft.SharePoint" %> <%@ Register 
Tagprefix="WebPartPages" Namespace="Microsoft.SharePoint.WebPartPages" Assembly="Microsoft.SharePoint, 
Version=, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<asp:Content ID="Content1" ContentPlaceHolderId="PlaceHolderPageTitle" runat="server">
  <SharePoint:EncodedLiteral runat="server" text="<%$Resources:wss,multipages_homelink_text%>" 
EncodeMethod="HtmlEncode"/> - <SharePoint:ProjectProperty Property="Title" runat="server"/>
<asp:Content ID="Content2" ContentPlaceHolderId="PlaceHolderPageImage" runat="server"><IMG 
SRC="/_layouts/images/blank.gif" width=1 height=1 alt="">asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderId="PlaceHolderPageTitleInTitleArea" runat="server">
   <label class="ms-hidden"><SharePoint:ProjectProperty Property="Title" 
<asp:Content ID="Content4" ContentPlaceHolderId="PlaceHolderTitleBreadcrumb" runat="server"/>
<asp:Content ID="Content5" ContentPlaceHolderId="PlaceHolderTitleAreaClass" runat="server">
<style type="text/css">
TD.ms-titleareaframe, .ms-pagetitleareaframe {
  height: 10px;
Div.ms-titleareaframe {
  height: 100%;
.ms-pagetitleareaframe table {
  background: none;
  height: 10px;
<asp:Content ID="Content6" ContentPlaceHolderId="PlaceHolderAdditionalPageHead" runat="server">
  <META Name="CollaborationServer" Content="SharePoint Team Web Site">
  <script type="text/javascript">
  var navBarHelpOverrideKey = "wssmain";
<asp:Content ID="Content7" ContentPlaceHolderId="PlaceHolderSearchArea" runat="server">
  <SharePoint:DelegateControl runat="server"
  ControlId="SmallSearchInputBox" />
<asp:Content ID="Content8" ContentPlaceHolderId="PlaceHolderLeftActions" runat="server">
<asp:Content ID="Content9" ContentPlaceHolderId="PlaceHolderPageDescription" runat="server"/>
<asp:Content ID="Content10" ContentPlaceHolderId="PlaceHolderBodyAreaClass" runat="server">
<style type="text/css">
.ms-bodyareaframe {
  padding: 0px;
<asp:Content ID="Content11" ContentPlaceHolderId="PlaceHolderMain" runat="server">
  <table cellspacing="0" border="0" width="100%">
    <td class="ms-pagebreadcrumb">
  <asp:SiteMapPath SiteMapProvider="SPContentMapProvider" id="ContentMap" SkipLinkText="" 
NodeStyle-CssClass="ms-sitemapdirectional" runat="server"/>
    <td class="ms-webpartpagedescription"><SharePoint:ProjectProperty Property="Description" 
   <table width="100%" cellpadding=0 cellspacing=0 style="padding: 5px 10px 10px 10px;">
<td valign="top" width="100%" colspan="3">
<WebPartPages:WebPartZone runat="server" FrameType="TitleBarOnly" ID="Top" Title="loc:Top" />
    <td valign="top" width="70%">
    <WebPartPages:WebPartZone runat="server" FrameType="TitleBarOnly" ID="Left" 
Title="loc:Left" />
    <td> td>
    <td valign="top" width="30%">
    <WebPartPages:WebPartZone runat="server" FrameType="TitleBarOnly" ID="Right" 
Title="loc:Right" />
    <td> td>
  <td valign=â?topâ? width=â?100%â? colspan=â?3â?>
  <WebPartPages:WebPartZone runat="server" FrameType="TitleBarOnly" ID="Bottom" 
Title="loc:Bottom" /> 

7. Register new site definition to SharePoint.

8. Open the folder
C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\1033\XML

9. Copy the file WEBTEMP.XML and save it as WEBTEMPTIGER.xml. here make a note that , we need to append name of folder which we created in step 2 ( in this case it is tiger) to WEBTEMP. So here name would be WEBTEMPTIGER.xml

10. Open WEBTEMPTIGER.XML in notepad and replace it with following content.
xml version="1.0" encoding="utf-8"?>

<Templates xmlns:ows="Microsoft SharePoint">

  <Template Name="TIGER" ID="10009">

  <Configuration ID="1" Title="Tiger Definition" Hidden="FALSE" ImageUrl="/_layouts/images/Eye.GIF" Description="Tiger Site." DisplayCategory="Custom" AllowGlobalFeatureAssociations="False"Configuration>

Make sure here ID should be greater than 10000. It must not collide with id of any other Site Definition.

11. Restart IIS. Go to Start->Run->IISRESET

12. Now you would be able to see this Site Definition inside Custom category.

 Subscribe to Articles


Further Readings:


No response found. Be the first to respond this post

Post Comment

You must Sign In To post reply
Find More Articles on C#, ASP.Net, Vb.Net, SQL Server and more Here

Hall of Fame    Twitter   Terms of Service    Privacy Policy    Contact Us    Archives   Tell A Friend