Få bruker Umbraco i Norge. Det vil Lars-Erik gjøre noe med

"I 2012 møtte og forelsket jeg meg i Umbraco" skriver Lars-Erik Aabech, og viser deg hvorfor du også bør vurdere .NET-CMS-et.

- Umbraco har relativt liten andel i Skandinavia, med unntak av i opphavslandet Danmark. Det ønsker jeg å bidra til å endre, skriver Lars-Erik Aabech. 📸: Privat
- Umbraco har relativt liten andel i Skandinavia, med unntak av i opphavslandet Danmark. Det ønsker jeg å bidra til å endre, skriver Lars-Erik Aabech. 📸: Privat Vis mer

Som .NET-utvikler startet jeg karrieren med ASP 3.0 i 1998. Siden da har det vært viktig for meg å benytte verktøy jeg er mest effektiv med. Jeg har alltid jobbet med webutvikling i markedsføringsbransjen. I de aller fleste tilfeller har det involvert større mengder redaksjonelt innhold.

Hva er vel bedre da, enn å bruke et såkalt "Web Content Management System" (CMS) som er bygget på samme plattform? I 2012 møtte og forelsket jeg meg i Umbraco.

Fun fact: Unbrako er merkenavnet på det vi i Skandinavia kaller "Umbraco-nøkkel". Du vet, de greiene vi skrur sammen IKEA-møbler med. For meg er Umbraco minst så smidig og fleksibelt som de der "Allen"-nøklene, men også så mye mer.

I skrivende stund drifter Umbraco omlag 750 000 nettsteder, bla. Carlsberg, Rådet for den Europeiske Union, Mercedes og Volvo.

Lite open source i Norge

I følge Northpatrol var Episerver, Wordpress og Sharepoint de tre mest brukte CMSene i Norge 2019. Umbraco kom på delt sjetteplass sammen med Drupal.

Med unntak av Umbraco, Drupal og WordPress er samtlige ledende CMS benyttet i Norge lisensiert og proprietær programvare. Det betyr at det koster penger bare å benytte det fra dag én.

Da sitter vi igjen med to PHP-baserte CMS og ett .NET-basert CMS som er gratis, rent bortsett fra alt det rundt. Alt det rundt har jo også en kostnad, men det kommer vi tilbake til.

Umbraco har relativt liten andel i Skandinavia, med unntak av i opphavslandet Danmark. Det ønsker jeg å bidra til å endre, så les gjerne videre og lær hvorfor.

«Man skulle tro at når man betaler for et CMS fra dag én, så burde det være skikkelig ålreit å bruke, også.»
Innholdstreet.
Innholdstreet. Vis mer

Mest likt av brukerne

Man skulle tro at når man betaler for et CMS fra dag én, så burde det være skikkelig ålreit å bruke, også. Sånn er det tilsynelatende ikke. G2s omtaler viser at Umbraco har andreplass på både "High performer-" og "User satisfaction"-aksene.

Jeg er ikke overrasket. Umbraco har all evne til å gi brukerne (redaktørene) er optimal opplevelse for innholdsproduksjon.

Jeg har over 20 års erfaring med å bygge eller overta løsninger på forskjellige CMSer. Min opplevelse er at kvaliteten på brukeropplevelsen er like avhengig av de som implementerer, som selve CMS-løsningen. Jeg har sett begge ender av skalaen i alle system jeg har vært borte i.

Umbraco skiller seg ut ved å ha et moderne og uniformt grensesnitt, som samtidig lar seg utvide til grenser kun definert av fantasien. Hemmeligheten ligger i å utnytte det som allerede er der. Med litt ekstra JavaScript og HTML kan man berike opplevelsen slik at den passer de individuelle brukerne best mulig.

Verdens vennligste samfunn

Umbraco har i mange år brukt slagordet "The Friendly CMS". Uttrykket ble i sin tid "coinet" av en utvikler fra miljøet, ikke Umbraco selv. Imidlertid representerte det miljøet rundt, og kanskje også redaktøropplevelsen på en så god måte at miljøet har omfavnet begrepet siden.

Uansett om du utforsker dokumentasjonen, er dristig nok til å spørre på forum, eller enda dristigere; meetups og konferanser, så blir du møtt av et vennlig miljø.

For å sitere Microsoft MVP og leder av .NET meetupen i London, Dylan Beattie: "Umbraco has one of the most committed developer communities I have seen!". Dette etter at han deltok på Umbraco sin årlige konferanse i Odense.

Nevnte konferanse heter Codegarden og blir nesten alltid arrangert i en annen uke enn NDC Oslo. Dessverre ikke i år. Der møtes årlig flere hundre engasjerte både brukere og utviklere. Flere tusen deltar også remote i et "ekte hybrid arrangement". I år gleder jeg meg spesielt til å møte Mark Seemann som kommer for å snakke om data-arkitektur.

For å holde på vennligheten praktiseres der opptil flere regler jeg ønsker meg annonsert på kode24-dagen 2025. Lotte Pitcher oppsummerte disse bedre enn jeg kan etter hennes nylige tur til Microsofts MVP-summit i Redmond. Her er en kort oversikt:

  • Følg Pac Man-regelen: Alltid ha en åpning i en samtalering og ønsk ukjente velkommen inn. (Gjerne bare for å lytte!)
  • Buddy-program: Meld deg på til å møte en "konferanseveteran" å bli kjent med og henge med i løpet av konferansen
  • Introduser nye bekjentskap til andre folk du kjenner
  • Ha et "åpen for samtale" område hvor det ikke er flaut å hilse på ukjente

Det hele sørger for at alle drar hjem inspirert, med nye venner og forhåpentligvis med ny energi etter at den fysiske utmattelsen av konferanser gir seg.

For de som sitter på hjemmekontor henger mange på Umbracomiljøets egen Discord-kanal. Undertegnede er mest engasjert i #wordle-kanalen, men tar seg brått bryet med en god prat om enhetstesting også.

«Siden 2021 har Umbraco vært på moderne .NET, og dermed kan du bruke akkurat hva du vil.»
Multispråk.
Multispråk. Vis mer

Endelig kryssplattform!

Frem til Umbraco 9 som kom i september 2021 var Umbraco fortsatt på .NET Framework. Det gjorde at man var nødt til å benytte Windows til både utvikling og hosting.

Siden 2021 har Umbraco vært på moderne .NET, og dermed kan du bruke akkurat hva du vil.

Min favoritt er fortsatt Windows for utvikling. Men det er like før jeg heller bruker Linux og SQLite til å hoste bloggen.

Buzzwords, kostnader og utvidbarhet

CMS-bransjen har vært preget av mange buzzwords gjennom tiden. Digital eXperience Platform (DXP), Static Site Generation, Headless, Software as a Service (SaaS) osv. Bare for å unngå å bruke for mange buzzwords i denne artikkelen: Joda, Umbraco kan alt det der.

Gratis: DXP & Static Site Generation

I og med at Umbraco bygger på ASPNET har det alltid vært mulig å gjøre alt man kan på plattformen i samme prosess som Umbraco kjører. Umbraco kan dermed kjøres side-ved-side sammen med alt annet du finner på nuget.

Det har alltid vært mulig å bygge webservices eller i senere tid (ja, jeg er gammel) JSON-baserte HTTP APIer med "vanilla ASPNET" sammen med Umbraco. Derfor tør jeg påstå det alltid har tilfredsstilt kravene til en "DXP".

I nyere tid har det kommet til både Open API endepunkter, webhooks og alt som hører til i en virkelig distribuert DXP. Dermed kan man også "klaske på" f.eks. Astro og ende med en flott, miljøvennlig statisk generert webside, som blir oppdatert hver gang noen klikker "publish" i Umbraco.

Enten du velger å hoste dette på hjemme-pc og GitHub, eller fullt entreprise med Azure DevOps og skalerte App Service plans, så kan du gjøre dette ved å installere Umbraco fra nuget.

Abonnement: SaaS, Headless & GraphQL

Mange synes det er en plage å drifte ting selv, og da har Umbraco akkurat samme løsning som Wordpress; den eneste å ta igjen i G2s målinger.

Du kan selvfølgelig kjøpe Umbraco ferdig hostet fra Umbraco. Umbraco har de aller beste forutsetningene for å drifte Umbraco-løsningen din med nær 100% SLA. De kan dessverre ikke garantere for eventuelle krumspring de som implementerer har gjort, men plattformen er robust som få.

Umbraco hoster tradisjonelt frontend "in process" slik vi pleier med ASPNET. Men er du av typen som elsker JS, SPAer og GraphQL, så har Umbraco et SaaS-alternativ uten innebygget hode. Det heter Umbraco Heartcore, og er et SaaS headless alternativ med bare Umbraco sitt redaktørgrensesnitt. Utenpå ligger et globalt cachelag med GraphQL-grensesnitt. Dermed kan du konsumere innholdet akkurat slik du vil, med akkurat den plattformen du vil.

Dette alternativet passer midt i blinken dersom du helst bare vil benytte JavaScript. Med det nye Content Delivery APIet som kom i versjon 12 kan man gjøre nesten det samme uten Heartcore. Man mister muligheten til å gjøre spørringer med GraphQL, men ikke alle nettsteder har 30 000 noder.

«Det er kun fantasien som setter grenser for den aller beste innholdsstrukturen til nettstedet man skal bygge.»

Arkitektur for innhold

Umbraco lagrer alle data i en SQL-basert database. Men man kan nesten tenke på Umbraco sin innholdsmodell som en dokumentdatabase. I cachelaget er det mer eller mindre det - i et binærtre.

Via administrasjonsgrensesnittet kan man bygge opp såkalte dokumenttyper med felter i alle former og fasonger. Fra enkle tekstbokser, til TinyMCE eller Ace, til supertilpassede sidedesignere a la InDesign. Videre kan man koble sammen "lovlig hierarki" av slike dokumenttyper. Slik kan man for eksempel sørge for at bloggposter kun opprettes under bloggen.

Det er kun fantasien som setter grenser for den aller beste innholdsstrukturen til nettstedet man skal bygge.

Der i også risikoen for å lage et dårlig grensesnitt for redaktørene. Gjør man derimot dette riktig tør jeg påstå at G2 har rett i at Umbraco har de (nest) mest fornøyde brukerne i verden.

Dokumenttyper.
Dokumenttyper. Vis mer

Arkitektur for utviklere

Mange CMS (og andre systemer) jeg har sett og jobbet med har hatt mildt sagt interessant arkitektur. Umbraco har (nesten*) alltid hatt den tradisjonelle tre-lags arkitekturen vi var så glade i på 90-tallet. Du vet - datalag, tjenestelag og brukergrensesnitt. Vi kjenner igjen typer som IContentRepository, IContentService og ContentApiController.

Til versjon 8 som kom februar 2019 var bla. undertegnede med på endelig å introdusere Dependency Inversion med tilhørende Container (Lightinject). Det mm. banet grunnlaget for inneværende arkitektur som følger de nye kjerneabstraksjonene til Microsoft "vi alle" er blitt så glad i. (Jada, jeg vet det var og fortsatt er krangel...)

Videre til V9 hadde miljøet en lengre debatt om hva som skulle gjøres med alle de statiske gamle delegat-baserte eventene. Med stor jubel ble det enighet om å etterligne MediatR og andre lignende meldingskoordinatører. Vi kan nå med hell registrere INotificationAsyncHandler implementasjoner som kalles for; med fare for kommafeil; 99,9% av alle hendelser som oppstår i systemet.

Undertegnede var også del av gruppen som lagde første RFC for porteringen til .NET. Hovedutvikler som skulle være ansvarlig hadde lest samme bok som meg (Clean Architecture) og vi var skjønt enige om retning. Bjarke og teamet har etter min mening gjort en eksemplarisk jobb i å løse opp det som var igjen av misforståelser fra WebForms-dagene. Jeg er lett kjent for å klage veldig hvis noe ikke er løst koblet nok, eller kanskje noe gjenbrukbart som er internal.

I dag tør jeg påstå at Umbraco er et eksempel til etterfølgelse for alle som bygger .NET-baserte "rammeverk" om du vil.

Vi står igjen med et "frontend-rammeverk" for redaktørdelen som i skrivende stund er bygget med AngularJS 1.7. Et samlet utviklermiljø gleder seg som små barn til lanseringen av Umbraco 14 i mai. Da er hele "backofficen" som det kalles er skrevet på nytt med TypeScript og Lit. Vi har ingen andre nevneverdige avhengigheter til bibliotek eller rammeverk. Kanskje med unntak av Umbraco sitt eget UI-bibliotek.Etter dette grepet er vi fri fra AngularJS kravet til komponentene våre. Vi kan velge React, Vue, Vanilla eller Svelte som vi vil for våre egne utvidelser.

* Umbraco 5 ble aldri lansert, og hadde bla. ikke IRepository, men IHive. 🙈🤖

Markedsplass for utvidelser

Umbraco har selv noen kommersielle utvidelser man kan kjøpe enten man hoster selv eller kjøper "cloud". Cloud kommer selvfølgelig med noen av dem innebygget.

I dag finnes fire HQ-eide utvidelser:

  • Forms for skjemaer
  • Workflow for arbeidsflyt i publisering,
  • Commerce for e-handel og
  • UI-builder for RAD databaseutvikling.

Men ikke nok med det. Umbraco sitt verdensomspennende utviklermiljø har sørget for over 1000 "utvidelsespakker". De er i stor grad open source og håndterer alt fra nyhetsbrevutsendelser til e-handel til kvalitetssjekker for SEO og WCAG.

Ikke minst må erkepakken "uSync" nevnes. Den kan benyttes til å overføre "schema" og innhold mellom servere (dev, beta, stage, prod osv.). Utvikleren Jumoo har også en kommersiell utvidelse som lar redaktørene overføre innhold og media selv.

Kom på meetup!

Er du litt fristet til å finne ut mer ønsker vi deg hjertelig velkommen på vårens meetups. Vi får innlegg av Umbraco MVPer fra Polen, Danmark, Sverige og England og Norge.

Først ut er Bergen 16. april, om AI-oversettelser (Amalie Wovern, Knowit), TypeScript fra Open API specs (Rick Butterfield, Nexer Digital), og litt testing fra underordnede.

Vi følger sterkt opp i Oslo 15. mai om .NET Aspire (Dennis Adolfi, Knowit) og om arkitektur vi kan benytte rundt Umbraco (Marcin Zajkowski, Novicell).