.NET Core vs .NET Framework
Tijdens het studeren voor mijn Microsoft certificering viel mij op dat Microsoft het .NET Core framework veel meer lijkt te promoten dan het traditionele .NET Framework. Ik ben er daarom wat verder ingedoken en wil graag middels deze blog mijn bevindingen met jullie delen. De vragen die ik mezelf heb gesteld zijn: Is het .NET Framework inmiddels vervangen of moeten we dat als passe beschouwen? Waaruit bestaan de huidige toepassingsmogelijkheden van de verschillende frameworks? Kortom: wanneer en waarvoor gebruik je welk framework?
Tot 2014 bestond Microsofts ontwikkelframework enkel en alleen uit het alom bekende .NET Framework. Daarna begon Microsoft het .NET Core framework te ontwikkelen, en sinds eind 2018 werken we met de 2.2 branche ervan. Maar dit betekent zeker niet dat Microsoft het klassieke framework totaal loslaat.
De afbeelding onderaan deze post laat zien welke frameworks momenteel onderdeel uitmaken van .NET: .NET Framework, .NET Core en Xamarin. Xamarin/Mono is een .NET implementatie voor het uitvoeren van apps op alle bekende mobile operating systems, waar ik in deze post verder niet op in zal gaan.
.NET Framework vs .NET Core
.NET Framework brengt belangrijke features uit het conventionele framework samen met die uit .NET Core. .NET Framework onderscheidt zich op het vlak van desktop applications en hierin staat WPF heel sterk.
In .NET Core is vooral de backend sterk, en met name de portabiliteit en het web zijn heel bruikbaar. Het is vrij eenvoudig om een .NET Core applicatie te bouwen, deze klaar te zetten voor installatie en deze vervolgens daadwerkelijk te installeren op een platform van Microsoft, op Linux en zelfs op iOS.
Overigens betekent dit niet dat .NET Core geen libraries heeft voor de desktop. .NET Core bevat zeker ook frontend features, maar het vergt wel wat zoekenergie.
Zowel .NET Core als .NET Framework werken met NuGet als package manager. Met deze manager kun je packages vinden en installeren. Dit kan soms wat problemen geven omdat .NET Framework bijvoorbeeld wel automatisch omschakelt naar .NET Core maar niet andersom. Bij het installeren van packages moet hier dus zeker op gelet worden.
Hybride oplossingen zijn mogelijk, bijvoorbeeld een .NET Core backend (voor bijv. services) gecombineerd met een front.end in .NET Framework.
Welk framework in welke situatie
Op hoofdlijnen is onderstaande indeling te hanteren bij de keuze welk platform te gebruiken in welke situatie:
- .NET Core leent zich uitstekend voor service based of webbased applicaties. Het installeert zich heel makkelijk op verschillende omgevingen waardoor de backend zelfs in bijvoorbeeld een docker kan draaien.
- .NET Framework leent zich prima voor migratie van legacy projecten gebouwd in classic .NET, en voor projecten puur voor de Windows desktop.
- Xamarin is het framework voor de mobile markt. Gebleken is dat de gebruikers daar prettig mee werken.
Tot slot …
Uiteraard is er op internet veel meer informatie te vinden over de huidige stand van zaken van de verschillende frameworks binnen .NET, en over welk framework te gebruiken in welke situatie. Met deze blog heb ik in ieder geval heel kort de verschillende frameworks naast elkaar willen positioneren … een mogelijke trigger om op zoek te gaan naar meer gedetailleerde informatie.