In
maart heb ik kennis gemaakt met Sitecore en mijn certificering voor
Sitecore Certified Developer gehaald. Vanaf niets meer dan de naam
snap ik nu hoe de basis van het systeem werkt. Met de ervaringen
die ik heb met andere content managementsystemen als Umbraco en
Smartsite blijkt de basis gemakkelijk op te pakken. De afwijkingen
zitten met name in rendering, security, typen content (data
templates, contenttypes, documenttypes) en dergelijke.
Wat direct opvalt is dat er eigenlijk twee niveaus zijn waarop
content beheert kan worden. Een "Content Editor" voor redacteuren
en dergelijke en een aparte "Page editor" voor zogenaamde Business
Users en designers waarin inline editing mogelijk is en gekoppelde
templates gewisseld kunnen worden. Tot slot is er nog een desktop
omgeving voor de developer.
Beheer van de site
Nadat je ingelogd bent op een van de drie beheerschermen ("Content
Editor", "Page Editor", "Desktop"), zie je een goed verzorgde
interface. Boven aan een Office 2007 achtig menu met Tabs, Ribbons,
Groups en Commands. Daaronder de interface waarin gewerkt kan
worden. Net als Umbraco en Smartsite is ook hier een hiërarchische
opbouw van de content.
Een groot verschil met Smartsite is dat alles in Sitecore een
item (addressable unit of content) is, dus ook afbeeldingen en
andere bestanden, daar je in Smartsite ook nog dingen op het
filesystem op kan slaan (wat buiten system files als CSS,
javascript en dergelijke vanwege de vaste paden eigenlijk
onverstandig is). Ook een mooie feature is het kunnen aanmaken van
een hele nieuwe tak aan de hand van een branchtemplate.
Data templates
Om onderscheid te maken tussen verschillende typen content kunnen
datatemplates gemaakt worden (in Umbraco document types, in
Smartsite contenttypes). Op een datatemplate kun je allerlei
standaard instellingen/waarden zetten (Standard Values). Denk aan
standaard waarden voor de titel, maar ook presentatie en standaard
overerving van onderliggende items. Deze standaard values blijven
beschikbaar en wijzigen mee met de Standard Values tot je ze
veranderd in het item, dit in tegenstelling tot de aanpak in
Smartsite, waar standaard waardes wel ingesteld kunnen worden, maar
geen relatie houden met de standaard waarde.
Ook is het mooi dat een data template weer gebruikt kan worden
als basis voor een andere datatemplate. Hierbij is het mogelijk om
vaste blokken aan te maken en nieuwe data templates hiermee te
bouwen. Voor de rest is er een rijk aantal datatypes om het data
template mee op te bouwen.
Rendering
Een goede beheeromgeving is mooi, maar je content moet natuurlijk
ook gepresenteerd worden. Het rendersysteem is gebaseerd op ASP.NET
en werkt met XSLT voor de meer statische elementen en usercontrols
voor meer dynamische elementen. Net als in Umbraco is het dus
mogelijk om via XPath en een uitgebreid objectmodel elke vorm van
formatting te ondersteunen. Een mooie functie is wel dat je op
allerlei niveaus automatische integratie kan maken met de Page
Editor waardoor inlineediting vrijwel direct werkt. Ook metadata
velden en velden voor gerelateerde item en dergelijk zijn dan aan
te passen. Echter moet hiervoor wel een dergelijk is gedacht, ook
al moet je hiervoor per veld een stukje code maken. De integratie
met .NET is natuurlijk geweldig, al vind ik het af en toe wel heel
ver gaan om voor alles stukjes code te moeten maken, zeker als het
ook met XSLT kan.
Friendly urls
Sitecore ondersteunt out-of-the-box friendly urls en bouwt deze op
net als Umbraco waarbij elke node zijn eigen friendly name heeft en
op die wijze een uniek pad opgebouwd wordt. Hierdoor is het dus ook
mogelijk om op verschillende plekken in de boomstructuur friendly
names te hebben. Denk bijvoorbeeld aan een nieuwsarchief met nieuwe
en evenementen uit 2011. Dit is een feature die Smartsite
bijvoorbeeld niet heeft, hierbij is een friendlyname uniek en niet
het pad van de friendly name.
Security
Aangezien alle een item is, is de security in Sitecore dus ook op
alles in te stellen. Je kan het dus zo moeilijk of makkelijk maken
als je zelf wil. Er zijn vele lagen waarop security gezet kan
worden.
Scheiding van redactie- en
publicatieomgeving
Om de publicatie van de site te ontzien van ontwikkelwerk is bij
de inrichten van een site gekozen voor een opstelling met 3
databases. Een Core-database voor alle core componenten (security,
workflows enzovoorts), een Master-database voor ontwikkel en
redactiewerk en tot slot een Web-database voor de publicatie. Deze
opstelling is zeer schaalbaar en op meerdere servers in te
richten.
Conclusie
Met de kennis die ik van het systeem heb en de dingen die ik heb
gezien krijg ik wel zin om eens een echt project te draaien met
Sitecore. Het is volgens mij een mooi systeem waarmee grotere
organisaties uitermate goed een website kunnen beheren.
Er zijn natuurlijk nog veel meer dingen te vertellen over
Sitecore. Kijk daarvoor eens op www.sitecore.nl.