Back to Blogs
dotNEt 5.0 om alle ondersteunde platforms te ontwikkelen: Windows, MacOS en Linux, in principe met dezelfde base-code

Dit moet je weten over .NET 5.0

Met de release van .NET 5.0 brengt Microsoft eindelijk duidelijkheid in de wereld van .NET. Niet langer is er een ‘core’ en een framework en een runtime-bestand. Je vindt voortaan alles in één platform. Wat moet je nog meer weten over .NET 5.0?

Om te beginnen is er nu echt maar een versie van .NET waarmee je voor alle ondersteunde platforms kunt ontwikkelen: Windows, MacOS en Linux, en in principe dus met dezelfde base-code. Het is nog steeds mogelijk om platform-specifieke software te maken. Dat doe je door in de code aan te geven dat het voor een bepaald (Windows-)platform bedoeld is met een Target Framework Moniker. Daarmee worden automatisch de juiste API’s in de runtime gebruikt. Voor andere besturingssystemen komt de Target Framework Moniker met .NET 6.

Mobiele apps

Wat kun je (nog) niet? Om een echt unified platform te worden, moeten natuurlijk ook de mobiele besturingssystemen worden ondersteund. Deze ondersteuning voor iOS en Android komt beschikbaar in .NET versie 6, die gepland staat voor eind dit jaar. Voor nu zul je nog gebruik moeten maken van Xamarin en Unity.

Om programma’s te ontwikkelen voor .NET kun je zoals altijd terecht bij Visual Studio. Tegelijk met .NET 5 verschenen C# 9 en F# 5. Om die te kunnen gebruiken moet je Visual Studio 16.8 of later hebben voor Windows en de laatst beschikbare versie voor macOS. Wil je ontwikkelen voor de nieuwe M1-processor van Apple, dan moet je wachten op .NET 6.0.

Met een unified platform komt ook een universele gebruikersinterface. Helaas nog niet voor de volle honderd procent met versie 5.0. Ook dat zal met .NET 6.0 echt realiteit moeten worden. Vanaf dan kun je dus één project ontwikkelen dat met dezelfde UI draait op Windows, Mac, Android en iOS.

Geen aparte runtime meer

Een van de beste nieuwe functies binnen .NET 5 is dat je nu echt ‘single-file’ applicaties kunt maken. Alle bestanden, dependencies én de runtime zitten in één bestand. Dat is jouw keuze overigens. Je kunt nog steeds applicaties publiceren met alles als losse bestanden. Maar kon je met .NET 3.1 niet ook al single-file apps maken? Die optie was er toch al? Nee, want daarbij werden alles wel als één bestand gedistribueerd, maar op de computer van de gebruiker tijdens het draaien uitgepakt, in tijdelijke mappen geplaatst en vervolgens uitgevoerd. Met ingang van .NET 5.0 verandert de interne structuur van de applicatie die je maakt, en die wordt direct uitgevoerd zonder merkbaar prestatieverlies.

Met nieuwe versies zijn er onvermijdelijk ook zaken die verdwijnen. In dit geval met name functionaliteit die je eerder in de losse frameworks kon aantreffen. Zo is er niet langer ondersteuning voor Web Forms. Niet heel verrassend, aangezien .NET Core nooit ondersteuning had voor Web Forms. Het lag al in de lijn der verwachting dat Web Forms zou verdwijnen samen met .Net framework.

Ook het Windows Communication Foundation framework heeft zijn langste tijd gehad. Ook dat is te begrijpen, aangezien dit platform-specifieke framework niets te zoeken heeft in een platform-onafhankelijke omgeving als .NET 5. Om dezelfde reden is ook Windows Workflow Foundation niet opgenomen in .NET 5.

Nog even op een rijtje:

  • .NET 5.0, een echt unified platform voor verschillende besturingssystemen

  • Ondersteuning voor iOS en Android (later dit jaar)

  • Je kunt Visual Studio blijven gebruiken

  • Tegelijk met .NET 5 zijn nu ook C# 9 en F# 5 verschenen

  • Geen aparte runtime meer, dus single file applicaties

Er zijn nog veel dingen die pas in de volgende versie van .NET echt realiteit worden. Maar als je niet aan legacy API’s vastzit is er geen enkele reden om te wachten met overstappen naar .NET 5.0.