Nu har vi papir på at vi kan lave Umbraco 5 sites

1. maj 2012 af Mads Jørgensen

Certified Developer LogoNu har to af vore medarbejdere, Dan og Mads været på certificeringskursus i Umbraco 5. Det giver grundlag for at vi lige skriver lidt om vores erfaringer med systemet, og hvordan vi ser den nære fremtid for produktet.

Ændringer i v. 5 i forhold til v.4.x

Der sker ret meget på Umbraco-fronten lige nu. Man udvikler Umbraco version 5 der er et .NET CMS baseret på MVC 3 og Razor som templating engine. Tidligere versioner var baseret på mere klassisk .NET, hvor man havde alt sideindhold liggende i XML til at transformere til HTML via XSLT.
Ultra kort og forsimplet differens forklaring, men læs evt. Umbraco's egen beskrivelse her.

Hvad betyder alt dette for dig?

Det er svært at sige, men det skulle gerne betyde mere effektiv udvikling, bedre tests og rigtig god performance.

Systemet er udviklet efter nogle principper og designs, der er yderst scalerbare, så systemet i endnu højere grad skulle kunne håndtere små såvel som gigantiske websites. Herudover har visse interface elementer fået et godt brush-up, og det vil der blive endnu mere af i fremtiden.

Hvor står vi lige nu?

Lige nu står vi i en situation hvor Umbraco 5.1 er lanceret, men ikke klar til, at vi kan lave produktionswebsites på den. Der er ikke noget der kan genbruges mellem version 4 og 5, hvorfor det giver en masse udfordringer til pakke-udviklere og projekter, da det hele skal porteres til version 5. Det betyder for os, at udvalget af udvidelser på hylden bare ikke er så stort endnu, som det er i version 4.

Samtidig har Umbraco HQ, i form af Niels Hartvig (@umbraco), sagt at de barsler med en version 4.8, hvor de inkorporerer noget af uComponents (en af vores favoritpakker), samt en masse ændringer ønsket af brugerne. Denne version skal så gerne blive "Den ultimative version 4", og dermed leve lang tid endnu.

Man regner med at Umbraco 5 kan blive produktionsaktuel på den anden side af sommerferien, da man gerne vil have den klar til Umbraco-nørdernes sommerkonference, "Codegarden 12". Herefter begynder vi naturligvis også at tage den mere seriøst i produktionsøjemed. Vi holder hele tiden øje med den, og tester den som en del af at være med i communitiet, men vi tør ikke helt lave produktionsløsninger på den endnu.

Stabilitet

Det er klart, at når der kommer en helt ny kerneteknologi i et CMS, har det en hel masse børnesygdomme. Man skal nok se Umbraco 5 mere som en version 1 end som en version 5. Det, man har taget med sig, er helt sikkert en hulens masse erfaringer fra tidligere versioner og udviklere / brugeres erfaringer.

Samtidig er man (ifølge vores erfaringer) meget opmærksomme på, hvad vi finder og indberetter af bugs, så det kan komme med i næste release. Det er jo typisk med et system som dette: jo flere der tester / bruger systemet, jo hurtigere og mere stabilt bliver det.
Det er nu faktisk ikke vores indtryk, at kernen som sådan er ustabil. Det, du får til at køre, bliver ved at køre og bliver ved at performe. Der er bare nogle ting, man ikke rigtigt kan få til at køre, som vi så rapporterer som bugs.

Jeg vil sige, at core-gruppen er rigtigt hurtige til at tage fat i de indrapporterede bugs, og alle brugerne i form af communitiet er overordentligt gode til at teste og indrapportere bugs.
Altså vil vores konklusion være, at kernen er meget tæt på at være god og stabil i version 5.1, men der mangler udvidelser til kernen, som så igen kan risikere at fremavle flere bugs i kernen. Men vi er rigtigt fortrøstningsfulde.

Performance

Efter en lidt rocky start, er man klart på sporet af noget der lugter af lyn. Der er blevet opdateret nogle SQL Queries og optimeret nogle Hive providers i de seneste releases, så det begynder at ligne noget. Hvis ikke dette kan komme til at performe, er der nogen der gør noget meget forkert... Alle de gode tanker er gjort, så er det bare at føre det ud i livet, og ud på nettet.

Razor vs. XSLT

Et af de store skift for os frontendudviklere er, at vi skal droppe vores elskede XSLT, men bliver det nu også så slemt? Det vil tiden vise, men vi er optimistiske. En af de primære grunde til, at man har valgt at benytte Razor som renderings-motor i Umbraco 5 er, at det har en meget bedre "Learning Curve", så der hurtigt kan komme nye udviklere til. XSLT er lidt svært for folk der f.eks. er vant til at arbejde med Wordpress eller andre PHP systemer (der typisk ikke bruger XSLT), da syntax er meget forskellig.
Den Umbraco-specifikke implementation af Razor er endnu ikke komplet, og kan vel ses lidt som et API under udvikling. En del af de funktionaliteter vi kender er blevet porteret 1-1, samtidig med, at der er tilføjet en hel del andre hjælpefunktioner. Det ser alt sammen OK ud, og vi håber og beder bare til, at man bliver god til at være bagud-kompatibel, så opdateringer bliver så smertefrie som overhovedet muligt.

Potentialet

Som vi ser det, er der et meget stort potentiale og rigtig mange muligheder i Umbraco 5. Det gør dog også at der skal en god del disciplin til for at holde rene linjer, åbenhed og gennemsigtighed i koder og løsningsmodeller.

Det gør sig gældende for de folk der laver kernen, men i den grad også for de folk som f.eks. skal lave Razor. Det skyldes at med .net kode er stort set alt muligt direkte fra renderingen. Ikke desto mindre er det en rigtig dårlig idé at gøre, af et hav af grunde. Det ved vi, og de fleste andre dygtige udviklere, men der er stadig en risiko for at det kommer ud på en glidebane, og nogle projekter bliver noget skrammel. Det handler om god og grundig certificering, og at man i communitiet ikke får lært folk noget forkert. Det er ret vigtigt for at bibeholde god kode og dermed gør det lettere at søge hjælp i fora, blogs etc.

Med andre ord, så kan man sige: hvis communitiet vil det godt, så skal det nok blive godt.

Udvidelser

Ja, dem mangler vi en masse af, men vi er jo selv med til at skulle levere dem, og det ansvar lover vi at tage seriøst.
Der skal nok komme en masse fede udvidelser til Umbraco 5, og en del af de fede fra Umbraco 4.x. skal nok blive konverteret.

Vi glæder os, og det kan I også sagtens gøre... Vi pipper igen, når vi har lavet nogle flere tests og udviklet lidt mere til version 5. Indtil da anbefaler alle stadig version 4 (inklusive Umbraco selv).

Til top