maandag 2 juli 2012

Site definities en Site Templates: wat is het verschil en hoe ga je ermee om?

Een veelgestelde vraag is wat de verschillen zijn tussen Site definitions en Site templates. Beide mogelijkheden worden nogal eens door elkaar gehaald en het blijkt telkens weer lastig te zijn om beslissingen te nemen hoe beide technieken in te zetten.

Vandaar ook een korte intro en wat praktische tips in dit blog artikel.

Een Site definition en een Site template zijn sterk gerelateerd aan elkaar; ze liggen in elkaars verlengde. Een Site template is gebaseerd op een Site definition en bestaat uit wijzigingen die op een bepaalde Site definitie worden toegepast.

Maar laten we eerst eens ingaan op de basis: Site definitions

Een Site definition omschrijft de look en feel van een site, de inhoud ervan (lijsten, bibliotheken, content types, column types, et cetera), navigatie, et cetera. Deze omschrijving wordt gemaakt in aspx en CAML (een XML taal, zie ook: Introduction — What Is CAML?). Site definitions worden opgeslagen in het filesystem van SharePoint webservers, worden gecached door de webserver en zijn daarmee snel beschikbaar voor gebruik. Het detailniveau waarop websites te definieren zijn is groot, groter dan bij het gebruik van Site templates. Aanpassen van menu's (b.v. Edit menu) is bijvoorbeeld goed mogelijk. Let wel: aanpassingen aan Site definities hebben gevolgen voor de de sites die op basis hiervan zijn gemaakt.

Site templates zijn wijzigingen gebaseerd op Site definitions.

Ze worden in Content Databases opgeslagen. Een Site template kan in de vorm van een CAB bestand (Zip bestand met een mappenstructuur met daarin definitie - en content bestanden) worden opgeslagen en worden uploaded in een Site template gallery van een Site collection. Van bestaande Sites kunnen met een simpele klik Site templates worden gemaakt. Site templates kunnen gewijzigd worden zonder dat de sites die op basis hiervan zijn gemaakt, worden aangetast.

De verschillen en afhankelijkheden zijn dus duidelijk. Maar wanneer zet je welke techniek in? En waarmee moet je dan rekening houden?

Best practices: waarmee rekening houden bij de keuze tussen Site definitions en Site temlates?

Hierin zijn de volgende overwegingen van belang:

De mate van detail waarin een site beschreven moet worden.
Wanneer een Site kan worden beschreven door een bestaande Site definitie te gebruiken, heeft dat meestal de voorkeur. Pas wanneer gebruik van een Site definitie noodzakelijk is (b.v. voor het definieren van menu's, nieuwe document typen, ) kan daarop worden overgegaan.

De afhankelijkheden tussen Site definitions en Site templates.
Allereerst: de Site definitie waarop een Site template gebaseerd is, moet op de betreffende webserver aanwezig zijn.
Daarnaast moet rekening gehouden worden met de mate van verandering waaraan site onderhevig zijn en wat de gevolgen zijn voor de Site definities en de afhankelijke Site templates. Zaken die gemakkelijk zijn te veranderen of zaken die aan geen of heel weinig verandering onderhevig zijn, kunnen worden opgenomen in Site definitions. Andere zaken kunnen het beste in Site templates worden opgenomen.

De voorhanden expertise, tools en rechten
Site templates kunnen relatief simpel worden aangemaakt en gebruikt door (bevoegde) eindgebruikers. Site definities, daarentegen, worden gemaakt met speciale tooling, moeten met de juiste expertise worden opgebouwd, en worden opgeslagen in het File system van een webserver, hetgeen de juiste rechten vereist.

Andere situaties...
Daarnaast kunnen andere zaken in bepaalde situaties van belang zijn, bijvoorbeeld performance. Site definities zijn in het algemeen sneller door de webserver aan te bieden dan Site templates.

Conclusies

Bovenstaande geeft aan dat het zaak is om verstandig om te gaan met Site definities: pas je ze naderhand aan dan loop je het risico dat de Site templates die erop gebaseerd zijn beschadigd raken en web sites die hierop gebaseerd zijn niet meer naar behoren functioneren. Eerst nadenken over de gevolgen van wijzigingen en verstandig ontwerpen is daarom een aanrader.

Geen opmerkingen:

Een reactie plaatsen