Sitedefinitions i Sharepoint er, ganske som ordet lyder, en definition af en type site i Sharepoint. Standard site typer i Sharepoint er: Team Site, Document Center, Publishing Site mv. Når man starter nye projekter, kan det ofte være en god ide at udvikle sine egne sitedefinitions som en del af projektet. Det meste af ens funktionalitet ligger alligevel i diverse features og en sitedefinition giver bla. mulighed for at aktiverer disse i forbindelse med oprettelse af sites baseret på sitedefinitionen.
En sitedefinition består af følgende:
Webtemp.xml
Findes i TEMPLATE\LCID\XML. Det er her sharepoint kigger efter hvilket templates der findes. Her findes alle standard templates (teamsite, publishing osv) og det er her at nye templates placeres. Kravet for at sharepoint finder de nye templates er at filen starter med webtemp (f.eks webtempMinTemplate.xml).
Her er et udsnit af en publishing template:
<Template Name="BLANKINTERNET" ID="53">
<Configuration ID="0" Title="Publishing Site" Hidden="TRUE" ImageUrl="/_layouts/1033/images/IPPT.gif" Description="..." SubWebOnly="TRUE" DisplayCategory="Publishing">
</Configuration>
<Configuration ID="1" Title="Press Releases Site" Hidden="TRUE" ImageUrl="/_layouts/1033/images/IPPT.gif" Description="..." SubWebOnly="TRUE" DisplayCategory="Publishing" VisibilityFeatureDependency="F6924D36-2FA8-4f0b-B16D-06B7250180FA">
</Configuration>
</Template>
Name attribute skal være med store bogstaver og svarer til mappenavnet i TEMPLATE\SiteTemplates folderen. ID attributen på nye templates skal være over 10000.
Læs mere omkring webtemp.xml på http://msdn.microsoft.com/en-us/library/ms447717.aspx
Onet.xml
Der er i denne fil det hårde arbejde sker. Her defineres bla. de konfigurationer som webtemp filen peger på. Det er anbefalet at holde denne fil så simpel som muligt og placere det meste funktionalitet i features. I denne fil kan bla. navigation, list templates, dokument templates og features defineres. De meste funktionalitet i templaten vil ligge i sitefeatures/webfeatures.
Bemærk at udover at definere features i onet.xml kan man oprettet features som aktiveres på baggrund af templates. Dette kaldes feature stapling (hæftning) i Sharepoint.
Læs mere omkring feature stapling på: http://msdn.microsoft.com/en-us/library/bb861862.aspx
Her er et udsnit af en onet.xml fil:
<Configurations>
...
<Configuration ID="0" Name="Default">
<Lists></Lists>
<Modules>
<Module Name="Default" />
</Modules>
<SiteFeatures>
<Feature ID="00BFEA71-1C5E-4A24-B310-BA51C3EB7A57" />
<Feature ID="FDE5D850-671E-4143-950A-87B473922DC7" />
</SiteFeatures>
<WebFeatures>
<Feature ID="00BFEA71-4EA5-48D4-A4AD-7EA5C011ABE5" />
<Feature ID="F41CC668-37E5-4743-B4A8-74D1DB3FD8A4" />
</WebFeatures>
</Configuration>
Configuration ID, er det nummer som webtemp filen referrere til. I Site/Web-features defineres de features som ønskes aktiveret og i modules elementet defineres filer der skal provisioneres, når der oprettes nye instanser af templaten.
Læs mere omkring onet.xml på: http://msdn.microsoft.com/en-us/library/ms474369.aspx
Med dette på plads er sitedefinitionen klar og der kan nu oprettes nye sites baseret på den nye template.
Det er ofte nemmest at basere sine sitedefinitions på andre sitedefinitions og tilrette disse efter behov. De indbyggede i sitedefintions i Sharepoint er ikke længere væk end 12 Hive og disse er god reference, når man kaster sig ud i at lave sine egne sitedefinitions.