.NET Core vs .NET Framework: wanneer kies je welk framework?

net core vs. net framework blogpost header image
net core vs. net framework blogpost header image
Home / Blog & Nieuws / Applicatie-ontwikkeling / .NET Core vs .NET Framework: wanneer kies je welk framework?

Ontwikkelaars vandaag de dag staan voor veel verschillende uitdagingen als het gaat om het kiezen van een developmentframework. Ontwikkelaars die willen ontwikkelen met een Microsoft-technologie, hebben doorgaans vier keuzes: .NET, .NET Core, ASP.NET en ASP.NET Core. In dit artikel leggen leggen we de verschillen en overeenkomsten uit tussen .NET Core vs. NET Framework. Na het lezen weet je welk framework voor jouw type applicatie geschikt is en welke hostingopties er zijn.

 

Wat is een developmentframework?

Voordat we verder duiken in .NET Core vs. .NET Framework, is het belangrijk om eerst het concept van developmentframeworks in grote lijnen te definiëren.

Een developmentframework is een conceptuele structuur die gebruikt wordt voor het ontwikkelen van software, met name om efficiënter en sneller software te ontwikkelen.

Developmentframeworks komen voor in twee verschillende soorten: front-end frameworks en back-end frameworks. Front-end frameworks worden bijvoorbeeld gebruiken om stilistische elementen en functies in een applicatie vorm te geven. Back-end frameworks worden gebruikt om met de onderliggende systemen van de software-architectuur te praten, bijvoorbeeld met databases. Developmentframeworks zijn een essentieel onderdeel voor het ontwikkelen van moderne software.

Als we het over softwareontwikkeling hebben, dan kan je dat namelijk zo breed mogelijk interpreteren. Een webapplicatie, zoals een interactieve website, is software. Maar die to-do applicatie die jij lokaal hebt geïnstalleerd ook. Je kunt ervan uitgaan dat zowel die webapplicatie als die to-do applicatie ontwikkeld is met behulp van een framework.

Er zijn heel veel verschillende frameworks die elk hun eigen toepassing hebben. Zo bestaan er frameworks die specifiek zijn gericht op het ontwikkelen van webapplicaties en zijn er frameworks die juist gericht zijn op het bouwen van lokale applicaties, bijvoorbeeld voor je Windows- of macOS-besturingsysteem. Elk framework wordt ondersteund met een eigen programmeertaal (bijv. C# of Java) of meerdere programmeertalen.

 

Wat is het .NET Framework?

.NET (spreek je uit als: dotnet) is een framework dat ontwikkeld is door Microsoft in 2002. De aanleiding voor de ontwikkeling van het framework had te maken met een conflict dat Microsoft had met Sun Microsystems, de ontwikkelaar van Java, een ander bekend developmentframework. Daarnaast wilde Microsoft een framework ontwikkelen die het eenvoudiger maakte om applicaties voor het web te ontwikkelen.

Het .NET Framework ondersteunde het toen al iets verouderde Visual Basic (een programmeertaal voor lokale apps) én het destijds nieuwere C# (ook een programmeertaal), zodat er een framework was waarmee je zowel desktop- als webapplicaties kom bouwen. Sindsdien is het framework ontzettend hard gegroeid, met name omdat het web ook is gegroeid en omdat applicaties op een andere manier wordt ontwikkeld.

 

ASP.NET

Een van de eerste extensies op .NET was ASP.NET, het gedeelte van het .NET framework dat met name geschikt was voor de ontwikkeling van dynamische websites en webapplicaties. ASP staat namelijk voor Active Server Page, wat indiceert dat het een server side scripting programmeertaal is. Met server side scripting is dynamische data op te roepen vanuit een database die de informatie vervolgens voorschotelt aan de webbezoeker via de browser. Een andere populaire server-side scripttaal is bijvoorbeeld PHP.

Je kunt ASP.NET het beste zien als een extensie van het normale .NET, met daarin ingebouwde functies die het mogelijk maken websites te bouwen.

 

Evolutie in de .NET wereld

Aanvankelijk waren .NET en ASP.NET alleen geschikt voor ontwikkelaars die gebruik maakten van Windows-besturingsystemen. Maar omdat de IT-wereld en Microsoft niet stilstaan werden er twee aanvullingen gebouwd op de bestaande frameworks: .NET Core en ASP.NET Core. Die twee frameworks zijn vooral te zien als een reactie op een reeks ontwikkelingen binnen de techwereld. Hieronder een aantal daarvan:

Microsoft’s nieuwe richting

De afgelopen jaren is Microsoft flink veranderd als bedrijf. Met de komst van directeur Satya Nadella en een focus op onder andere cloud computing met Azure, is het bedrijf ook veel meer open-source standaarden gaan ondersteunen. Waar .NET en ASP.NET uitsluitend werken op Windows-systemen, zijn de Core-varianten van deze frameworks cross-platform te gebruiken, en dus ook op Linux en macOS systemen.

Nieuwe programmeertalen en tools

Toen .NET en ASP.NET begonnen bestonden er veel mind programmeertalen voor het web dan nu. Een goed voorbeeld hiervan is JavaScript en het ecosysteem daaromheen met front-end libraries zoals JQuery. Dit was in die tijd bij lange na niet zo geavanceerd als nu, en is in vele opzichten de nieuwe standaard voor het ontwikkelen van server-side webapplicaties.

Nieuwe deploymentmethodieken

De manier waarop webapplicaties vandaag de dag worden geleverd verschilt flink ten opzichte van de begindagen van .NET an ASP.NET. Technieken zoals Docker containers, ontwikkelen in microservices of werken op een DevOps-manier inclusief geïntegreerde continuous integration en continuous deployment (CI/CD) pipelines bestonden nog niet. Het leveren van applicaties is vandaag de dag een stuk complexer geworden, maar ook een stuk efficiënter.

Lees ook: 'Applicaties moderniseren met microservices en CI/CD pipelines'

Cloud computing

De term cloud computing was 20 jaar geleden bij lange na niet zo bekend als nu. Grote spelers als Amazon Web Services (begonnen in 2006) of Microsoft Azure (begonnen in 2010) bestonden nog niet. Het opende voor veel ontwikkelaars deuren om nieuwe soort applicaties te ontwikkelen. Niet alleen webapplicaties, maar ook applicaties voor Internet of Things, gaming, machine learning en mobiele applicaties werden met behulp van de public cloud sneller en op grotere schaal te leveren.

Bovenstaande ontwikkelingen hebben mede ook voor een evolutie in het .NET Framework gezorgd: namelijk voor .NET Core, ASP.NET Core en Xamarin/Mono. In de volgende alinea’s duiken we in op die nieuwere frameworks en waar ontwikkelaars ze voor inzetten. Xamarin/Mono is een framework specifiek voor mobiele applicaties. Daar zullen we in dit artikel niet verder op ingaan.

 

.NET Core en ASP.NET Core

Wat is .NET Core?

.NET Core is het rechtstreekse vervolg op het .NET Framework, en is in veel opzichten vergelijkbaar met zijn voorganger. Net als .NET framework is .NET Core een open-source developmentplatform (de programmeertaal + de libraries) voor het ontwikkelen van diverse soorten software. Een belangrijk verschil is dat het oorspronkelijke .NET alleen op Windows kan werken. .NET Core daarentegen is cross-platform, wat inhoudt dat het ook kan werken op Linux- en macOS systemen. Het werkt zelfs op een Raspberry Pi.

Met .NET Core kun je applicaties ontwikkelen zoals webapplicaties, desktopapplicaties, microservices en Internet of Things toepassingen.

ASP.NET Core

ASP.NET Core kun je net als het reguliere ASP.NET zien als een extensie op .NET, maar dan specifiek om dynamische websites en webapplicaties mee te maken. Met Razor, syntax gebaseerd op C# is het bijvoorbeeld mogelijk om dynamische webpagina’s te bouwen. Verder zit het framework out-of-the-box vol met uitgebreide autorisatiemogelijkheden voor bijvoorbeeld multi-factor authentication of externe authenthicatie met websites als Twitter en Google.

Voor de front-end kant van ASP.NET is het ook mogelijk op populaire Javascript libraries te integreren. Sterker nog, sommige front-end libraries en frameworks zitten al standaard in ASP.NET Core, zoals het populaire CSS-framework Bootstrap en Javascript-library jQuery.

ASP.NET Core hoeft niet los geïnstalleerd te worden als je al gebruikmaakt van .NET Core. Het zit er namelijk standaard ingebouwd.

 

Wanneer gebruik je de frameworks?

Het bovenstaande lijkt misschien een zinloze vraag, want je kunt toch het beste altijd voor het nieuwste framework gaan? In dat geval zou .NET Core het beste framework zijn om nieuwe applicaties te ontwikkelen.

Er zijn echter scenario’s te bedenken wanneer het .NET framework beter past, bijvoorbeeld omdat .NET framework erg stabiel is en een hele sterke community heeft.

Microsoft zelf heeft ook wel wat tips wanneer je .NET kunt gebruiken en wanneer .NET Core:

.NET Core gebruik je als je:

• Een applicatie hebt die cross-platform moet werken
• Met microservices wil gaan werken
• Docker containers of Kubernetes gebruikt voor je applicatie
• Hoge prestaties en schaalbare systemen vereist
• Side-by-side .NET versies per applicatie nodig hebt

 

.NET Framework zet je in als je:

• Op dit moment al een applicatie hebt die gebruikmaakt van het .NET Framework (Microsoft adviseert om dit te verlengen in plaats van migreren)
• Applicatie gebruikmaakt van third-party .NET libraries, packages of andere technologie die nog niet beschikbaar zijn voor .NET Core
• Applicatie niet hoeft te draaien op andere besturingsystemen dan Microsoft Windows-systemen.

 

.NET Core (web)applicaties en Azure

We noemde eerder al dat cloud computing een aanleiding was voor Microsoft om het .NET Core developmentplatform verder te ontwikkelen, en dat technologische keuzes zoals microservices en (Docker) containers daar ook een rol in speelde.

Niet geheel toevallig heeft Microsoft veel aandacht besteed om (ASP).NET Core via Azure, de cloud van Microsoft), op een zeer toegankelijke manier beschikbaar te maken. Vanuit diverse ontwikkelprogramma’s is het bijvoorbeeld vrij eenvoudig om de applicatie te deployen naar Azure, bijvoorbeeld via de dienst Azure Web Apps. Maar het ASP.NET Core framework is ook in te zetten voor diensten zoals Azure Container Services (ACI) en Azure Functions. Diensten om de applicatie te containerizen en om op een microservices te werken.

Verwacht wordt dat de combinatie Azure en .NET (Core) in de toekomst nog verdere vormen aan zal nemen. Zo is er bijvoorbeeld ook een ML.NET framework gelanceerd dat specifiek bedoeld is voor machine learning toepassingen (kunstmatige intelligentie!)

Overigens is zowel een .NET applicatie als een .NET Core applicatie ook erg goed te hosten in een private cloud.

 

.NET Core vs. .NET Framework: de winnaar

In dit artikel las je de grootste verschillen tussen .NET framework en .NET Core. Maar zoals je ook hebt kunnen lezen is er niet echt een winnaar te kiezen. Beide versies van het framework hebben nog altijd hun eigen nut.

.NET is heerlijk stabiel en heeft een grote community als base. .NET Core is vooral geschikt voor ontwikkelteams die hun applicaties via Docker containers, Kubernetes of microservices willen leveren. Voor allebei de frameworks zijn er genoeg scenario’s te bedenken om ze in te zetten, en er ligt nog genoeg moois in het verschiet voor de doorontwikkeling naar technologieën zoals machine learning of artificial intelligence.

ASP.NET Core hosting bij True

Met onze uitgebreide ervaring en kennis configureren wij de ASP.NET hostingomgeving optimaal voor jouw project. Je krijgt standaard de True best-practice configuratie die we daarna op maat afstemmen. Daarnaast staat je data bij True gegarandeerd altijd op lokale schijven, waardoor je de kortst mogelijke toegangstijden hebt. Zo ben je verzekerd van de beste combinatie tussen configuratie en hardware. Lees meer over ASP.NET Core hosting.

True Ligan
Managed hosting sinds 2000