Let op! Uw browser is verouderd, dit kan negatief effect hebben op de gebruikerservaring. Download Chrome
X

Blazor: Een korte introductie

Microsoft betreedt met Blazor opnieuw de markt van de clientside applicatieontwikkeling. Wat kan je er mee en wanneer gebruik je het? Tim, projectleider bij Covadis, zoekt het uit.

Gereedschap
Gereedschap

Er is een new kid on the block: Blazor. Microsoft betreedt met Blazor opnieuw de markt van de clientside applicatieontwikkeling. In de komende tijd onderzoek ik wat je er allemaal mee kan en hoe en wanneer je Blazor gebruikt. Dit leg ik allemaal vast om jullie zo goed mogelijk te informeren. Vandaag de introductie en daarmee het eerste blog van de reeks!

Logo Blazor
Logo Blazor

Wat is Blazor?

Blazor is een open source framework om moderne web applicaties mee te ontwikkelen. Moderne webapplicaties zijn snel en responsive. Daarnaast bieden ze een goede gebruikerservaring door asynchroon met de server te communiceren. Kortom: een gebruiker moet niet het gevoel hebben dat hij/zij op een website zit, maar een applicatie gebruikt.

Over het algemeen worden moderne webapplicaties gebouwd in JavaScript. JavaScript wordt vaak ondersteund door een framework zoals Angular, React of Vue. Voor .NET ontwikkelaars is dat een extra uitdaging, omdat ze in dat geval een extra taal moeten leren om moderne webapplicaties te ontwikkelen. Blazor lost dit probleem op door C# en .NET als ontwikkelstack aan te bieden.

Hosting models

Blazor kan je op twee manier gebruiken, via zogenaamde Hosting Models. Het serverside-model en het clientside-model. Op dit moment wordt alleen het serverside-model officieel ondersteund. Bij het serverside-model wordt de content serverside gegenereerd en via SignalR naar de browser verstuurd. SignalR is specifiek ontwikkeld om real-time communicatie tussen client en server mogelijk te maken. De gebruiker zal dus niet merken dat de content alsnog op de server wordt gegenereerd.

Het clientside-model maakt gebruik van de nieuwe browsertechniek Web Assembly. Dit is een nieuwe webstandaard, die alle grote browsers tegenwoordig ondersteunen. Web Assembly op zichzelf is een blog waard, maar samengevat biedt het de mogelijkheid om binaire code uit te voeren in de browser. Microsoft heeft hier handig gebruik van gemaakt en heeft .NET Standard zo aangepast dat het werkt in de browser.

In een later blog gaan we dieper in op de voor en na -delen van de verschillende hostingmodellen. Op dit moment wordt alleen het serverside-model officieel ondersteund, maar deze variant is voor productieapplicaties sterk aan te raden.

Blazor vs Angular, React, Vue & …

Blazor is een nieuwe naam in de wereld van moderne webapplicaties. Maar hoe verhoudt het zich ten opzichte van de gevestigde JavaScript frameworks zoals Angular, React en Vue?

Allereerst, de drie JavaScript frameworks zijn al meerdere jaren in ontwikkeling en hebben een grote community. Op het moment van schrijven heeft Angular 60.000, Vue 162.000 en React 147.000 sterren op Github. Blazor heeft momenteel pas 9.000 sterren. Qua community heeft Blazor dus nog aanzienlijke stappen te maken.

Hét grote voordeel van Blazor is dat dezelfde code op zowel de client als server kan worden gebruikt. Een goed voorbeeld hiervan zijn validatieregels. Op het moment dat een formulier moet worden gevalideerd, wil je deze validatie zowel op de client als op de server doen. Door gebruik te maken van Blazor kan deze code worden gedeeld. Bij de JavaScript frameworks kan dit ook, maar onder de voorwaarde dat de serverside-code ook in JavaScript wordt geschreven.

De community, support en volwassenheid zijn op dit moment de punten waarin Blazor het nog aflegt tegen de gevestigde namen. Een belangrijk winstpunt voor de JavaScript frameworks is dat ze goede ondersteuning bieden voor Progressive Web Apps. Het serverside-model van Blazor biedt dit niet en het clientside model van Blazor is nog niet geschikt voor gebruik in productieomgevingen.

Welke taal is door wie ontwikkeld tabel

Conclusie

Is Blazor de toekomst? Het antwoord hierop is niet in één zin te vatten. Ik denk dat Blazor voor .NET ontwikkelaars de toekomst is. Gebruikers willen, naast een steeds betere gebruikerservaring, ook met volwaardige applicaties werken. Hierbij gaat Blazor enorm helpen, omdat .NET ontwikkelaars geen extra taal hoeven te leren om een moderne web applicatie te bouwen. Voor de niet .NET ontwikkelaar zie ik op dit moment nog weinig reden om over te stappen. De JavaScript frameworks zijn een stuk volwassener en hebben een veel grotere community.

Blazor heeft nog wat stappen te zetten. Ik denk namelijk dat het clientside model essentieel is voor de toekomst voor Blazor. Het serverside-model heeft een aantal nadelen die, zeker bij applicaties met veel gebruikers, een probleem vormen. Het clientside-model heeft deze problemen niet en daarom is daarom wat mij betreft het model van de toekomst.

Tot slot is de acceptatie een belangrijk aspect in het succes van Blazor. Concreet: gaan ontwikkelaars het gebruiken, of blijven ze werken met hun vertrouwde toolstack? Door acceptatie groeit de community. Wat op zijn beurt weer zorgt voor meer ondersteuning bij problemen en een beter ecosysteem van packages en libraries. Wordt Blazor een succes? Dat is van een aantal factoren afhankelijk. Maar de belangrijkste factor hierin?! Dat zijn jij en ik!

Projectleider Innovatielab

Tim Boerman

Tim Boerman is de projectleider van het Innovatielab. Dit lab is de R&D afdeling van Covadis. Hier werken talentvolle ontwikkelaars aan prototypes voor onze opdrachtgevers. Hiermee is Tim de slijper die van de ruwe diamanten ware edelstenen maakt. Als correspondent in het land der nieuwe technieken weet Tim van alle relevante noviteiten en aankondigingen. Via zijn blogs houdt hij ons allen op de hoogte, als zijn favoriete NBA team tenminste niet speelt.

Hoi! Ik ben Chiel. Wil je vrijblijvend sparren?

Chiel Pas