Dela via


När du ska välja .NET Framework för Docker-containrar

Dricks

Det här innehållet är ett utdrag från eBook, .NET Microservices Architecture for Containerized .NET Applications, tillgängligt på .NET Docs eller som en kostnadsfri nedladdningsbar PDF som kan läsas offline.

.NET Microservices Architecture for Containerized .NET Applications eBook cover thumbnail.

Även om .NET 8 erbjuder betydande fördelar för nya program och programmönster fortsätter .NET Framework att vara ett bra val för många befintliga scenarier.

Migrera befintliga program direkt till en Windows Server-container

Du kanske vill använda Docker-containrar bara för att förenkla distributionen, även om du inte skapar mikrotjänster. Du kanske till exempel vill förbättra ditt DevOps-arbetsflöde med Docker– containrar kan ge dig bättre isolerade testmiljöer och kan även eliminera distributionsproblem som orsakas av saknade beroenden när du flyttar till en produktionsmiljö. I sådana fall, även om du distribuerar ett monolitiskt program, är det klokt att använda Docker och Windows-containrar för dina aktuella .NET Framework-program.

I de flesta fall för det här scenariot behöver du inte migrera dina befintliga program till .NET 8. du kan använda Docker-containrar som innehåller det traditionella .NET Framework. En rekommenderad metod är dock att använda .NET 8 när du utökar ett befintligt program, till exempel att skriva en ny tjänst i ASP.NET Core.

Det går inte att använda .NET-bibliotek eller NuGet-paket från tredje part för .NET 8

Bibliotek från tredje part använder sig snabbt av .NET Standard, vilket möjliggör koddelning i alla .NET-smaker, inklusive .NET 8. Med .NET Standard 2.0 och senare har API-ytkompatibiliteten i olika ramverk blivit betydligt större. Dessutom kan .NET Core 2.x och nyare program också direkt referera till befintliga .NET Framework-bibliotek (se .NET Framework 4.6.1 med stöd för .NET Standard 2.0).

Dessutom utökar Windows Compatibility Pack DEN API-yta som är tillgänglig för .NET Standard 2.0 i Windows. Det här paketet gör det möjligt att omkompilera de flesta befintliga kod till .NET Standard 2.x med liten eller ingen ändring, för att köras i Windows.

Men även med den exceptionella utvecklingen sedan .NET Standard 2.0 och .NET Core 2.1 eller senare kan det finnas fall där vissa NuGet-paket behöver Windows för att köras och kanske inte stöder .NET Core eller senare. Om dessa paket är viktiga för ditt program måste du använda .NET Framework i Windows-containrar.

Användning av .NET-tekniker är inte tillgängligt för .NET 8

Vissa .NET Framework-tekniker är inte tillgängliga i .NET 8. Vissa av dem kan bli tillgängliga i senare versioner, men andra passar inte in på de nya programmönster som .NET Core riktar in sig på och kanske aldrig är tillgängliga.

I följande lista visas de flesta tekniker som inte är tillgängliga i .NET 8:

  • ASP.NET webbformulär. Den här tekniken är endast tillgänglig på .NET Framework. För närvarande finns det inga planer på att ta ASP.NET webbformulär till .NET eller senare.

  • 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. Det finns för närvarande inga planer på att ta dem till .NET 8.

Förutom de tekniker som anges i den officiella .NET-översikten kan andra funktioner portas till den nya enhetliga .NET-plattformen. Du kan överväga att delta i diskussionerna på GitHub så att din röst kan höras. Och om du tror att något saknas kan du skapa ett nytt problem på GitHub-lagringsplatsen dotnet/runtime .

Använda en plattform eller ett API som inte stöder .NET 8

Vissa Microsoft- och tredjepartsplattformar stöder inte .NET 8. Vissa Azure-tjänster tillhandahåller till exempel ett SDK som ännu inte är tillgängligt för förbrukning på .NET 8 ännu. De flesta Azure SDK:er bör så småningom portas till .NET 8/.NET Standard, men vissa kanske inte av flera skäl. Du kan se tillgängliga Azure SDK:er på sidan senaste versioner i Azure SDK.

Under tiden kan du använda motsvarande REST API från Azure-tjänsten eller klient-SDK:n på .NET Framework om någon plattform eller tjänst i Azure fortfarande inte stöder .NET 8 med dess klient-API.

Portering av befintligt ASP.NET-program till .NET 8

.NET Core är ett revolutionerande steg framåt från .NET Framework. Det erbjuder en mängd fördelar jämfört med .NET Framework över hela linjen från produktivitet till prestanda och från plattformsoberoende support till utvecklarn tillfredsställelse.

Ytterligare resurser