.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. Inmiddels is de “Core” weggevallen en zijn we bij versie 8 aangekomen. Onlangs kreeg ik dan ook de vraag van mijn opdrachtgever: “Gaan we onze backend upgraden naar .NET 8? En waarom dan wel of niet?”

In deze blogpost 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 klinkt misschien wat kort door de bocht, maar deze instelling maakt je wél 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 securityrisico’s. Vaak wordt er dan gewacht: “Dat doen we wel over een paar maandjes.” Maar de praktijk leert dat 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 — mits je de updates niet laat opstapelen. Ja, ook voor grotere platforms ben ik deze mening toegedaan. Het gevolg van te lang wachten is vaak dat meerdere aspecten van je applicatie een nieuwe implementatie nodig hebben. En als het tegenzit, moet je zelfs concluderen dat de hele applicatie vervangen moet worden. Dan ben je nog veel verder van huis.

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

    Los van de filosofie “to update or not to update?”, is het ook belangrijk om te kijken wat voor nieuwe features een update met zich meebrengt. Ik wil vooral kijken naar de features die Microsoft zelf uitlicht, om zo een beter beeld te krijgen van de richting die zij op willen. Dat zijn er te veel voor deze blogpost, dus heb ik deze selectie gemaakt:

    • Performance Improvements
    • Native AoT
    • AI Integration
    • .NET Aspire
    Noah Steijlen

    Noah Steijlen

    .NET Developer

    Performance Improvements

    Wie houdt hier nou niet van? Het lijkt erop dat de performance van .NET 8 over de hele linie is improved. Hiervoor heb ik zelf wat benchmarks gerund, maar ook gekeken naar tests van andere developers. De algehele performance improvement ligt rond de 30%. Dat kan behoorlijk aantikken, zeker als je kijkt naar de hoeveelheid LINQ-queries die een gemiddelde applicatie uitvoert. Dit is dus zeker een goede reden om je applicatie te updaten.

    Native AoT

    Voor wie het niet kent: AoT (Ahead of Time) compilation vertaalt je .NET-code direct naar machine code. Dat is anders dan bij JIT, waarbij de broncode eerst naar IL (Intermediate Language) wordt gecompileerd, waarna de IL tijdens runtime naar machine code wordt vertaald.

    Met .NET 8 is de file size van AoT-applicaties met ongeveer 40% verlaagd ten opzichte van .NET 7. Daarnaast ondersteunt .NET 8 nu alle architecturen van Apple-platformen (macOS en iOS), maar ook Android (x64 en Arm64). Dit is interessant, omdat Microsoft hiermee laat zien dat ze .NET breed willen ondersteunen — en ze zijn al goed op weg.

     

    .NET Aspire

    Dit is een nieuwe oplossing die is geïntroduceerd met .NET 8. Aspire helpt je bij het vereenvoudigen van je ontwikkelervaring voor cloudapplicaties. Hoe? Bijvoorbeeld door het managen van je multi-projectapplicaties, en deze overzichtelijk te runnen binnen gedeelde omgevingen. Dit kan enorm helpen om je applicatielandschap te stroomlijnen. Aspire is nieuw, maar bevat nu al veelbelovende features — genoeg om een hele post aan te wijden.

    AI Integration

    Met .NET 8 introduceert Microsoft ondersteuning voor AI plugins en tooling, inclusief integraties met Azure. Sinds ChatGPT wereldwijd bekend is geworden, is het voor veel mensen duidelijker geworden wat AI allemaal kan. Dat ondersteuning hiervoor innovatief is, hoef ik denk ik niet verder toe te lichten.

    Conclusie

    Ik denk dat we wel kunnen concluderen dat Microsoft écht bezig is met innoveren, op meerdere vlakken. Denk aan oplossingen voor cloudapplicatiebeheer die we niet eerder zagen, bredere platformondersteuning voor native .NET-applicaties, en natuurlijk de integratie van AI-functionaliteiten. Ik ben benieuwd wat Microsoft ons in de toekomst nog gaat 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.