.NET jämfört med .NET Framework för serverappar
Det finns två .NET-implementeringar som stöds för att skapa appar på serversidan: .NET och .NET Framework. Den senaste .NET-versionen (för närvarande .NET 8) är den föredragna versionen av .NET som ska användas för serverutveckling. Orsakerna till att fortsätta använda .NET Framework är specifika och begränsade.
Implementering | Inkluderade versioner |
---|---|
.NET | .NET Core 1.0 – 3.1 .NET 5 och senare versioner |
.NET Framework | .NET Framework 1.0 – 4.8 |
Välj .NET
.NET har följande fördelar för serverappar:
Fungerar plattformsoberoende.
Med .NET kan webb- eller tjänstappen köras på flera plattformar, till exempel Windows, Linux och macOS. Du kan också använda något av dessa operativsystem som din utvecklingsarbetsstation. Använd Visual Studio Integrated Development Environment (IDE) i Windows eller använd Visual Studio Code på macOS, Linux eller Windows. Visual Studio Code stöder IntelliSense och felsökning. De flesta tredjepartsredigerare, till exempel Sublime, Emacs och VI, arbetar med .NET. Dessa redigerare från tredje part får intelliSense-redigeraren med omnisharp. Du kan också hoppa över kodredigeraren och direkt använda .NET CLI.
Gör att du kan rikta in dig på mikrotjänster.
En mikrotjänstarkitektur möjliggör en blandning av tekniker över en tjänstgräns. Den här teknikmixen möjliggör en gradvis omfamning av .NET för nya mikrotjänster som fungerar med andra mikrotjänster eller tjänster. Du kan till exempel blanda mikrotjänster eller tjänster som utvecklats med .NET Framework, Java, Ruby eller andra monolitiska tekniker.
Det finns många tillgängliga infrastrukturplattformar. Azure Service Fabric är utformat för stora och komplexa mikrotjänstsystem. Azure App Service är ett bra val för tillståndslösa mikrotjänster. Mikrotjänstalternativ baserade på Docker passar alla mikrotjänster, enligt beskrivningen i nästa avsnitt (Stöder Docker-containrar). Alla dessa plattformar stöder .NET och gör dem idealiska för att hantera dina mikrotjänster.
Mer information om mikrotjänstarkitektur finns i .NET Microservices: Architecture for containerized .NET apps (.NET Microservices: Architecture for containerized .NET apps).
Stöder Docker-containrar.
Containrar används ofta med en arkitektur för mikrotjänster. Containrar kan också användas för att containerisera webbappar eller tjänster som följer valfritt arkitekturmönster. Även om .NET Framework kan användas på Windows-containrar, gör modulariteten och den lätta karaktären hos .NET det till ett bättre val för containrar. När du skapar och distribuerar en container är storleken på dess avbildning mycket mindre med .NET än med .NET Framework. Eftersom det är plattformsoberoende kan du distribuera serverappar till Linux Docker-containrar.
Du kan vara värd för Docker-containrar i din egen Linux- eller Windows-infrastruktur eller i en molntjänst som Azure Kubernetes Service. Azure Kubernetes Service kan hantera, samordna och skala containerbaserade program i molnet.
Är högpresterande och skalbar.
När systemet behöver bästa möjliga prestanda och skalbarhet är .NET och ASP.NET Core dina bästa alternativ. Serverkörningen med höga prestanda för Windows Server och Linux gör ASP.NET Core till ett högpresterande webbramverk på TechEmpower-riktmärken.
Prestanda och skalbarhet är särskilt relevanta för mikrotjänstarkitekturer, där hundratals mikrotjänster kan köras. Med ASP.NET Core körs system med ett mycket lägre antal servrar eller virtuella datorer , vilket sparar kostnader för infrastruktur och värdtjänster.
Stöder .NET-versioner sida vid sida per program.
.NET-implementeringen stöder sida vid sida-installationer av olika versioner av .NET-körningen på samma dator. Den funktionen tillåter flera tjänster på samma server, var och en i sin egen version av .NET. Det minskar också riskerna och sparar pengar i programuppgraderingar och IT-åtgärder.
Det går inte att installera sida vid sida med .NET Framework. Det är en Windows-komponent och endast en version kan finnas på en dator i taget: varje version av .NET Framework ersätter den tidigare versionen. Om du installerar en ny app som riktar sig mot en senare version av .NET Framework kan du bryta befintliga appar som körs på datorn eftersom den tidigare versionen ersattes.
Är säkrare.
När du ska välja .NET Framework
Som tidigare nämnts erbjuder .NET-implementeringen betydande fördelar för nya program och programmönster. I vissa specifika scenarier kan du dock behöva använda .NET Framework för dina serverappar, och .NET Framework kommer att fortsätta att stödjas. Använd .NET Framework för din serverapp när:
Appen använder för närvarande .NET Framework.
I de flesta fall behöver du inte migrera dina befintliga program till .NET. I stället rekommenderar vi att du använder .NET när du utökar en befintlig app, till exempel att skriva en ny webbtjänst i ASP.NET Core.
Appen använder bibliotek från tredje part eller NuGet-paket som inte är tillgängliga för .NET.
.NET Standard möjliggör delningskod för alla .NET-implementeringar, inklusive .NET 6+. Med .NET Standard 2.0 gör ett kompatibilitetsläge att .NET Standard- och .NET-projekt kan referera till .NET Framework-bibliotek. Mer information finns i Support för .NET Framework-bibliotek.
Du bör bara använda .NET Framework när biblioteken eller NuGet-paketen använder tekniker som inte är tillgängliga i .NET Standard eller .NET.
Din app använder .NET Framework-tekniker som inte är tillgängliga för .NET.
Vissa .NET Framework-tekniker är inte tillgängliga i .NET. I följande lista visas de vanligaste teknikerna som inte finns i .NET:
- ASP.NET Web Forms-program: ASP.NET webbformulär är endast tillgängliga i .NET Framework. ASP.NET Core kan inte användas för ASP.NET webbformulär.
- ASP.NET webbsidor: ASP.NET webbsidor ingår inte i ASP.NET Core.
- Arbetsflödesrelaterade tjänster: Windows Workflow Foundation (WF), Workflow Services (WCF + WF i en enda tjänst) och WCF Data Services (kallades tidigare "ADO.NET Data Services") är endast tillgängliga i .NET Framework.
- Språkstöd: Visual Basic och F# stöds i .NET men inte för alla projekttyper. En lista över projektmallar som stöds finns i Mallalternativ för dotnet new(Mallalternativ för dotnet new).
Mer information finns i .NET Framework-tekniker som inte är tillgängliga i .NET.
Din app använder en plattform som inte stöder .NET.
Vissa Microsoft- eller tredjepartsplattformar stöder inte .NET. Vissa Azure-tjänster tillhandahåller ett SDK som ännu inte är tillgängligt för förbrukning på .NET. I sådana fall kan du använda motsvarande REST API i stället för klient-SDK.