.NET 8: to update or to not update?

In 2014 begon mijn .NET carrière toen .NET Core 1.0 net een paar maanden was gereleased.
Inmiddels heb ik alweer 7 jaar ervaring met .NET. De “Core” is weggevallen en zijn we in november 2023 bij versie 8 aangekomen. Een nieuwe versie betekent ook de vraag krijgen: “Gaan we onze backend upgraden naar .NET 8? En waarom dan wel, of niet?”.
In dit blog neem ik jullie mee in de overwegingen die ik heb gemaakt bij het beantwoorden van deze vraag en ik zal daarbij ook de belangrijkste veranderingen van .NET 8 versus .NET 7 belichten.

Maak een afweging van de risico’s en compatibility met je applicatie

    Persoonlijk ben ik altijd voorstander van meegaan met veranderingen en updates. Het is altijd maar een kwestie van tijd voordat je aan iets nieuws gewend raakt en het zorgt ook nog eens voor een frisse wind. Dit kan je misschien wat kort door de bocht vinden, maar deze instelling maakt je wel meer adaptable. Dat stelt je ook goed in staat om bij te stellen waar nodig.

    Er zijn altijd mensen die voorzichtig zijn met het upgraden van hun platform, vaak wordt er verwezen naar eventuele kinderziektes en mogelijke security risico’s.

    Vaak wordt er dan gewacht: “Dat doen we wel over een paar maandjes.” Maar de praktijk leert mij dat ook in dit geval, van uitstel, afstel komt. Bovendien, als er nu daadwerkelijk nog bugs in blijken te zitten, wat ga je dan doen? Weer een paar maanden wachten? Het up-to-date houden van je platform is vaak een kleine tijdsinvestering indien je het updaten niet laat opstapelen. Ja, ook voor grotere platforms ben ik dit van mening. Het gevolg is vaak dat als je er te lang mee wacht, meerdere aspecten van je applicatie een nieuwe implementatie nodig zullen hebben. Dit is als het meezit, er kan ook de conclusie moeten worden getrokken dat de applicatie helemaal zou moeten worden vervangen, dan ben je veel verder van huis.

    Maak afwegingen rondom de voordelen, changes & nieuwe features in .NET 8

    Los van het vraagstuk rondom de risico’s en compatibiliteit van een nieuwe update in de algemene zin, is het ook belangrijk om te kijken welke nieuwe features een update met zich meebrengt. In dit blog kijk ik vooral naar de features die Microsoft zelf uitlicht, om ook een beter idee te krijgen welke kant Microsoft zelf op wil gaan. Alle nieuwe .NET 8 features belichten zijn er net iets teveel voor deze blogpost, dus heb ik de volgende selectie gemaakt:

    • Performance Improvements
    • Cloud-Native Functions
    • Container Improvements
    • Native AoT
    • AI Integration
    • Blazor Improvements
    • .NET MAUI
    • C# 12
    • Tool Support
    Noah Steijlen

    Noah Steijlen

    .NET Developer

    Performance Improvements

    Wie houdt hier nou niet van? Het lijkt erop dat across the board de performance van .NET 8 is verbeterd. Hiervoor heb ik zelf wat benchmarks gerund, maar ook naar een aantal van andere developers gekeken. De algehele performance improvements die je terug zal vinden ligt zo rond de 30%. Dit kan zeker op gaan tellen, zeker als je kijkt naar de hoeveelheid LINQ queries die een gemiddelde applicatie uitvoert. Dit kan zeker een goede reden zijn om je applicatie te updaten.

    Native AoT

    Voor de mensen die het niet kennen: AoT (Ahead of Time) compilation vertaalt je .NET code direct naar machine code. Dat is in tegenstelling tot JIT waarbij de source code eerst naar een IL (Intermediate Language) wordt gecompileerd, waarna de IL de code tijdens execution naar machine code wordt gecompileerd.

    Met .NET 8 worden ook alle architecturen van Apple’s platformen (MacOS & IOS) ondersteund, maar ook Android (x64 & Arm64). Daarnaast is de file size van .NET 8  AoT applicaties aanzienlijk verlaagd met ongeveer 40% ten opzichte van .NET 7. 

    .NET Aspire

    Dit is een nieuwe oplossing die is geïntroduceerd met .NET 8. Aspire helpt je met het vereenvoudigen van je cloud app ontwikkel ervaring. Hoe Aspire dit doet? Aspire managet bijvoorbeeld je multi project applicaties voor jou, door deze overzichtelijk te runnen met gedeelde environments. Dit kan enorm helpen met het stroomlijnen van je applicatie landschap. Aspire is net nieuw, maar bevat nu al veelbelovende features.

    Conclusie

    Ik denk wel dat je de conclusie kan trekken dat Microsoft echt bezig is met innoveren in vele opzichten. Cloud applicatie management oplossingen die we nooit eerder hebben gezien, het verbreden van de platformen waarop .NET native kan worden gedraaid & natuurlijk het makkelijk maken om AI platformen te integreren met je applicatie. Ik ben benieuwd wat Microsoft ons in de toekomst zal brengen.

    Al met al raad ik mijn huidige opdrachtgever aan om te updaten, omdat de voordelen en nieuwe features een aanzienlijke verbetering gaan brengen op performance en gebruiksgemak. De migratie ben ik inmiddels aan het uitvoeren en neemt ongeveer 20 uur in beslag.