Diretrizes geraisGeneral guidance

Esta seção oferece um resumo de quando escolher o .NET Core ou o .NET Framework.This section provides a summary of when to choose .NET Core 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.

Você deverá usar o .NET Core, com contêineres Linux ou do Windows, para seu aplicativo para servidores do Docker em contêineres quando:You should use .NET Core, 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 resumo, quando você cria novos aplicativos .NET em contêineres, você deve considerar o .NET Core como a opção padrão.In short, when you create new containerized .NET applications, you should consider .NET Core 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 adicional de usar o .NET Core é que você pode executar versões do .NET para aplicativos lado a lado dentro do mesmo computador.An additional benefit of using .NET Core 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.)

Você deverá usar o .NET Framework para seu aplicativo para servidores do Docker em contêineres quando:You should 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.

  • For necessário usar APIs do Windows não compatíveis com o .NET Core.You need to use Windows APIs that are not supported by .NET Core.

  • For necessário usar bibliotecas .NET de terceiros ou pacotes NuGet não disponíveis para o .NET Core.You need to use third-party .NET libraries or NuGet packages that are not available for .NET Core.

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