Sitecore Unicorn

Sitecore Artefakte bestehen zu einem Teil aus Sitecore Items, wie zum Beispiel Renderings, Templates, Platzhalter und weiter Items die wir in unseren Sitecore Projekten nutzen.

Diese Items werden in Sitecore innerhalb der Datenbank gespeichert, aus mehreren Gründen benötigen wir diese Items jedoch auch innerhalb unserer Quellcodeverwaltung.

  • Um diese Items mit anderen Entwicklern zu teilen
  • Um diese Items in unseren Deployment Prozess zu integrieren

Aus diesem Grund müssen wie diese Items serialisiern damit sie ebenfalls in die Quellcodeverwaltung aufgenommen werden können.

Die zwei bekanntesten Tools hierfür sind Unicorn1 und TDS2, in diesem Beitrag gehen wir auf die Open Source Variante Unicorn (MIT LICENSE) ein.

Wie funktioniert Unicorn

  • Zuerst definieren wir welche Items wir serialisieren möchten
  • Diese Items werden dann auf aus der Datenbank auf das Dateisystem geschrieben
  • Anpassungen an den Items werden automatisch und ohne weiteres Zutun direkt auf dem Dateisystem aktualisiert
  • Anpassungen an den serialisierten Items auf dem Dateisystem werden automatisch in die Datenbanken übernommen

Es besteht auch die Möglichkeit diesen Prozess manuell durchzuführen.

Besonderheiten an der Unicorn Serialisierung

Unicorn nutzt zur serialisierung Rainbow3 in einem YAML basiertes Format, dies macht es im Falle von merge Konflikten sehr einfach die Konflikte zu lösen. Dies wird durch verschiedene Anpassungen sichergestellt (Mehr dazu auf dem Rainbow GitHub Projekt).

Eine weitere Besonderheit ist das Rainbow Informationen wie die Content Lenght nicht speichert.

Rainbow

Unicorn Setup

Das Unicorn Setup ist so simpel wie nur möglich und in ein paar wenigen Steps erledigt.

1) Unicorn Package installieren

Zuerst öffnen wir die Package Manager Console und installieren und das Unicorn NuGet Paket (Tools -> NuGet Package Manager -> Package Manager Console).

Alternativ könnt Ihr auch Manage Nuget Packages nutzen.

NuGet installiert in einem nächsten Schritt die notwendigen Abhängigkeiten und das Unicorn Paket.

Wer bei der Installation die folgende Fehlermeldung erhält (Could not install package 'Rainbow.Core 1.4.0'. ... that targets '.NETFramework,Version=v4.5',) nutzt eine veraltete .NET Version.

Mit dem Unicorn 3.3 Release muss die .NET 4.5.2 genutzt werden. Weitere Informationen können dem Issue auf GitHub entnommen werden #175

Im Anschluss an die Installation des Package wird euch eine Readme4 angezeigt die euch die nächsten Schritte erläutert.

2) Unicorn konfigurieren

Alle Unicorn Konfigurationen werden in einem Ordner abgelegt App_Config\Include\Unicorn. Jetzt kopieren wir die Datei Unicorn.Configs.Default.example und benennen diese in Unicorn.Configs.Default.config um. Öffnet die Datei und passt folgenden Bereich auf euer Projekt an:

3) Initiale Serilisierung ausführen

Öffnet euren Browser und ruft folgende URL auf /unicorn.aspx to, wenn alles korrekt konfiguriert ist könnt Ihr das initiale Setup durchführen. Klick hierzu den Button Perform initial Serialization aus.

Alle Schritte im Rahmen der Serialisierung werden in dem Command Line ähnlichen Fenster angezeigt. Dieses Fenster ist ebenfalls bei Fehlern sehr hilfreich.

Ihr könnt jetzt auf die Unicorn Seite zurückkehren oder euch die serialisierten Items auf dem Dateisystem anschauen. Die serialisierten Items werden per Default unter folgendem Verzeichnis abgelegt data\Unicorn\Unicorn Test. Dieser Pfad kann angepasst werden.

Die Items werden automatisch in beide Richtungen synchronisiert, es ist daher kein manueller Prozess nötig (jedoch möglich).

Zu guter letzt noch eine kleine Erinnerung meines Kuba Road Trips, während der Fahrt mit dem Auto über die Insel sind wir an einer Fabrik vorbei gekommen die ein doch sehr passenden Namen zu diesem Beitrag hatte.