Microsoft is al een tijdje bezig met .NET Core, een nieuwe variant van .NET. Deze is opensource crossplatform en krijgt veel updates. Maar wat is het nou precies, en waarom zet Microsoft hier zo zwaar op in? En waarom zou je het gebruiken in plaats van het traditionele 4.x framework? In deze blog ga ik daar verder op in.
Microsoft zelf gebruikt dit handige plaatje om de verschillen uit te leggen:
.NET Framework is het volledige traditionele .NET framework die standaard meekomt met Windows. Nieuwe versies komen met Windows Updates mee of zijn handmatig te installeren. Sites worden vrijwel altijd gehost in IIS, wat alleen beschikbaar is op Windows en Windows Server.
.NET Core is het nieuwe moderne .NET. Een .NET Core applicatie is inclusief het framework, dat betekent dat updates hiervan via de app zelf gaan en niet via het systeem. Het is een crossplatform voor Windows, Linux en MacOS. Visual Studio is ook beschikbaar voor MacOS. Daarnaast kun je Visual Studio Code gebruiken.
Xamarin is voor mobiele apps op iOS, Android en Windows Phone.
Voordelen van .NET Core
Performance
Her platform is gemaakt met de focus op performance. Er zijn erg veel blogs over bedrijven die grote applicaties hier naartoe hebben overgezet en daar grote verbeteringen hebben gezien. Zo heeft Microsoft onlangs Bing gemigreerd naar .NET Core 2.1 en zag daarbij een verbetering van maar liefst 34%! Daarnaast heeft ook StackExchange (eigenaar van StackOverflow) onlangs sites gemigreerd.
Cross-platform
.NET Core is crossplatform. Dat betekent dus dat het ook beschikbaar is voor MacOS en Linux. Visual Studio is op dit moment alleen beschikbaar voor Windows en MacOS, en nog niet voor Linux. Ook heeft dit als bijkomend voordeel dat je niet meer vast zit aan IIS voor je hosting. Linux servers zijn een stuk goedkoper dan Windows servers, waardoor je daarop kosten kan besparen.
Future proof
Microsoft heeft onlangs aangegeven dat ze aanraden om nieuwe projecten op .NET Core te maken in deze blogpost. Ook vertellen ze dat ze het .NET Framework gewoon blijven supporten, maar dat ze toch meer gaan focussen op .NET Core. Dit innoveert simpelweg veel sneller dan .NET Framework en Framework is lastig te updaten voor Microsoft, omdat het los staat van een applicatie en dus via systeemupdates geïnstalleerd moet worden.
Nadelen?
Compatibility
Nog niet alle frameworks en packages die je normaal gebruikt bij een Framework project zijn beschikbaar voor Core. Dit is al snel aan het verbeteren, maar het kan zijn dat iets at je nodig hebt nog niet beschikbaar is.
Support
Microsoft heeft onlangs 2.1 uitgebracht, wat een LTS (long-term-support) release was. Dat betekent dat ze het voor 3 jaar beveiligingsupdates zullen geven. Normale releases zullen dit maar voor 3 maanden krijgen nadat er een nieuwe versie uit is gekomen. Mocht je meerdere projecten in Core hebben is het dus handig om een versie met LTS te kiezen. .NET Framework krijgt updates zo lang het het besturingssysteem waar het op staat updates krijgt. Zo krijg 4.5.2 dus updates totdat Windows 8.1 geen updates meer krijgt.
Conclusie
.NET Core is een mooi framework en Microsoft blijft het op een hoog tempo doorontwikkelen. Als je binnenkort voor de keuze staat tussen .NET Framework en Core, dan zou ik toch voor dit laatste kiezen, zeker met alle voordelen die daarbij komen kijken. Na wat review en testen hebben wij binnen Growteq ook besloten de volgende .NET applicaties in Core te gaan werken!