Sharpening your .NET applications

In detail

WebForms naar Blazor-migratie

WebForms naar Blazor-migratie

In 2019 valt het doek

Tijdens de .NET Conf 2019 bevestigde Microsoft officieel dat WebForms niet naar .NET Core zou worden overgezet. Hoewel de levensduur ervan gekoppeld blijft aan die van framework 4.8, die op zijn beurt verbonden is met de levensduur van Windows, is dit een duidelijk signaal dat het tijd is om in een nieuwe technologie te investeren. Op dat moment had ik een commerciële website ontwikkeld die nauw geïntegreerd was met een ERP en gebaseerd was op WebForms.

De keuze voor Blazor

In het najaar van 2020 valt de keuze op Blazor. Ik zie het als een « goede » opvolger van WebForms: het maakt gebruik van Razor-componenten die HTML-code en C#-code (logica) in hetzelfde bestand samenbrengen, naar het voorbeeld van de vroegere .aspx- en .aspx.cs-bestanden. Het is op dat moment de allernieuwste webtechnologie die Microsoft aanbiedt. Toch voelt het in die periode alsof we ons wagen aan iets nieuws, zelfs revolutionairs, dat nog lang niet algemeen wordt toegepast.

Een volledig andere mindset

In de praktijk was er enige tijd nodig om de juiste principes achter Blazor-programmering onder de knie te krijgen. De opdeling is heel anders: de ontwikkelaar moet denken in termen van « componenten » en niet langer van « pagina’s ». Hoe kleiner zo’n component is, hoe eenvoudiger het is om hem te ontwikkelen, te testen en opnieuw te gebruiken.

Ook de logica « wat in de browser gebeurt, gebeurt in JavaScript » wordt vrijwel volledig losgelaten. Blazor biedt een uiterst performant systeem om de nodige wijzigingen naar de webpagina van de gebruiker te sturen, aangestuurd vanuit de code (C#) die op de server wordt uitgevoerd. Vaarwel Ajax, tot ziens JavaScript!

Uiteindelijk een bijzonder soepele migratie

Uiteindelijk heeft de belangrijkste verandering betrekking op « het decor », de HTML-pagina, waarbij de moeilijkheid vooral ligt in het herschrijven van de gebruikersinterface. De rest kan vrij eenvoudig vanuit de oude WebForms-code worden gemigreerd. De website roept de engines van het ERP aan (een bestelling aanmaken, een artikel toevoegen, een bestelling valideren): op die plaatsen hoeft niets te worden gewijzigd. Ook alle SQL-query’s en de bijbehorende syntaxis blijven identiek.

Het resultaat

Het resultaat is indrukwekkend: een website die werkt als een « single page application », zonder enige postback-refresh meer. En een ontwikkelingsteam dat vrijwel uitsluitend gebruikmaakt van wat het het beste beheerst: C#. De deur staat wagenwijd open voor nieuwe evoluties, zowel op technologisch als op functioneel vlak.

Deze migratie toont aan dat een ingrijpende technologische verandering niet noodzakelijk betekent dat alles van nul moet worden heropgebouwd. Door de business engines en de beproefde fundamenten van de applicatie te behouden en tegelijk de interface met een moderne technologie opnieuw op te bouwen, kon het product grondig evolueren zonder zijn geschiedenis overboord te gooien. WebForms maakte plaats voor Blazor, maar de essentie bleef behouden: de businesslogica, C# en jaren aan code die hun volledige waarde bleven behouden.

Vorige Volgende
Alle producten, technologieën en bedrijfsnamen die op deze website worden vermeld, zijn handelsmerken of gedeponeerde handelsmerken van hun respectieve eigenaars. De vermelde Microsoft-producten (SQL Server, Windows, MAUI, Xamarin, .NET, Blazor, ...) zijn handelsmerken van Microsoft Corporation. Ubuntu is een gedeponeerd handelsmerk van Canonical Ltd.
An unhandled error has occurred. Reload 🗙

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.