SlideShare a Scribd company logo
1 of 32
Umbraco
Headless
Jeroen Breuer & Sem Snel
DUUG Meetup
3 November, 2022
Who are we?
Umbraco headless
2
Senior Software Developer at iO
Werkt al 14 jaar met Umbraco
3 x Umbraco MVP
Jeroen Breuer
Parttime .NET Developer bij iO
Student bij Hogeschool Avans University
Headless Community Team
Sem Snel
Waarom is dit interessant
voor mij?
Umbraco headless
3
Hoe deden wij het eerst?
• Frontend los. Backend pas als frontend af was.
• Soms 2 versies.
• Waar komt conditionele logica?
• Azure hosting.
• Load balance is extra Umbraco server
Umbraco headless
4
Multichannel
- Website
- Nieuwe frontend
- App
- Email
Umbraco headless
5
Kan dit niet anders?
Umbraco headless
6
Umbraco Heartcore – Headless SaaS
• Onderhoudbaarheid
• Schaalbaarheid
• CI/CD
Umbraco headless
7
Wat is Headless?
Umbraco headless
8
Umbraco headless
9
Umbraco headless
10
Umbraco headless
11
Hoe hebben wij dit
toegepast?
Umbraco headless
12
Stage
• Geen Umbraco ervaring
• Geen headless ervaring
• Weinig Blazor ervaring
Umbraco headless
13
Blazor & Umbraco Heartcore
• Snel opzetbaar
• Schaalbaar en onderhoudbaar
• Gemis uitbreidbaarheid
Umbraco headless
14
Blazor & Umbraco RestApi - Boilerplate
• Snel opzetbaar
• No code / Low code
• Umbraco functionaliteit beschikbaar
Umbraco headless
15
React & Umbraco RestApi - Boilerplate
• Twee afstudeerders
• Headless Preview
• Blazor vervangen door React
• Server-side rendering voor SEO
Umbraco headless
16
Demo
• Website
• Backoffice
• Preview
• OpenApi
/content/about-us
Umbraco headless
18
Punten om rekening mee te houden
• Packages met MVC frontend kunnen maar deels gebruikt worden.
• Razor wordt niet meer gebruikt.
• SPA bottlenecks
– Prerendering
– CORS
• Umbraco developers zullen nieuwe zaken moeten leren.
– Is niet de eerste keer. Zijn ook van XSLT / Webforms naar Razor gegaan.
Umbraco headless
19
Kunnen andere teams dit ook?
Umbraco headless
20
MijnOasen - Team Amsterdam
• Verouderde API
• Tussenpartij
• Headstart frontend
• Boilerplate
Umbraco headless
21
Wat maakte het zo makkelijk
voor het team?
Umbraco headless
22
Laat duidelijk scheiding zien tussen disciplines
Umbraco headless
23
Umbraco headless
24
Storybook demo
Umbraco headless
25
Umbraco headless
26
Welke websites zijn headless?
Umbraco headless
27
Wat hebben we geleerd?
• Simpel in gebruik
• SPA Bottlenecks
• Hosting
Umbraco headless
28
Toekomst
• Umbraco headless community team
• Umbraco Heartcore
• Umbraco v12
• Boilerplate overbodig
Umbraco headless
29
DUUG Headless website
• Boilerplate + SvelteKit
• Geef je feedback!
• Snel opgezet
Umbraco headless
30
Get in touch!
Umbraco headless
31
@j_breuer
jeroenbreuer.nl
Jeroen Breuer
Connect on LinkedIn!
Sem Snel
Thank you!
Until next time!

More Related Content

Similar to DUUG Meetup Umbraco Headless Jeroen Breuer & SemSnel

2019 diy migration webinar gs nl
2019 diy migration webinar gs nl2019 diy migration webinar gs nl
2019 diy migration webinar gs nlEDB
 
DSD-NL 2015, Scripting in Delta Shell, Workshop
DSD-NL 2015, Scripting in Delta Shell, WorkshopDSD-NL 2015, Scripting in Delta Shell, Workshop
DSD-NL 2015, Scripting in Delta Shell, WorkshopDeltares
 
Headless Drupal - Wat, Waarom, Hoe & Uitdagingen
Headless Drupal - Wat, Waarom, Hoe & UitdagingenHeadless Drupal - Wat, Waarom, Hoe & Uitdagingen
Headless Drupal - Wat, Waarom, Hoe & UitdagingenLuciuswebsystems
 
DevOps en YAML pipelines
DevOps en YAML pipelinesDevOps en YAML pipelines
DevOps en YAML pipelinesDelta-N
 
DevOps en YAML pipelines
DevOps en YAML pipelinesDevOps en YAML pipelines
DevOps en YAML pipelinesDelta-N
 
Alma Cloud Apps in een stroomversnelling?
Alma Cloud Apps in een stroomversnelling?Alma Cloud Apps in een stroomversnelling?
Alma Cloud Apps in een stroomversnelling?LIBIS
 

Similar to DUUG Meetup Umbraco Headless Jeroen Breuer & SemSnel (9)

2019 diy migration webinar gs nl
2019 diy migration webinar gs nl2019 diy migration webinar gs nl
2019 diy migration webinar gs nl
 
DSD-NL 2015, Scripting in Delta Shell, Workshop
DSD-NL 2015, Scripting in Delta Shell, WorkshopDSD-NL 2015, Scripting in Delta Shell, Workshop
DSD-NL 2015, Scripting in Delta Shell, Workshop
 
New and improved ASP.NET MVC 5
New and improved ASP.NET MVC 5New and improved ASP.NET MVC 5
New and improved ASP.NET MVC 5
 
Meetup ASP.NET 5 19/11/2015
Meetup ASP.NET 5 19/11/2015Meetup ASP.NET 5 19/11/2015
Meetup ASP.NET 5 19/11/2015
 
Headless Drupal - Wat, Waarom, Hoe & Uitdagingen
Headless Drupal - Wat, Waarom, Hoe & UitdagingenHeadless Drupal - Wat, Waarom, Hoe & Uitdagingen
Headless Drupal - Wat, Waarom, Hoe & Uitdagingen
 
DevOps en YAML pipelines
DevOps en YAML pipelinesDevOps en YAML pipelines
DevOps en YAML pipelines
 
DevOps en YAML pipelines
DevOps en YAML pipelinesDevOps en YAML pipelines
DevOps en YAML pipelines
 
Alma Cloud Apps in een stroomversnelling?
Alma Cloud Apps in een stroomversnelling?Alma Cloud Apps in een stroomversnelling?
Alma Cloud Apps in een stroomversnelling?
 
Boots
BootsBoots
Boots
 

DUUG Meetup Umbraco Headless Jeroen Breuer & SemSnel

Editor's Notes

  1. Sem
  2. Sem
  3. Sem - Waarom is dit interessant voor mij? - Als Umbraco developer wil je zoveel mogelijk tijd steken in het leveren van toegevoegde waarde aan je klanten, - Eerst had je maar een optie dat was MVC,  - maar er zijn meerder opties om waarde televeren aan je klant tegenwoordig namelijk headless
  4. Jeroen: Hoe pakte wij het eerst aan bij MVC? Frontend Frontend deed zaken los ontwikkelen. Lang geleden als html files. Daarna atomic design in patternlab. Tegenwoordig soms direct in Razor. Umbraco draait nu ook op de mac. Vaak kon backend pas beginnen als frontend af was. Ook waren er soms 2 versies van de frontend. De html of patternlab files en de Razor versie. Door die 2 versies was het foutgevoelig en soms incompleet. Bijvoorbeeld als conditionele logica er niet in zat. Moest dan in html/patternlab variant of Razor? Wie was verantwoordelijk? Ook niet altijd duidelijk waar javascript bij hoorde en wat gebruikt moest worden. Paar jaar geleden toch nog veel jquery. Zelf hosten in Azure. Load balance is meteen extra Umbraco server.
  5. Jeroen Bij MVC. Content vaak gebonden aan de Website. Niet standaard beschikbaar als je een app nodig hebt. Dan moet je zelf een losse REST API schrijven (dus eigenlijk al headless gaan). Nieuwe frontend vaak alleen mogelijk door Umbraco aan te passen. Het is mogelijk, maar je bent meer bezig zaken compatible te maken ipv waarde leveren.
  6. Jeroen - Zijn er ook andere manieren om dit te doen? - Zijn er alternatieve oplossingen die Umbraco aanbied?
  7. Jeroen - Punten van Rob Habraken opnoemen. Natuurlijk zijn die er! Umbraco Heartcore is een mooi voorbeeld. Het mooie van Heartcore is de decoupled en gedecentraliseerde architectuur, dat een CMS als rol puur die van content provider heeft en dat hij qua applicatie niet verweven is met onze eigen implementatie. Je wilt maximaal tijd steken in de toegevoegde waarde die je kunt leveren, en daarin is het fijn als je ontzorgd wordt op het gebied van hosting en content management vwb hosting. En de losstaande SaaS approach dwingt degene die het implementeert af om de applicatie-architectuur decoupled te houden, dat is uiteindelijk beter onderhoudbaar, beter schaalbaar en werkt sneller (betere workflow, cleanere CI/CD etc).
  8. Jeroen - Dat kan ik het beste uitleggen door een vergelijking.
  9. Jeroen Een traditioneel CMS. Dit is bij Umbraco nog steeds de standaard opzet. Frontend draait op dezelfde server als backend. Zelfs Umbraco draait op dezelfde server. Bij MVC zitten backend en frontend in elkaar verweven en staan niet los van elkaar.
  10. Jeroen CMS en frontend staan los van elkaar. Communiceren elkaar via APIs. Bijvoorbeeld REST of GraphQL. Kunt sneller van systeem wisselen. Een nieuwe frontend is eenvoudig, maar een nieuwe backend is ook mogelijk. Kunt kiezen om alleen frontend servers te load balancen en schalen. Static site generation tools vooral gemaakt voor headless implementaties. De nieuwste versie van een ander CMS genaamd Sitecore (XM Cloud) is zelfs helemaal alleen headless. Daar zit geen traditioneel MVC meer in. Focus op jamstack.
  11. Jeroen Technology agnostic Kunt zelf kiezen welke frontend wordt gebruikt. Veel javascript MVC koppelen is nog mogelijk, maar nu zijn je front en backend ontkoppeld Echter kun je razor headless gebruiken nog wel gebruiken, Sem verteld hier straks meer over
  12. Sem
  13. Sem - Wie kent blazor? Wie heeft er al mee gewerkt? - Blazor is een frontend framework ontwikkeld door microsoft en in tegenstelling tot alternatieve frameworks word Blazor ontwikkeld met C# ipv Javascript - Ik was nog een 2e jaars student die opzoek naar een derdejaarsstage en ik had toen een interesse in Blazor - Rob was op zoek naar een stagiair om Blazor in combinatie met Umbraco te onderzoeken Welke use case werkte niet?
  14. Sem Arnold Visser heeft geholpen voor het Onderzoek om een heartcore testversie mogelijk te maken Backoffice opzetten: Het opzetten van de backoffice was gemakkelijk Moest Umbraco nog leren en Blazor maar basis koppeling was binnen 3 weken opgezet No code: Geen code Package library was niet meer beschikbaar Dus ook geen belangrijke packages, zoals uMarketingsuite Uitbreidbaarheid ontbreekde: De uitbreidbaarheid waar andere Umbraco Developers bekend mee waren was er niet meer Nadruk leggen op dat het toen zo was, maar dat hier later verandering in kan komen
  15. Sem - de basis stond binnen 3 weken - UmbracoContentApi package als inspiratie - Snel opzetbaar - Geen code nodig om het project te starten - De backoffice kon zoals een MVC project opgezet worden - De oude Umbraco ervaring door functionaliteit toe te kunnen voegen
  16. Sem - Conclusie: zijn er achter gekomen dat een losse Umbraco Rest Api beter past bij onze use cases - We hebben besloten om de Umbraco boilerplate hiermee door te ontwikkelen - Stage afgelopen - er zijn twee nieuwe afstudeerders in het bedrijf gekomen, die de opdracht kregen om de boilerplate uit te breiden met preview functionaliteit - Ze hebben de Blazor ontvangen met react, omdat er intern meer React developers zijn in het bedrijf - Server side rendering is ook toegepast, zodat Search engines zoals Google de pagina kunnen vinden en ranken
  17. Sem – server side rendering en seo - Laat website zien - Backoffice eerst laten zien - Terug naar website doormiddel van de preview - OpenApi voorbeeld laten zien
  18. Sem - De basis stond in 3 weken dankje umbraco
  19. Sem - Packages, zoals uMarketingSuite ondersteunen niet out of the box - Soms kun je deze wel aan de hand van kleine aanpassing headless maken - Als je geen gebruik maakt van Blazor kun je geen razor meer gebruiken en moet er dus expertise komen voor een nieuw frontend framework - Prerendering voor seo is een must - Component en contract based werken
  20. Sem Bridge: Is het mogelijk voor een team zonder ervaring om headless?
  21. Sem - tussenpartij - ze moesten verbinden aan een verouderde api van de klant - Hierdoor hebben  - Ze zijn opzoek gegaan naar een manier om Headless te werken - Ze hebben contracten opgestart, zodat frontenders al konden beginnen - De backenders hebben later de verbinding gelegd toen ze de eisen met de tussenpartij hadden gecommuniceerd - Het team van Amsterdam had nog geen ervaring met Umbraco of een headless CMS. - Hierdoor hebben contact opgenomen met onze campus of er al eerdere oplossingen waren gemaakt met Umbraco. - Toendertijd was ik nog bezig met mijn stage. Maar de 1e versie van de boilerplate stond toen al klaar en die hebben ze gebruikt. - Het team heeft aangegeven echt tevreden te zijn met deze oplossing terwijl ze geen ervaring hadden met Umbraco of een headless CMS.
  22. Jeroen - Doordat zaken duidelijk gescheiden zijn is de samenwerking tussen disciplines veel beter.
  23. Jeroen JSON in deze afbeelding gaat beide kanten op. De frontend rendered de UI op basis van JSON. Kan beginnen met statische JSON. De backend genereert de JSON op basis van Umbraco content. Frontend en backend kunnen tegelijk ontwikkelen. De JSON is het contract. Ook wel contract first development genoemd.
  24. Jeroen Met Storybook kunnen frontenders de statische JSON al tonen. Maakt gebruik van atomic design. Werkt met React, Vue, Webcomponents en nog veel meer. Umbraco gebruikt het ook voor nieuwe UI library.
  25. Jeroen Componenten die Sem liet zien tijdens boilerplate staan hier ook. Zijn exact dezelfde componenten. Geen 2 versies meer nodig. Zoals html en Razor. React met nieuwste versie van javascript werkt erg fijn. Als backend developer kan ik er ook goed in werken. Zolang het geen CSS is ;-).
  26. Jeroen Als je headless werkt kunt ook eenvoudig een single-page application (SPA) bouwen. Die zijn vaak sneller omdat niet de gehele pagina opnieuw gerenderd hoeft te worden en kunnen ook gebruikersvriendelijker zijn. Bij MVC merk je vaak dat designers zaken ontworpen hebben die niet mogelijk zijn. Dit is bij een SPA vaak wel het geval. Zie bijvoorbeeld de animatie in deze slide.
  27. Jeroen Enexis is volledig headless. Maakt ook gebruik van storybook. De website bevat veel grote en complexe formulieren. Dankzij React hebben we die formulieren snel en dynamisch kunnen opzetten. Dat was met Razor een stuk lastiger geweest. Omdat het ook een single-page application (SPA) is kun je altijd feedback geven aan de gebruiker. Je hoeft niet meer na te denken wanneer je iets SSR doet in Razor en wanneer iets met AJAX. Want alles is een API call dus alles is AJAX. Maar nog steeds met SSR.
  28. Sem Het is super simpel, mensen zonder umbraco en headless ervaring hebben dit werkelijkheid kunnen maken Wat  Enige bottlenecks die we hebben voorzien, zijn de standaard SPA bottlenecks Ook moesten we het devops process aanpassen omdat de frontend los draait van Umbraco.
  29. Sem Mezelf op kaart brengen Hoe ik het heb gelost Vergelijking Praktisch voorbeeld Business voordeel We geven feedback op basis van onze boilerplate en ze nemen het mee Juist door onze ervaring van de boilerplate worden sommige zaken in umbraco opgenomen Word de umbraco boilerplate overbodig, dat is goed want dan word het vrijgegeven aan heel de community!
  30. Sem + Jeroen Visschers Geen Umbraco ervaring Geen headless ervaring Onbekend framework Devops
  31. Sem
  32. Sem