Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Microsoft beschouwt .Net 5.0 Preview 8 als feature complete

Microsoft heeft de achtste preview van zijn komende .Net 5.0-release vrijgegeven en met deze release bevat het softwareframework alle functies die in de uiteindelijke release zitten. Microsoft richt zich nu op het verhelpen van bugs.

Omdat alle functionaliteit er nu wel zo'n beetje inzit, is Preview 8 van .Net 5.0 de laatste previewversie. Microsoft brengt nog twee releasecandidates uit in aanloop naar de uiteindelijk release in november. Gebruikers kunnen de laatste preview voor .Net 5.0 testen op Windows, Linux en macOS. Daarvoor hebben ze wel de laatste versie van Visual Studio nodig. Tegelijk met .Net 5.0 Preview 8 brengt Microsoft nieuwe versies van Asp.Net Core en Entity Framework Core uit.

De 5.0-release van .Net bevat tal van verbeteringen en uitbreidingen ten opzichte van voorgaande releases. Zo zijn C# 9 en F# 5.0 onderdeel van de release en geïntegreerd in de sdk. C# 9 is onder andere gericht op het vereenvoudigen van het programmeren. Daarnaast bevat .Net 5.0 ondersteuning voor WebAssembly met de Mono-runtime en .Net Libraries. WebAssembly is een low-levelaanvulling op JavaScript voor browsers en andere sandboxomgevingen. Google, Microsoft en Mozilla hebben aan deze open standaard gewerkt in de W3C WebAssembly Community Group. Ten slotte zijn de prestaties van .Net 5.0 bij de .Net Libraries, garbage collection en de jit verbeterd.

Microsoft bracht de eerste preview van .Net 5.0 in maart van dit jaar uit. Het gaat om de opvolger van .Net Core 3, waarvan de ondersteuning in december 2022 eindigt. Microsoft slaat versienummer 4 over om verwarring met de .Net Framework 4-releases te voorkomen. Daarvan was versie 4.8, verschenen in april vorig jaar, de laatste. Microsoft kondigde .Net Core 1.0 in 2016 aan, als crossplatformopvolger van .Net Framework.

Door Olaf van Miltenburg

Nieuwscoördinator

26-08-2020 • 11:41

57 Linkedin

Reacties (57)

Wijzig sortering
Als je er zelf niet mee werkt en de ontwikkelingen volgt, is het door de wirwar aan frameworks, versies en benamingen moeilijk te volgen. Dus heb ik het hieronder uiteengezet.

.NET Framework is het applicatieframework dat wordt meegeleverd met Windows en niet cross-platform is. Omdat het onderdeel is van het besturingssysteem, volgt het de support lifecycle van Windows en wordt het dus ondersteund zolang Windows wordt ondersteund. De laatste en definitieve versie is versie 4.8 en zal dus alleen nog patches ontvangen.

.NET Core is een cross-platform applicatieframework dat grotendeels is gebaseerd op .NET Framework (het bevat en subset van de API's). Omdat het sinds .NET Core 3 ook mogelijk is om er Windows desktopapplicaties (WinForms/WPF) mee te bouwen en de API's flink zijn uitgebreid, is de stekker uit .NET Framework getrokken en wordt .NET Core doorontwikkeld onder de naam .NET. In november .NET 5 gereleased. Om verwarring met het .NET Framework 4.x te voorkomen wordt versie 4 overgeslagen.

Mono is een open-source cross-platform implementatie van .NET Framework. Dit project bestaat al sinds 2001. Vanaf .NET 5 worden Mono en .NET Core meer en meer samengevoegd. Zo delen ze dezelfde code-base en worden de Mono runtime en de .NET Core runtime (CoreCLR) uitwisselbaar. Mono vormt de basis voor Xamarin, een platform waarmee apps voor o.a. Android en iOS kunnen worden ontwikkeld. Vanaf .NET 6 (release november 2021) wordt Xamarin onderdeel van .NET en gaat verder onder de naam MAUI.

In de overgangsfase van .NET Framework naar .NET (Core) hebben we ook nog te maken met .NET Standard. Dit is een API-specificatie, waarmee het mogelijk wordt om libraries te schrijven die door zowel .NET Core, .NET Framework en andere runtimes zoals Mono kunnen worden geconsumeerd. Met de komst van .NET 5 is .NET Standard niet meer nodig. De laatste versie is 2.1, waarvoor .NET Framework (4.8) overigens geen ondersteuning meer biedt.

Nieuwe applicaties bouw je bij voorkeur in .NET (Core). Bestaande .NET Framework applicaties hoeven niet per se te worden gemigreerd om te blijven worden ondersteund. Echter profiteer je bij een migratie naar .NET (Core) wel van significante verbeteringen in performance, nieuwe features en cross-platform mogelijkheden. Een (Windows) desktopapplicatie op een ander platform draaien is echter niet standaard mogelijk. Hiervoor zijn alternatieven zoals Uno[/url], Xamarin, Avalonia en Mono WinForms.
Het wordt er niet duidelijker op zo. Is dit nu de opvolger van .NET 4.8? Of is dit een opvolger van .NET Core 3.x waarbij “Core” uit de naam is gehaald? Indien het laatste het geval is, wordt er dan niet meer verder ontwikkeld aan de .NET “non Core” versies?
.net 5 is in de basis de opvolger van .net core 3 waarbij veel missende features van framework 4.8 worden toegevoegd. De termen core en framework verdwijnen hierbij. Framework 4.8 krijgt zelf geen opvolger en wordt buiten wat support EOL

[Reactie gewijzigd door pietervanhuizen op 26 augustus 2020 11:53]

Wat is eigenlijk het verschil tussen .NET framework en .NET Core?
Voor de persoon die wel eens wat gedaan heeft in C#, maar te regelmatig switched tussen C#, Java, Python, Scala om bij te blijven
In het kort, .net core is een nieuwe opensource variant die ook kan draaien op Linux en Mac. Veel vooral legacy features zijn daarbij niet over genomen. Ook belangrijk is dat core veel modulairder is opgezet.
Bedankt, en de anderen hieronder ook!

Dan weet ik dus dat ik me moet richten op Core als ik nog eens .NET wil gebruiken.
Is de ondersteuning op Linux en Mac goed?
Zijn er verschillen tussen x86, x64, Arm32 en Arm64?
En welke GUI toolkit is aan te raden, meer specifiek als je cross-platform wil gaan?
Momenteel is er nog geen GUI toolkit die cross-platform (als in windows, linux, mac) werkt. Daarvoor zit er wel iets in de pipeline (Maui) dat in .Net 6 bruikbaar zal worden, maar dat is er nog niet. Het heeft veel weg van Xamarin Forms, en dus in zeker zin ook wel van WPF, maar is niet hetzelfde.

Je kan makkelijk webapps en concole maken die cross platform werken in .Net Core, ook over verschillende architecturen heen. Ik heb eerder ook al een interne demo gegeven om het cross-debugging uit te proberen en dat ging zowel in VSCode als in de Professional.
In die zin hebben ze nu wat cross-platform support betreft hetzelfde niveau bereikt als Mono, min de GUI toolkit (WinForms kon je ook op een ARM chip gebruiken)

[Reactie gewijzigd door geoffrey.vl op 26 augustus 2020 13:07]

Ik zou voor .Net gaan, niet voor Core of Framework ;)

Ik heb zelf enkele stukken software van m’n werk van ASP .NET Framework omgezet naar ASP .NET Core en heb hier nagenoeg geen problemen ondervonden (het is ook geen complexe software). Ook de hosting is van een Windows machine met IIS naar Linux gegaan Nginx als reverse proxy (en MSSQL Server op Linux). Ik heb met deze migratie alleen maar positive ervaringen, de software lijkt een stuk sneller te zijn geworden dan dat het voorheen was op Windows (vooral met achtergrondtaken).
Ik ben ook geswitcht naar MacOS voor development en dat ging eigenlijk ook zonder problemen
Zelf heb ik geen ervaring met Arm maar ik verwacht dat als je de Arm runtime installeert alles gewoon draait, dat is namelijk wel de opzet van .NET Core.
Het idee van crossplatform is dat je niet ontwikkelt voor een specifiek platform en het dus niet uitmaakt :) Als tool kun je overal Visual Studio Code gebruiken en op Windows kun je ook de normale Visual Studio gebruiken (daar is ook een gratis versie van). Let op dat zijn wel twee compleet verschillende pakketten, dat zie je niet aan de naam. Ik gebruik code ook voor een heleboel andere dingen zoals NodeJS
Visual Studio en VS Code ken ik.

Ik heb spijtig genoeg al vaker gemerkt dat de ondersteuning van een cross-platform framework niet op alle platforms even goed is. Ik weet dat .NET eerst x84/x64 was en Mono ook op Linux werkt, maar had geen idee of ARM en Mac ook goed ondersteund worden.
Praatjes van verkopers geloof ik niet meer direct, ik hoor liever ervaringen van echte gebruikers. (Ik bedoel daarmee niet dat jij een verkoper bent hoor! ;) )
Mono werkt alleszins ook op ARM linux, die gebruik ik dag in dag uit in m'n domotica.

We hebben op het werk ook wel wat testen uitgevoerd met .Net Core op ARM linux. Ook dit ging, maar tot nu toe is het bij enkele testen gebleven. Ik vermoed dat je best zelf er eens mee aan de slag gaat en op basis van jouw noden bepaalt wat werkbaar is :)
Ik ontwikkel mijn eigen domoticaprojecten momenteel in .NET Core 3.1(.x). Dat doe ik op mijn Windows 10 bak en daar test ik het ook met Docker voor Windows in een linux container.
Vervolgens deploy ik dat naar mijn Raspberry PI 4 (in een kubernetes cluster maar dat terzijde). Ik ondervind daarin totaal geen problemen dus ik vind .NET Core inmiddels behoorlijk cross platform geworden. Immers ik ontwikkel, test en draai respectievelijk op x64, AMD64 en ARM32V7 :)
Cool, bedankt voor de reacties!
.NET Core is een implementatie van .NET Standard (= een specificatie). Cross platform.

.NET Framework is een andere implementatie van .NET Standard. Windows only.

In beide kan je .NET Standard libraries gebruiken.

[Reactie gewijzigd door Slonzo op 26 augustus 2020 12:34]

Goed om je hierbij te realiseren, dat als je .NET Standard library voor zowel .NET Framework 4 als .NET 5 (voorheen. NET Core) applicaties bruikbaar moet zijn, deze maximaal op .NET Standard 2.0 gebaseerd mag zijn.

.NET Framework (4 red.) krijgt geen ondersteuning voor .NET Standard 2.1 meer.

Overigens blijft .NET Framework 4 nog jaren ondersteund worden. Het krijgt alleen geen nieuwe features meer.

[Reactie gewijzigd door brinkie2004 op 26 augustus 2020 13:05]

Zoals ik het als ontwikkelaar ervaar is .NET core veel meer lightweight en zijn alle automagische compile constructies etc er zo veel mogelijk uitgehaald.. Je moet alles daardoor wel veel explicieter aangeven.
ls je een nieuwe project opzet begin je eigenlijk vaak met helemaal niets.
Je moet zelf er voor zorgen dat er vanuit 1 enkele Main functie de juiste functionaliteit wordt ingeladen, geconfigureerd en gestart, anders heb je eigenlijk niet veel meer dan een console applicatie.
Zo'n functionaliteit kan bijvoorbeeld het starten van een WebHost zijn, waarna je applicatie een webserver wordt.
Het is in de basis ook veel meer platformonafhankelijk opgezet en is niet per se afhankelijk van andere software zoals IIS.

[Reactie gewijzigd door MaZeS op 26 augustus 2020 12:42]

.NET 5 is de opvolger van beidde. .NET Framework houdt feitelijk op bij 4.8 en .NET Core gaat verder als .NET 5
Als ik mij goed herinner voegen ze beide samen in .NET 5. Dus zowel Core als normale .NET zullen samen in versie 5 vallen:

Today, we’re announcing that the next release after .NET Core 3.0 will be .NET 5. This will be the next big release in the .NET family.

There will be just one .NET going forward, and you will be able to use it to target Windows, Linux, macOS, iOS, Android, tvOS, watchOS and WebAssembly and more.

https://devblogs.microsoft.com/dotnet/introducing-net-5/
Het is inderdaad .Net Core, niet het "oude" .Net. Dat kan je uit de laatste alinea wel halen:
Microsoft slaat versienummer 4 over om verwarring met de .Net Framework 4-releases te voorkomen
Missie is niet helemaal geslaagd dus. ;)

MS lijkt zelf ook niet zo heel consistent te zijn: https://dotnet.microsoft.com/download/dotnet/5.0
Het begint al bij de URL, maar de pagina erachter doet ook net of er geen ".Net Framework" bestaat. :)
Ik geloof dat de non-Core .Net in principe min of meer deprecated is of wordt; in elk geval ligt de focus meer op Core voor zover ik weet. :)
.NET Framework 4.8 is ook de laatste .NET Framework.
.NET Core 3 is ook de laatste .NET Core

.NET 5.0 volgt beide op. Al is .NET 5.0 een nieuwere versie van .NET Core 3. Ze slaan .NET Core 4 over om verwarring met het bekende .NET Framework 4.x te voorkomen en om aan te geven dat .NET 5 datgene is waar nieuwe projecten in gedaan gestart zouden moeten worden. .NET 4.0 klinkt ouder dan .NET 4.8 namelijk.
Zie de andere posts, MS heeft dit inderdaad aangekondigd dat ze afscheid nemen van de namen core en framework en verder gaan met 1 .net
Je kunt .Net 5.0 zien als de merge tussen .Net Core en het .Net Framework.
Niet echt. Voor zo ver ik weet is er niets toegevoegd om specifiek het .NET Framework te vervangen of te integreren.
Omdat er geen nieuw .NET Framework meer komt en alles dus core wordt hebben ze het woordje "Core" nu maar weggehaald.
Wil je dus een .NET framework applicatie doorontwikkelen op een nieuw platform, dan moet je het dus eigenlijk gewoon alles omschrijven in wat we nu als .NET Core kennen.(en straks als .NET 5 en hoger)
Edit: Ok, correctie: ik lees hier onder dat er wel extra dingen zijn overgenomen om het overstappen makkelijker te maken. Ik ben wel benieuwd hoe makkelijk het nu dan is als je een bestaande Winforms .NET Framework applicatie over moet zetten naar 5.0.

[Reactie gewijzigd door MaZeS op 26 augustus 2020 12:40]

.NET 5 voegt weer wel api's toe zodat er meer compatibiliteit is en een TFM voor net5.0-windows waar windows specifieke dingen in zit als je die gebruikte.
Dus van 4.8 naar 5.0 zal de minste frictie geven als je je software wil moderniseren. In die zin is het wel een logisch verhaal om het nu 5.0 te noemen zonder core erbij.
Ze hebben zeker wel een heleboel functionaliteit overgenomen uit .net framework om juist die applicaties ook over te kunnen laten gaan, niet in de minste WinForms, WPF en VB ondersteuning. Het grootste deel van deze effort was overigens al in .net core 3.1 te zien.

Zolang je applicatie niet gebruik maakt van WCF, WWF of WebForms zou het switchen vrij eenvoudig moeten zijn.
Zolang je applicatie niet gebruik maakt van WCF, WWF of WebForms zou het switchen vrij eenvoudig moeten zijn.
Het schrappen van WCF blijft een rare keuze imo.
Ik werk nu als integratie specialist (MS BizTalk/Azure logic Apps) bij een van de grootste retailers in Nederland en heb hiervoor bij twee grote verzekeraars gewerkt en de adoptie van REST of ODATA is gewoon heel erg beperkt in dit soort organisaties. Ja de grote producten als Dynamics, sharepoint etc hebben nu vaak wel REST/ODATA, maar de 40-50 andere applicaties levend in grote IT landschappen zijn meestal beperkt tot SOAP/WCF.

Het is makkelijk te zeggen door Microsoft dat je maar moet ombouwen als je met .NET 5.0 wilt gaan werken. Maar als je honderden integraties hebt gemaakt is dat geen kleine klus, laat staan dat het prioriteit gaat krijgen in bedrijven. Ik denk dat de adoptie van .NET 5.0 door de kleinere software bedrijven die specialistische applicaties aanbieden, erg klein zal zijn. Dit zijn vaak pakketten die met allerlei systemen communiceren en vaak via SOAP/WCF. Die gaan echt niet tegen hun klanten zeggen, je moet alle integraties om gaan bouwen want wij willen naar .NET 5.0

Ik ben dan ook erg benieuwd hoe Microsoft met toekomstige BizTalk versies hier mee om zal gaan. De meeste interfaces die gemaakt worden in BizTalk, zijn WCF webservices en is volledig afhankelijk van de WCF .NET libraries. Deze zal je op een of andere manier toch eenvoudig om moeten kunnen bouwen anders zal geen enkele partij gaan upgraden.

edit: Nieuwe versies van BizTalk betekend meestal ook de adoptie van het nieuwe .NET framework. BizTalk 2020 heeft nu dus .NET 4.8 ondersteuning gekregen.

[Reactie gewijzigd door Hoover op 26 augustus 2020 14:54]

Vanuit Visual Studio is het erg eenvoudig om een 'web reference' toe te voegen. Deze web reference kan zowel gebaseerd zijn op een SOAP als REST API service. Via scaffolding worden dan de poco classes aangemaakt en de service waar je deze kunt gebruiken.. Wij maken daar meestal een apart project voor aan welke we op onze eigen nuget server publiceren.

Er is dus geen enkel probleem om te connecten met een externe web service. Zonder WCF is het vooral een stuk lastiger geworden om zelf een SOAP service te bouwen. Maar dat is inrelevant bij integratie projecten omdat jij dan connect met de SOAP service van anderen..

Zelf kom ik eigenlijk nog amper SOAP only web services tegen bij onze integratie projecten. Verreweg de meeste partijen welke SOAP aanbieden, bieden ook een REST API aan..

Zelf ben ik eigenlijk best blij dat WCF eindelijk EOL is. Debuggen van WCF services is vaak erg complex, vooral in productie omgevingen. Foutmelding zijn eigenlijk nutteloos en vertellen je meestal niet meer dan 'het werk niet meer..'. Laatst was een SSL certificate verlopen voor de HTTPS binding, kregen we als foutmelding dat er een binding configuration exception was opgetreden, zonder indicatie welk onderdeel het betrof. Je krijgt dezelfde melding als port sharing uitstaat en een andere applicatie al gebruik maakt van die port. Nergens in de logging ook maar een melding dat het certificaat niet meer geldig was.. Achteraf bleek dat het certificaat op 1 van de 12 machines niet was vervangen.. Had er in de logging iets gestaan als 'invalid certificate for HTTPS binding' was het probleem in 3 minuten opgelost. Nu waren we 3 uur bezig, vooral omdat het probleem niet was te reproduceren op test, acceptatie en zelfs andere productie servers..

Microsoft heeft er wel vaker een handje van om nutteloze meldingen te geven. Zo geeft Visual Studio af en toe een melding dat 'advanced features' zijn disabled om performance redenen en of je ze weer wilt inschakelen. Maar geen informatie WELKE advanced features. Het wel of niet inschakelen van de features lijkt geen effect te hebben op de rest van het gedrag.

Het grote voordeel van .NET Core is dat het volledig open source wordt ontwikkelt en men de feedback van de community zeer serieus neemt. Ook heel erg veel pull requests worden geaccepteerd. Ik ben in .NET Core geen onduidelijke foutmeldingen meer tegen gekomen..
Ik ben het er mee eens dat SOAP niet echt meer van deze tijd.

Een van hun eigen grote enterprise producten, BizTalk is volledig gebouwd rond SQL, IIS. .NET (nu 4.8) en WCF is daar een groot onderdeel van. Dit draait bij de grotere organisaties als ESB/Middelware en zijn systemen waarbij de kosten vaak in de miljoenen oplopen qua licenties, onderhoud en development. Die ga je niet zomaar omgooien.
Zoals anderen al zeiden, .NET 5 is de opvolger van .NET Core 3.x. En door er .NET 5 van te maken, maken ze duidelijk dat er weer één .NET is waar ze mee verder gaan. Oftwel: .NET Framework is einde verhaal (in ieder geval qua features).
Dit is de versie/naam die management snapt en vertrouwd. De onderliggende codebase is afkomstig van .NET Core en niet van .NET 4.8 (wel zeer sterk geïnspireerd hierdoor waarschijnlijk). Het is echter veel gemakkelijker om een 're-write' te packagen als een moeilijke framework te upgrade om verantwoording te krijgen voor de uren van de transitie.
Nee, .net 5.0 is de opvolger van .net core 3.x
Vanaf 5.0 wordt de term 'core' niet meer gebruikt.

[Reactie gewijzigd door Troubled op 26 augustus 2020 11:50]

Het web framework heet nog steeds asp.net
Dat klopt niet, er komt alleen een .NET 5.0. .NET 4.8 wordt niet verder ontwikkeld, dus straks is er alleen een .NET 5.0 en geen 2 losse versies meer.
Dat klopt niet, er komt alleen een .NET 5.0. .NET 4.8 wordt niet verder ontwikkeld, dus straks is er alleen een .NET 5.0 en geen 2 losse versies meer.
Het ligt er een beetje aan, wat je precies bedoelt met straks.
Support for .NET 4.8 follows the Lifecycle Policy of the parent OS. It is supported as a Windows component on the latest required update for the operating systems below. We recommend customers upgrade to .NET Framework 4.8 to receive the highest level of performance, reliability, and security.
.NET Framework 4.8 supported OS

Clients
Windows 7 SP1
Windows 8.1 Update
Windows 10 version 1607
Windows 10 version 1703
Windows 10 version 1709
Windows 10 version 1803
Windows 10 version 1809
Windows 10 version 1903

Servers
Windows Server 2008 R2 SP1
Windows Server 2012/R2
Windows Server 2016
Windows Server version 1803
Windows Server 2019
Windows Server version 1903

Bron: https://docs.microsoft.com/en-us/lifecycle/faq/dotnet-framework
Ja ok, ik bedoelde meer dat er geen grote nieuwe features meer ontwikkeld worden voor het "oude" .NET 4.x Framework :P Het blijft natuurlijk voorlopig nog wel onderhouden worden gezien er nog een hoop applicaties op dat platform draaien.
Daar zit je dan met je WebForms toepassing met een codebase waar meer dan 10 jaar aan gewerkt is }:O
Ik hoop dat veel libraries nog heel lang .NET Standard 2.0 gaan blijven ondersteunen zodat .NET Framework 4.8 toch nog mee kan met nieuwe ontwikkelingen op het web.

Maar op een dag zal ook de security support ophouden voor .NET Framework. Ik ben heel benieuwd wanneer dat het geval gaat zijn... Ik zie ze niet in de eerstkomende 10 jaar stoppen met security updates eerlijk gezegd. Veel te veel software draait nog op .NET Framework
Klopt, maar het is wel relatief simpel om je projecten langzaamaan over te zetten naar Core/.NET 5.0. Ik neem aan dat in de loop van 10 jaar er ook een hoop geupgrade is naar gebruik van nieuwere functionaliteiten van het .NET framework waardoor je webforms ook beter presteerden..
Maargoed, makkelijk praten vanaf de zijlijn natuurlijk, en er zijn wel wat meer factoren afhankelijk.

In iedergeval een nieuw project zou ik nooit meer starten in het 'oude' .NET Framework, al een paar jaar niet meer..Probleem blijft natuurlijk altijd dat je sneller kunt werken met iets dat je al jaren gewend bent, dan nieuwe methoden/systematieken gebruiken die gepaard gaan met bv het .NET Core en bijbehorende frameworks..

Achja, ze ondersteunen nog steeds zelfs de VB6 runtime...
Lijkt me ook handig te vermelden dat de .NET 5 release voor november 2020 gepland staat maar geen LTS versie is zoals 3.1. LTS zal pas versie 6.0 gaan worden die gepland staat voor november 2021.

Meer info: https://devblogs.microsoft.com/dotnet/introducing-net-5/
Voor mensen die willen weten wat .NET nu eigelijk is, dit is een zeer hulpzaam en duidelijk filmpje dat het uitlegt: https://www.youtube.com/watch?v=bEfBfBQq7EE

Filmpje gemaakt door Scott Hanselmann: https://www.hanselman.com/about/

[Reactie gewijzigd door avalon123 op 26 augustus 2020 14:15]

Nu .NET 5 zo goed als klaar is, gaan ze hopelijk beginnen aan het cross platform maken van WPF, wat denk ik voor heel veel WPF developers iets is waar ze sinds de release van .NET core 1.0 op zitten te wachten.
heeft iemand hier wat argumenten waarom ik voor asp of.net zou kiezen boven de andere beschikbare talen?
Vergeleken met wat? Hier heb je in ieder geval een aantal mogelijkheden.

ASP.NET Core:

+ Strongly typed taal (C#) met zeer goede intellisense (vooral in Visual Studio) en debugging.
+ Dwingt structuur af, ideaal voor (grote) projecten die in teamverband langere tijd onderhouden moeten worden.
+ Goed ondersteund in de zakelijke wereld en integreert goed in een Microsoft ecosysteem.
+ Modulair opgezet.
+ Relatief goede lange-termijnondersteuning.
- Niet het makkelijkste framework om te leren, een cursus kan aan te raden zijn.
- Voor kleine projecten is de gestructureerde aanpak soms overkill/tijdrovend.
- Programmeertalen als Python en JS hebben vaak meer libraries beschikbaar.


Node.js/Express.js

+ Één programmeertaal, zowel voor de backend als frontend.
+ Goede en grote community, veel libraries beschikbaar.
+ Minimalistisch van opzet.
- Weinig houvast om projecten op een eenduidige manier op te zetten.
- Single threaded, minder geschikt voor zware berekeningen.
- Js libraries zijn vaak wat vluchtiger van karakter, minder lang ondersteund.


Laravel

+ Out of the box een compleet framework, tevens goed gedocumenteerd.
+ Goede balans tussen structuur en programmeerefficiëntie/automatisering.
+ Leent zich met name voor kleine tot middelgrote projecten en is geschikt voor beginners.
- Relatief traag t.o.v. de meeste andere frameworks.
- Vereist dat je fatsoenlijk PHP kunt programmeren.


Go

+ Native code, dus in potentie zeer snel.
+ Strongly typed.
+ Volledige vrijheid in de opzet, leent zich goed voor bijvoorbeeld microservices en webtaken in cloudomgevingen.
- Geen houvast in de opzet, vergt architectuurinzicht en ervaring van de programmeur.
- Kleinere community, libraries zijn niet altijd even goed onderhouden.

[Reactie gewijzigd door Ablaze op 26 augustus 2020 23:11]

Allereerst wat misvattingen wegnemen. ASP is een heel oud framework, en was destijds vervangen door ASP.NET. Beide zijn frameworks, niet talen, en in die laatste kan je kiezen uit meerdere talen (waarbij C# de meeste populaire is). Een framework geeft je ondersteuning in het schrijven van een applicatie, algemene operaties (zoals het lezen van een bestand, of het afvangen van HTTP aanvraag) zijn al voor je bedacht en je hoeft het alleen maar in te vullen.

De meeste talen lijken erg op elkaar, dus het maakt niet zo heel veel uit welke je kiest. Ga wat knutselen zou ik zeggen en ontdek of het wat voor je is. C# is in ieder geval een van de populairdere talen, qua werk aanbod dus geen verkeerde keus.
Zonder een oorlog over "de beste" taal of platform te willen beginnen, want wat het beste is voor jou of jouw product kan voor iedereen anders zijn. Maar voordelen van .NET (Core) en ASP.NET MVC vind ik persoonlijk:
- Eén van de snelste general purpose frameworks die er is
- Strongly typed
- Automatisch memory management
- Goede ontwikkeltools
- Modern platform en taal (C#) met over het algemeen best practices
- Cross platform
Welke andere talen? Dat is wel een puntje.
Dus de komende 15 jaar zijn we nog niet van .net Framework 4.8 af.

Tenzij bestaande projecten 1 op 1 over kunnen naar .net 5.
Nieuwe applicaties zou ik altijd in .NET Core (of .NET 5) bouwen. .NET Framework 4.8 draagt een hoop legacy met zich mee en het is in veel gevallen inderdaad niet te doen om applicaties gebouwd op het oude framework makkelijk over te zetten naar de nieuwe.
Nou dat is dus net het probleem. WCF ondersteuning is niet aanwezig in .NET 5.0

Veel applicaties kunnen alleen communiceren via SOAP/WCF. Grote organisaties hebben daartussen een ESB of middleware zitten om integraties tussen applicaties te bouwen en dat is vrijwel altijd SOAP.

De grote applicaties als Dynamics of Sharepoint zijn wellicht wel over naar REST/ODATA, maar de honderden andere aanvullende applicaties spreken alleen SOAP.
De Software bedrijven achter deze applicaties gaan hun klanten echt niet zomaar forceren om maar over te stappen naar REST of ODATA want daarmee verbreek je dus de interface contracten en mogen alle integraties opnieuw gebouwd worden. Het enige wat deze bedrijven dan kunnen doen is een nieuwe versie bouwen van hun pakket als ze met .NET 5.0 willen gaan werken.
Ik denk dus dat 4.8 voorlopig niet weg zal zijn.

[Reactie gewijzigd door Hoover op 26 augustus 2020 15:12]

Ze hebben wel een groot deel van de client side WCF overgeheveld naar https://github.com/dotnet/wcf.
Klopt, maar een groot deel is ook serverside. Zeker in de integratie wereld.

Een ESB als BizTalk leeft tussen twee applicaties in.
Webservices worden via BizTalk gehost in IIS en is gebaseerd op .NET

Applicatie A praat met BizTalk, Biztalk doet allerlei dingen als validatie, mapping verrijking etc en praat dan weer met Applicatie B.

Nu het probleem:
Applicatie A kan alleen SOAP communicatie aan. Dus moet BizTalk een WCF service aan gaan bieden om die communicatie op te zetten. Microsoft zegt dat je over moet stappen op gRPC om web apis te bouwen . Webservices hosten via gRPC werkt niet in IIS wegens HTTP.Sys beperkingen. BizTalk zoals het nu staat en gehost word, kan dus met deze beperkingen nooit over op .NET 5.0. Klanten die BizTalk gebruiken zijn de grote enterprises als verzekeraars,banken en ministeries. Die gaan niet honderden integraties opnieuw opbouwen.

[Reactie gewijzigd door Hoover op 26 augustus 2020 15:43]

Helaas is niet alles nieuw... dat is nu precies wat ik bedoel.
Achja, er worden ook nog steeds VB6 applicaties onderhouden en die draaien ook nog steeds perfect..
Bij Cross Platform denk ik onwillekeurig aan Java. Compromissen zijn dan onvermijdelijk en aangezien je niet wilt inleveren op functionaliteit, gaat dat meestal ten koste van de snelheid. Is al bekend hoe dat hier zit?
Je kunt gewoon .Net Core 3.1 benchmark bekijken.

Op deze website alles met "Full" framework: https://www.techempower.com/benchmarks/ (bedenk wel dat dat zeer hoog gehalte "lab" tests zijn natuurlijk)

Op dit item kan niet meer gereageerd worden.


Apple iPhone 12 Microsoft Xbox Series X LG CX Google Pixel 4a CES 2020 Samsung Galaxy S20 4G Sony PlayStation 5 Nintendo Switch Lite

'14 '15 '16 '17 2018

Tweakers vormt samen met Hardware Info, AutoTrack, Gaspedaal.nl, Nationale Vacaturebank, Intermediair en Independer DPG Online Services B.V.
Alle rechten voorbehouden © 1998 - 2020 Hosting door True