Sitecore 10 is een paar weken uit, dus tijd om naar de technische verbeteringen te kijken tegenover Sitecore 9: Sitecore-containers, de ASP.NET Core SDK, de Sitecore CLI en Sitecore for Visual Studio. Daar gaan we!
Sitecore-containers
Containers
Even herhalen hoe je Sitecore 9 installeerde en hostte: op een zelf beheerde IaaS-omgeving, op Azure Web Apps of op Azure PaaS.
Daarnaast was er een oplossing van de community voor Sitecore Docker-images. Vorig jaar begon Sitecore omgevingen in die containers te ondersteunen, op voorwaarde dat problemen ook buiten containers te reproduceren waren. Een duidelijk teken dat Sitecore richting containers ging. Met Sitecore 10 biedt het nu documentatie en officieel ondersteunde images om een oplossing in containers uit te rollen. Zo rol je je Docker-containers veel makkelijker uit naar bijvoorbeeld Kubernetes.
Een image is een pakket met alle code en afhankelijkheden: een blauwdruk om een container te maken. Een image is vaak gebaseerd op een ander image, met wat aanpassingen. Eenmaal gemaakt, kun je een image niet meer wijzigen.
Een ander groot voordeel is meer vrijheid in waar je je omgeving in de cloud host: Azure, Amazon of ergens anders? En containers verlagen de infrastructuurkosten tegenover meerdere virtuele machines, omdat containers de kernel van het besturingssysteem delen in plaats van hem telkens te dupliceren.

Sitecore biedt nu een officiële feed met basisimages, wat met de oplossing van de community niet kon: daar bouwde je ze zelf. De feed heeft publieke images voor Sitecore XM, XP0, XP1 en JSS, plus images die Sitecore niet in productie ondersteunt, zoals Solr, SQL en Redis-cache. Die zijn gelabeld als niet voor productie en bedoeld voor developers. Je hebt eigen basisimages nodig als je bijvoorbeeld een eigen SQL-database of eigen Solr-indexen wilt.
Sneller een ontwikkelomgeving opzetten
Sneller opzetten
Hier zijn we echt enthousiast over:
- Geen installatie: alles wat je nodig hebt, zit in het Sitecore Docker-image.
- Geen zorgen meer over het besturingssysteem: de containers schermen het af.
- Start de containers die je nodig hebt en ga aan de slag. Delen met collega's is makkelijk, want de omgeving is volledig op configuratie gebaseerd.
- Afhankelijkheden zijn makkelijker te beheren. Elke Sitecore-versie heeft een ondersteunde Solr-versie. Als developer die voor verschillende klanten op verschillende Sitecore-versies werkt, moet ik verschillende Solr-versies installeren en onderhouden. Met Solr in een container is dat geen zorg meer.
Voorbeeld: een Docker-opstelling met XM

Hierboven zie je een lokale, geschaalde XM-omgeving. XP kan ook: start gewoon de juiste containers. Met de nieuwe rol van Traefik als reverse proxy draai je al die instanties en werk je aan meerdere projecten tegelijk: de proxy zoekt de juiste container om aan de browser terug te geven.
Containers geven ons meer opties voor lokale ontwikkeling, en meer hostingopties voor de acceptatie- en productieomgevingen van onze klanten.
Aan de slag met Sitecore 10
Lokaal starten ging vlot, en Sitecore documenteert het heel goed. In het kort:
- Installeer Docker Desktop for Windows.
- Clone de Docker Examples-repository.
- Zet je omgevingsvariabelen (Sitecore-licentie, wachtwoorden) in het .env-bestand.
- Installeer de PowerShell-module Sitecore DockerTools, met verschillende hulpfuncties.
- Voer
docker-compose up -duit.
Docker Compose start de containers op basis van hun images. Bestaan ze al, dan kijkt het of de configuratie of het image veranderd is en maakt het de container zo nodig opnieuw. Met -d draaien de containers op de achtergrond. De eerste keer dat je docker-compose up uitvoert, downloadt het de images, en dat duurt veel langer dan de containers starten. Wees de eerste keer dus even geduldig.

Dit is het resultaat voor het Sitecore Helix-voorbeeld met de nieuwe ASP.NET Core rendering container, uit de Helix Examples-repository. Meer over ASP.NET Core verderop.
Sitecore Serialization, de Sitecore CLI en Sitecore for Visual Studio
Serialisatie
Serialisatie neemt een item uit de Sitecore-contentboom, bewaart het op je schijf en laat developers het synchroniseren naar een andere Sitecore-instantie. Zo verhuizen items van een lokale omgeving naar acceptatie en productie, en wordt het makkelijker om code te schrijven of te genereren die met die items werkt, zoals velden uitlezen.
Pas een jaar en een paar maanden geleden kocht Sitecore Hedgehog, met zijn tool TDS (Team Development for Sitecore). Een andere populaire tool om items te synchroniseren is Unicorn. De nieuwe Sitecore Serialization combineert het beste van beide.

Je kunt Unicorn nog gebruiken, dus projecten die erop draaien, upgrade je makkelijk naar Sitecore 10.
Sitecore Serialization instellen
Je bepaalt welke items je serialiseert in een bestand module.json, heel gelijkaardig aan Unicorn. Volg je de Helix-principes met verschillende foundation-, feature- en projectmodules, dan heeft elk zijn eigen configuratiebestand. In module.json kun je paden opnemen of uitsluiten. Het ondersteunt aliassen, wat Windows-problemen met te lange paden oplost. De volgorde is belangrijk: definieer templates voor de items die ervan afhangen.
Het bestand products.module.json uit het voorbeeldproject helix-basic-aspnetcore:

De YAML-bestanden die je krijgt, verschillen een beetje van het formaat van Unicorn. Links de template Hero Banner geserialiseerd met Unicorn, rechts met Sitecore Serialization.

- Beide zijn YAML-bestanden.
- Sitecore Serialization heeft geen veld Database.
- Het serialiseert standaard wel een paar extra velden: Revision ID, Updated by en de datum en tijd van de update.
Hoe maak je die bestanden dan? Met de Sitecore CLI of met een interface in Visual Studio.
De Sitecore CLI
De Sitecore command line interface is een nieuwe tool om de developer experience in Sitecore 10 te verbeteren, vooral om items te serialiseren. Er komen later meer functies bij, maar voorlopig gebruik je hem om te serialiseren en te publiceren. Installeer eerst de CLI. Daarna meld je je op een van twee manieren aan:

1. Aanmelden als gebruiker
sitecore login `
--authority https://<identity authority> `
--cm http://<sitecore instance> `
--allow-write true
Er opent een venster waarin je je als gebruiker aanmeldt op de Sitecore-omgeving.

2. Aanmelden met client credentials
sitecore login `
--authority https://<identity authority> `
--cm http://<sitecore instance> `
--allow-write true `
--client-credentials true `
--client-id <client id> `
--client-secret <client secret>
Je stelt de client credentials eerst in op de Identity Server. CI/CD-pipelines gebruiken ze om met een omgeving te werken en er elk beschikbaar commando naar te sturen.

Een voorbeeld van sitecore ser info:

Sitecore for Visual Studio
De CLI is niet de enige manier. Er is ook een plug-in voor Visual Studio, SVS: Sitecore for Visual Studio. Je hebt enkel een licentie nodig, die bij de Sitecore TDS-licentie zit. De plug-in voegt een venster Sitecore Module Explorer toe aan Visual Studio.

In de Module Explorer bepaal je welke items geserialiseerd worden, en haal of push je specifieke itemmappen. Rechts staat een interactief venster om de module.json-bestanden te beheren. Een klein nadeel in deze versie: je typt het pad naar een Sitecore-item zelf in, zonder makkelijke manier om het in Sitecore te kiezen. SVS krijgt zeker nog updates.
ASP.NET Core
ASP.NET Core
Sitecore gebruikte ASP.NET Core al eerder, bijvoorbeeld voor de Publishing Service. Ook Sitecore Host, achter de Universal Tracker en Sitecore Identity, is gebaseerd op .NET Core. Sitecore schuift steeds verder op naar .NET Core, en Sitecore 10 brengt een nieuwe ontwikkeloptie: de ASP.NET Core SDK. Deze headless optie komt naast de opties die je al had met Sitecore JSS: Vue, React, React Native en Angular, front-endframeworks voor front-end developers. De ASP.NET Core SDK mikt op back-end developers en laat ons met de nieuwste .NET-technologie werken.

Je kunt het Helix-voorbeeld voor ASP.NET Core als testomgeving gebruiken, lokaal opgezet met de nieuwe Sitecore Docker-containers. Dit is de view ListProducts:

Het is sterk dat je Sitecore-applicaties in ASP.NET Core kunt bouwen en toch de Experience Editor kunt gebruiken. Dat zou demo-omgevingen makkelijker moeten maken. Maar het is nieuw, dus we hebben wat tijd nodig om eraan te wennen!
Tot slot en nuttige links
Tot slot
Sitecore 10 is een revolutie voor het platform, en we kijken ernaar uit om Docker te gebruiken, nu officieel gedocumenteerd en ondersteund. De Sitecore CLI lijkt een robuuste tool die uitgroeit tot een Zwitsers zakmes om allerlei taken uit te voeren op elke Sitecore-omgeving.
Kun je niet wachten om met Sitecore 10 te starten? Een paar nuttige links:
- Containers in Sitecore development, documentatie van Sitecore
- Sitecore 10: Integrating Docker, een introductie tot Sitecore Docker-containers door Rob Earlam, Sitecore Evangelist, op YouTube
- The Sitecore Docker images repository, het bijhorende artikel van Rob Earlam (gearchiveerde kopie)
- Should my team adopt Docker?, gearchiveerde kopie
- Sitecore for Visual Studio: the Sitecore Module Explorer
- Sitecore Content Serialization
- Sitecore CLI
- Headless development: the getting started template
- Sitecore 10: Developer Tour, op YouTube
Hulp nodig met Sitecore 10? Onze Sitecore-experts helpen je graag.
Contacteer ons
Klaar om je digitale ervaring naar een hoger niveau te tillen? Neem gerust contact met ons op voor meer informatie over onze diensten en hoe we jou kunnen helpen het volledige potentieel van je digitale marketing te benutten.
Vertel ons over je project
En we komen met een oplossing op maat
Neem contact op met één van onze consultants om de perfecte match te vinden die bij je past en waarmee je kunt groeien.