Pionieren met Blazor

Technologie

Pionieren met Blazor

In gesprek met Bram Dortmans, applicatie ontwikkelaar

Werken met de nieuwste technieken, het is een veelgehoorde term, maar bij Garansys doen we dat ook echt! We werken al sinds juli 2020 met het nieuwe Microsoft framework Blazor. We spreken Bram Dortmans, applicatie ontwikkelaar bij Garansys, die al meerdere applicaties heeft gebouwd in Blazor.

Blazor is een front-end library /framework van Microsoft, onderdeel van de .NET stack. Het is een alternatief voor React of Angular, waar je makkelijk single page web applications mee kunt maken. Het grote verschil met Angular/React is dat het niet met Javascript is gebaseerd maar met C#.

Voordelen

Voor business applicaties is het een groot voordeel dat je in Blazor code kunt delen tussen front- en backend. Hierdoor kun je de volledige stack in C# schrijven en heb je geen vertaling van je data contracten meer nodig maar kan zowel de front-end als de back-end dezelfde .NET implementaties gebruiken. Doordat je de front-end en back-end in één runtime kunt bouwen, en code en objecten kunt delen, gaat het ontwikkelen veel sneller.

Daarnaast hebben we als Garansys geïnvesteerd in een eigen component library voor Blazor. Hierdoor kunnen we bijvoorbeeld grids en formulieren hergebruiken. Dit haalt veel van de herhalende werkzaamheden uit het development proces. Naast deze Blazor library hebben we een bijbehorende ASP.NET library, waardoor we UI components eenvoudig kunnen integreren met de ASP.net API en uiteindelijk de SQL datbase. Een data entry applicatie is zo gebouwd!

DSC05674

Bram: “Ik vind het leuk om met Blazor te werken. Ik vind back-end leuker dan front-end, dus hoe meer front end dingen we kunnen automatiseren, hoe leuker. Het geeft voldoening om tegelijkertijd een eindapplicatie voor de klant te bouwen én onze eigen library te onderhouden.”

Projecten

We hebben al veel praktijkervaring hebben opgedaan in Blazor. Zo hebben we bijvoorbeeld voor één klant al meerdere line of business ontwikkeld. Denk hierbij bijvoorbeeld aan een line-of-business systemen waarin de routes van schepen worden vastgelegd en vanuit waar wordt bepaald waar een volgende vaart naartoe gaat. Dat is gebouwd in Blazor met een ASP.NET backend en SQL server, dit alles wordt gehost op Azure.

 

Server side rendering

Bram: “Wij gebruiken Blazor om front-end als aparte applicatie bouwen, maar er is ook een vorm van Blazor die server side rendert. Dan wordt er via een verbinding met de browser, de updates aan de DOM gecommuniceerd via een web socket”. Bij Garansys gebruiken wij de WebAssembly variant die veel lijkt op een single page application. Hierdoor krijgen we een soortgelijke user experience als bij Angular en React.

 

Uitdagingen

Natuurlijk heeft Blazor ook nog zo zijn uitdagingen. De hot-reload en debuggen gaat nog lastig. Bram: “Verder willen we ook graag een betere testability voor onze Blazor code”

Omdat het relatief nieuw is, is de community nog wel veel kleiner dan die van bijvoorbeeld Angular en React. Er zijn nog weinig libraries beschikbaar. Bij Telerik, Infragistics en DevExpres zijn al wel kant en klare components libraries met grids, formulieren en charts te verkrijgen.

Het is duidelijk dat Microsoft veel moeite in Blazor steekt, aan de change logs van de nieuwe .NET versie te zien.

 

What’s coming?

Twee grote updates die er aan komen met .NET 7 zijn hot-reload improvement en multithreading.

Bram: “Hot reload improvement verbeteringen zijn zeer welkom. De feedback loop zal daardoor veel sneller worden voor ons developers, omdat aanpassingen in de code dan direct zichtbaar zijn.”

Multithreading ondersteuning in .NET 7 naar de browser in zal helpen om betere responsive websites te maken, die op de achtergrond verwerkingen doen zonder dat de web assembly thread daar last van heeft.

De eerste release candidate voor .NET 7 is bijna klaar en komt begin november uit. Het zal dus niet meer lang duren voor Blazor nog interessanter wordt om mee te gaan werken!

Rlxgaransys 2 0057 Michiel

Meer weten? Neem contact op.

Michiel Leenaers

Business Development
06-14688177
m.leenaers@garansys.nl