Blazor

Blazor er Microsofts frontend web framework til web applikationer der kan køres enten fra en web server eller direkte i browseren. Med Blazor kan man lave applikationer til både desktop og mobil, uden at de skal distribueres gennem en App Store. Og det allerbedste er at funktionaliteten kan kodes i C#.

Hvad er Blazor?

En traditionel webside bygges op af HTML til indholdet, CSS til styling og layout samt JavaScript til funktionalitet. Med Blazor fra Microsoft kan man istedet lave funktionaliten i C#. Det vil sige at man har god mulighed for at lave sin kode objektorienteret, struktureret og typestærk. Det er ting jeg vægter meget højt i det kode jeg skriver.

Blazor Server Applikation

Blazor applikationer kan laves enten som en Server applikation eller som WebAssembly (WASM). I en Server applikation bliver alt koden (f.eks. C#) udført på webserveren og den resulterende webside bliver overført til brugerens browser via en SignalR forbindelse. Det skal man dog ikke bekymre sig så meget om, for det hele er pakket pænt ind, og fungere godt og effektivt uden man selv skal gøre ret meget. Når koden udføres på serveren er der en masse sikkerhedsmæssige ting, som ikke er en udfordring på samme måde som hvis det var JavaScript. Det er fordi brugeren/browseren slet ikke har adgang til koden på serveren.

Blazor WebAssembley

Koden i WebAssembley bliver i modsætning til en Server Applikation afviklet i web browseren. Web browserne indeholder en virtuel maskine som kan afvikle .NET kode (C# under WASM). Det kan være lidt tungere at starte op den første gang, fordi der er en masse kode der skal overføres før applikationen kan starte op. Til gengæld så kan applikationen efterfølgende køres uden at der er forbindelse til en webserver e.l. Det vil sig, at i praksis kan man distribuere applikationer, f.eks. til en mobiltelefon, uden at det kommer igennem en app store.

Komponenter som kan genbruges

I Blazor kan man lave komponenter (store eller små dele af et brugerinterface), som kan genbruges flere steder, enten i samme projekt eller et helt andet projekt. Så man kan over tid opbygge et bibliotek af de funktionaliteter man bruger igen og igen, og dermed spare udviklingstid.

Komponenterne laves som Razor komponenter. En Razor komponent er en variant af en Razor Page, som igen kommer fra Microsoft ASP.NET Core.

En anden mulighed er at bruge 3. parts komponent biblioteker. Jeg har haft stor glæde af at bruge komponent biblioteket fra Syncfusion. Det er et meget omfattende bibliotek af flotte UI komponenter, det er gennemført og godt implementeret. Syncfusion kan bruges med en community license, som ikke koster noget sålænge din årlige omsætning er under 1 million USD. Det er ok til at starte på.

Projekter

Jeg har brugt Blazor til at lave produktet Online Booking. Syncfusions komponent bibliotek har jeg også brugt i dette projekt. Det har betydet at jeg har en applikation som både kan køre i en browser på en stor skærm, og samtidigt kan avendes på en mobiltelefon eller tablet. Brugerfladen tilpasser sig automatisk til den skærmstørrelse der anvendes, løsningen kan også inkluderes i en eksisterende webside.

Online Booking