Orientação geralGeneral guidance

Esta seção fornece um resumo de quando escolher o .NET 5 ou .NET Framework.This section provides a summary of when to choose .NET 5 or .NET Framework. Fornecemos mais detalhes sobre essas opções nas seções a seguir.We provide more details about these choices in the sections that follow.

Use o .NET 5, com contêineres do Linux ou do Windows, para seu aplicativo de servidor Docker em contêiner quando:Use .NET 5, with Linux or Windows Containers, for your containerized Docker server application when:

  • Você tiver necessidades de plataforma cruzada.You have cross-platform needs. Por exemplo, você desejar usar contêineres Linux e do Windows.For example, you want to use both Linux and Windows Containers.

  • Sua arquitetura de aplicativo for baseada em microsserviços.Your application architecture is based on microservices.

  • For necessário iniciar contêineres rapidamente e você desejar ocupar um espaço menor por contêiner para obter melhor densidade ou mais contêineres por unidade de hardware a fim de reduzir seus custos.You need to start containers fast and want a small footprint per container to achieve better density or more containers per hardware unit in order to lower your costs.

Em suma, ao criar novos aplicativos .NET em contêineres, você deve considerar o .NET 5 como a opção padrão.In short, when you create new containerized .NET applications, you should consider .NET 5 as the default choice. Ela tem muitos benefícios e se ajusta melhor à filosofia e ao estilo de trabalho dos contêineres.It has many benefits and fits best with the containers philosophy and style of working.

Um benefício extra de usar o .NET 5 é que você pode executar versões do .NET lado a lado para aplicativos no mesmo computador.An extra benefit of using .NET 5 is that you can run side-by-side .NET versions for applications within the same machine. Esse benefício é mais importante para servidores ou VMs que não usam contêineres, porque os contêineres isolam as versões do .NET de que o aplicativo precisa.This benefit is more important for servers or VMs that do not use containers, because containers isolate the versions of .NET that the app needs. (Desde que sejam compatíveis com o sistema operacional subjacente.)(As long as they are compatible with the underlying OS.)

Use .NET Framework para seu aplicativo de servidor Docker em contêiner quando:Use .NET Framework for your containerized Docker server application when:

  • No momento, seu aplicativo usar o .NET Framework e tem fortes dependências no Windows.Your application currently uses .NET Framework and has strong dependencies on Windows.

  • Você precisa usar APIs do Windows que não têm suporte do .NET 5.You need to use Windows APIs that are not supported by .NET 5.

  • Você precisa usar bibliotecas .NET de terceiros ou pacotes NuGet que não estão disponíveis para o .NET 5.You need to use third-party .NET libraries or NuGet packages that are not available for .NET 5.

Usar o .NET Framework no Docker pode melhorar suas experiências de implantação minimizando os problemas de implantação.Using .NET Framework on Docker can improve your deployment experiences by minimizing deployment issues. Este cenário de "lift-and-shift" é importante para colocar aplicativos herdados em contêineres que foram desenvolvidos originalmente com o .NET Framework tradicional, como os serviços ASP.NET WebForms, aplicativos Web MVC ou WCF (Windows Communication Foundation).This "lift and shift" scenario is important for containerizing legacy applications that were originally developed with the traditional .NET Framework, like ASP.NET WebForms, MVC web apps or WCF (Windows Communication Foundation) services.

Recursos adicionaisAdditional resources

  • Livro eletrônico: modernizar os aplicativos .NET Framework existentes com contêineres do Azure e do WindowsE-book: Modernize existing .NET Framework applications with Azure and Windows Containers
    https://aka.ms/liftandshiftwithcontainersebook

  • Aplicativos de exemplo: modernização de aplicativos Web ASP.NET herdados usando Contêineres do WindowsSample apps: Modernization of legacy ASP.NET web apps by using Windows Containers
    https://aka.ms/eshopmodernizing