Einarbeitung in das Sitecore CMS

Nachdem mein praktisches Studiensemester bei der Namics sich nun langsam dem Ende neigt, möchte ich noch einmal auf meinen Einstieg ins Sitecore-Team zurückblicken. Dabei soll in erster Linie auf Best-Practices und Schwierigkeiten eingegangen werden, auf welche ich bei der Einarbeitung in das Sitecore CMS gestossen bin. Zusätzlich möchte ich auch aufgreifen, was mir persönlich bei der Entwicklung mit Sitecore am besten gefallen hat.

Einstieg

Beim ersten Zusammentreffen mit einem neuen oder unbekannten System trifft man häufig auf ein und dieselbe Problematik: Wo oder wie fange ich an?
Als ersten Anhaltspunkt sollten hier die zahlreichen Cookbooks und Dokumentation aus dem Sitecore Developer Network dienen, über welche man für ein tieferes Verständnis sowieso nicht vorbei kommt. Für den praktischen Einstieg bietet sich dagegen das angebotene Self-Study Guide for Developers an, in welchem man Step-by-Step eine einfache Website in Sitecore entwickelt.
Zwar wird man anschliessend immer noch keine Überblick über das gesamte Content Management System haben, jedoch sollte das angeeignete Wissen bereits ausreichen, um in einem ersten, kleineren Projekt mitzuwirken.

Verständnisprobleme

Nicht alles ist immer auf den ersten Blick klar. Deshalb sollen an dieser Stelle die wichtigsten Punkte erfasst werden, welche mir bei meinem Einstieg in das CMS im Wege standen.

Sitecore ist sehr modular aufgebaut und arbeitet dabei mit Layouts, Placeholders, Sublayouts, Renderings und ASP.Net-Webkomponenten. Das genaue Zusammenspiel zwischen diesen verschiedenen Komponenten ist essentiell und sollte darum bei der Einarbeitung gründlich behandelt werden. Das Layout kann man sich als die Grundstruktur einer Webseite vorstellen, welche über Placeholder mit beliebig vielen Sublayouts ausgestattet werden kann. Ein Sublayout selbst kann dabei wiederum über Placeholder verfügen, wodurch beliebig tiefe Verschachtelungen möglich sind. Dieses Sublayout wird in Sitecore mit einer ASP.Net-Webkomponente (ein .ascx-File mit C#-Codebehind) verbunden, welche das HTML des entsprechenden Moduls aus den Daten im CMS letztlich rendert. Auf die Sitecore-Daten kann dabei entweder über einen statischen Pfad (z.B. bei globalen Konfigurationen) oder über ein mit der Datasource referenziertes Item zugegriffen werden.

Ein weiterer wichtiger Aspekt stellt auch der Publishing-Prozess dar. Hier stösst man zu Beginn oft auf das Problem, dass einige Änderungen im CMS sich nicht immer gleich auf die Webseite auswirken. Um die Gründe dafür zu verstehen, lohnt sich ein kürzer Blick in die intere Architektur von Sitecore. Das Content Management System arbeitet mit drei Datenbanken, welche sich Core, Master und Web nennen. Die Core-Datenbank enthält fast ausschliesslich Einstellungen, Steuerelemente, Kommandos und Templates von Sitecore selbst, wodurch diese mein Publishing eine eher untergeordnete Rolle spielt. Die Master-Datenbank dagegen enthält alle Items und Templates, welche den Inhalt der zu entwickelnden Website betreffen. Somit betreffen alle Änderungen, welche man im Content- oder Page-Editor vornimmt, diese Datenbank. Da es jedoch unerwünscht ist, dass jede noch so kleine Änderung direkt auf die öffentliche Seite gespielt wird, existiert daneben noch die Web-Datenbank, welche inhaltlich der Master-Datenbank sehr ähnlich ist. Beim Publishing-Prozess wird dabei einfach der gewünschte Inhalt der Master-Datenbank einfach in die Web-Datenbank übertragen, wodurch der Content-Autor selbst entscheiden kann, wann welcher Inhalt freigegeben wird.
Da ein ständiges Publizieren bei der Entwicklung nur unnötig Zeit rauben würde, ist es auch möglich, dass die Website den Inhalt direkt aus der Master-Datenbank entnimmt. Dies ist dringend zu empfehlen und lässt sich in der Web.config steuern.

Wichtig bei der Entwicklung mit dem CMS ist zudem, dass wirklich alles als Item abgebildet ist, welche sich in einer Baumstruktur anordnen lassen. Eine gute Strukturierung der Items ist dabei sehr wichtig, was jedoch nur durch Erfahrung zu meistern ist. Diese Erfahrung erlangt man am besten im direkten Einsatz bei einem Projekt, wobei jede entwickelte Komponente und die dabei erstellten Strukturen stets von einem erfahreneren Entwickler im Auge behalten und gemeinsam abgesprochen wird. Nach kurzer Zeit kommt so dieses fehlende Verständnis ganz von selbst.

Blick auf das Sitecore CMS

Jedes System hat Features, welche einem Entwickler besonders gefallen oder nicht. Im Folgenden sollen nochmal ein paar Themen aufgegriffen werden, welche mich bei Sitecore angesprochen haben:

  • In Sitecore lassen sich sehr einfach Templates erstellen oder erweitern. Somit wird die Flexibilität bei der Entwicklung keineswegs eingeschränkt. Ein Template besteht dabei aus verschiedenen Feldern und kann mit vielen unterschiedlichen Typen dargestellt werden.

  • Sitecore bietet viel Freiheit in der designtechnischen Gestaltung der Webseite.
  • Durch den verfügbaren Content-Editor lässt sich der Inhalt der Webseite sehr einfach und schnell pflegen. Der ebenso verfügbare Page-Editor lässt es ausserdem zu, eine Website im WYSIWYG-Stil zu verarbeiten.
  • Der programmatische Zugriff auf die Daten im Content Management System gestaltet sich sehr einfach.
  • Zwar werden oft nicht alle geforderten Features Out-of-the-Box unterstützt, jedoch ist Sitecore leicht erweiterbar. Viele Features lassen sich auch durch die unzähligen Module der Sitecore Shared Source Library nachrüsten.

Fazit

Trotz geringer Vorkenntnisse in der Webprogrammierung kommt man bei der Realisierung von Websites mit dem Sitecore CMS schnell zum Erfolg. Zwar stösst man in den Anfängen hier und da auf das ein oder andere Problem, jedoch sollte man sich davon nicht abbringen lassen. Wenn man die Hinweise dieses Beitrags befolgt oder verstanden hat, sollte der Einstieg in die Welt von Sitecore kein grosses Hindernis darstellen.

Zurückblicken kann ich auf ein sehr interessantes und lehrreiches Praktikum bei der Namics, durch welches vieles rund um Sitecore erfahren konnte. Danken möchte ich dabei besonders dem gesamten Team Micheal, mit welchem ich nicht nur viele Projekte mit dem Sitecore CMS umsetzen konnte, sondern auch eine wunderschöne Zeit verbringen durfte.