.NET versus .NET Framework voor server-apps
Er zijn twee ondersteunde .NET-implementaties voor het bouwen van apps aan de serverzijde: .NET en .NET Framework. De nieuwste .NET-versie (momenteel .NET 8) is de voorkeursversie van .NET die moet worden gebruikt voor serverontwikkeling. De redenen om .NET Framework te blijven gebruiken, zijn specifiek en beperkt.
Implementatie | Opgenomen versies |
---|---|
.NET | .NET Core 1.0 - 3.1 .NET 5 en latere versies |
.NET Framework | .NET Framework 1.0 - 4.8 |
Kies .NET
.NET heeft de volgende voordelen voor server-apps:
Werkt platformoverschrijdend.
Met .NET kan uw web- of service-app worden uitgevoerd op meerdere platforms, bijvoorbeeld Windows, Linux en macOS. U kunt elk van deze besturingssystemen ook gebruiken als uw ontwikkelwerkstation. Gebruik de Integrated Development Environment (IDE) van Visual Studio in Windows of gebruik Visual Studio Code op macOS, Linux of Windows. Visual Studio Code ondersteunt IntelliSense en foutopsporing. De meeste externe editors, zoals Sublieme, Emacs en VI, werken met .NET. Deze externe editors krijgen editor IntelliSense met behulp van Omnisharp. U kunt ook de code-editor overslaan en rechtstreeks de .NET CLI gebruiken.
Hiermee kunt u microservices targeten.
Een microservicesarchitectuur biedt een combinatie van technologieën binnen een servicegrens. Deze technologiemix maakt een geleidelijke omhelzing van .NET mogelijk voor nieuwe microservices die met andere microservices of services werken. U kunt bijvoorbeeld microservices of services combineren die zijn ontwikkeld met .NET Framework, Java, Ruby of andere monolithische technologieën.
Er zijn veel infrastructuurplatforms beschikbaar. Azure Service Fabric is ontworpen voor grote en complexe microservicesystemen. Azure-app Service is een goede keuze voor stateless microservices. Microservicesalternatieven op basis van Docker passen bij elke microservicesbenadering, zoals wordt uitgelegd in de volgende sectie (Ondersteunt Docker-containers). Al deze platforms ondersteunen .NET en maken ze ideaal voor het hosten van uw microservices.
Zie .NET Microservices: Architectuur voor in containers geplaatste .NET-apps voor meer informatie over microservicesarchitectuur.
Ondersteunt Docker-containers.
Containers worden vaak gebruikt met een microservicesarchitectuur. Containers kunnen ook worden gebruikt voor het in containers plaatsen van web-apps of -services die elk architectuurpatroon volgen. Hoewel .NET Framework kan worden gebruikt in Windows-containers, maken de modulariteit en de lichtgewicht aard van .NET het een betere keuze voor containers. Wanneer u een container maakt en implementeert, is de grootte van de installatiekopieën veel kleiner met .NET dan met .NET Framework. Omdat het platformoverschrijdend is, kunt u server-apps implementeren in Linux Docker-containers.
U kunt Docker-containers hosten in uw eigen Linux- of Windows-infrastructuur of in een cloudservice zoals Azure Kubernetes Service. Azure Kubernetes Service kan toepassingen op basis van containers in de cloud beheren, organiseren en schalen.
Is high-performance en schaalbaar.
Wanneer uw systeem de best mogelijke prestaties en schaalbaarheid nodig heeft, zijn .NET en ASP.NET Core de beste opties. De krachtige serverruntime voor Windows Server en Linux maakt ASP.NET Core een top presterend webframework op TechEmpower-benchmarks.
Prestaties en schaalbaarheid zijn met name relevant voor microservicearchitecturen, waarbij honderden microservices mogelijk worden uitgevoerd. Met ASP.NET Core worden systemen uitgevoerd met een veel lager aantal servers of virtuele machines (VM's), wat kosten bespaart op infrastructuur en hosting.
Ondersteunt naast elkaar .NET-versies per toepassing.
De .NET-implementatie ondersteunt installaties naast elkaar van verschillende versies van de .NET-runtime op dezelfde computer. Met deze mogelijkheid kunnen meerdere services op dezelfde server, elk op een eigen versie van .NET. Het verlaagt ook de risico's en bespaart geld in toepassingsupgrades en IT-bewerkingen.
Naast elkaar installeren is niet mogelijk met .NET Framework. Het is een Windows-onderdeel en er kan slechts één versie tegelijk bestaan op een computer: elke versie van .NET Framework vervangt de vorige versie. Als u een nieuwe app installeert die is gericht op een latere versie van .NET Framework, kan het zijn dat bestaande apps die op de computer worden uitgevoerd, worden onderbroken omdat de vorige versie is vervangen.
Is veiliger.
Wanneer moet u .NET Framework kiezen
Zoals eerder vermeld, biedt de .NET-implementatie aanzienlijke voordelen voor nieuwe toepassingen en toepassingspatronen. In sommige specifieke scenario's moet u echter mogelijk .NET Framework gebruiken voor uw server-apps, en .NET Framework wordt nog steeds ondersteund. Gebruik .NET Framework voor uw server-app wanneer:
Uw app maakt momenteel gebruik van .NET Framework.
In de meeste gevallen hoeft u uw bestaande toepassingen niet te migreren naar .NET. In plaats daarvan raden we u aan .NET te gebruiken wanneer u een bestaande app uitbreidt, zoals het schrijven van een nieuwe webservice in ASP.NET Core.
Uw app maakt gebruik van bibliotheken van derden of NuGet-pakketten die niet beschikbaar zijn voor .NET.
.NET Standard maakt het delen van code mogelijk voor alle .NET-implementaties, waaronder .NET 6+. Met .NET Standard 2.0 kunnen .NET Standard- en .NET-projecten met een compatibiliteitsmodus verwijzen naar .NET Framework-bibliotheken. Zie Ondersteuning voor .NET Framework-bibliotheken voor meer informatie.
U moet .NET Framework alleen gebruiken wanneer de bibliotheken of NuGet-pakketten technologieën gebruiken die niet beschikbaar zijn in .NET Standard of .NET.
Uw app maakt gebruik van .NET Framework-technologieën die niet beschikbaar zijn voor .NET.
Sommige .NET Framework-technologieën zijn niet beschikbaar in .NET. In de volgende lijst ziet u de meest voorkomende technologieën die niet in .NET zijn gevonden:
- ASP.NET Web Forms-toepassingen: ASP.NET Web Forms zijn alleen beschikbaar in .NET Framework. ASP.NET Core kan niet worden gebruikt voor ASP.NET webformulieren.
- ASP.NET webpaginatoepassingen: ASP.NET webpagina's zijn niet opgenomen in ASP.NET Core.
- Werkstroomservices: Windows Workflow Foundation (WF), Workflow Services (WCF + WF in één service) en WCF Data Services (voorheen bekend als 'ADO.NET Data Services') zijn alleen beschikbaar in .NET Framework.
- Taalondersteuning: Visual Basic en F# worden ondersteund in .NET, maar niet voor alle projecttypen. Zie Sjabloonopties voor dotnet nieuw voor een lijst met ondersteunde projectsjablonen.
Zie .NET Framework-technologieën die niet beschikbaar zijn in .NET voor meer informatie.
Uw app maakt gebruik van een platform dat .NET niet ondersteunt.
Sommige Microsoft- of platformen van derden bieden geen ondersteuning voor .NET. Sommige Azure-services bieden een SDK die nog niet beschikbaar is voor verbruik op .NET. In dergelijke gevallen kunt u de equivalente REST API gebruiken in plaats van de client-SDK.