Decision table: .NET implementations to use for Docker

Tip

This content is an excerpt from the eBook, .NET Microservices Architecture for Containerized .NET Applications, available on .NET Docs or as a free downloadable PDF that can be read offline.

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

The following decision table summarizes whether to use .NET Framework or .NET 8. Remember that for Linux containers, you need Linux-based Docker hosts (VMs or servers), and that for Windows Containers, you need Windows Server-based Docker hosts (VMs or servers).

Important

Your development machines will run one Docker host, either Linux or Windows. Related microservices that you want to run and test together in one solution will all need to run on the same container platform.

Architecture / App type Linux containers Windows containers
Microservices on containers .NET 8 .NET 8
Monolithic app .NET 8 .NET Framework
.NET 8
Best-in-class performance and scalability .NET 8 .NET 8
Windows Server legacy app ("brown-field") migration to containers -- .NET Framework
New container-based development ("green-field") .NET 8 .NET 8
ASP.NET Core .NET 8 .NET 8 (recommended)
.NET Framework
ASP.NET 4 (MVC 5, Web API 2, and Web Forms) -- .NET Framework
SignalR services .NET Core 2.1 or higher version .NET Framework
.NET Core 2.1 or higher version
WCF, WF, and other legacy frameworks WCF in .NET Core (client library only) or CoreWCF .NET Framework
WCF in .NET 8 (client library only) or CoreWCF
Consumption of Azure services .NET 8
(eventually most Azure services will provide client SDKs for .NET 8)
.NET Framework
.NET 8
(eventually most Azure services will provide client SDKs for .NET 8)