Compartilhar via


Quando escolher o .NET Framework para contêineres do Docker

Dica

Esse conteúdo é um trecho do eBook, arquitetura de microsserviços do .NET para aplicativos .NET em contêineres, disponível em do .NET Docs ou como um PDF para download gratuito que pode ser lido offline.

miniatura da capa do eBook sobre arquitetura de microsserviços do .NET para aplicativos .NET em contêineres.

Embora o .NET 8 ofereça benefícios significativos para novos aplicativos e padrões de aplicativo, o .NET Framework continuará sendo uma boa opção para muitos cenários existentes.

Migrando aplicativos existentes diretamente para um contêiner do Windows Server

Talvez você queira usar contêineres do Docker apenas para simplificar a implantação, mesmo que não esteja criando microsserviços. Por exemplo, talvez você queira melhorar seu fluxo de trabalho de DevOps com o Docker— os contêineres podem fornecer ambientes de teste isolados melhores e também podem eliminar problemas de implantação causados por dependências ausentes ao migrar para um ambiente de produção. Em casos como esses, mesmo que você esteja implantando um aplicativo monolítico, faz sentido usar Contêineres do Docker e do Windows para seus aplicativos .NET Framework atuais.

Na maioria dos casos para esse cenário, você não precisará migrar seus aplicativos existentes para o .NET 8; você pode usar contêineres do Docker que incluem o .NET Framework tradicional. No entanto, uma abordagem recomendada é usar o .NET 8 à medida que você estende um aplicativo existente, como escrever um novo serviço no ASP.NET Core.

Usando bibliotecas .NET de terceiros ou pacotes NuGet não disponíveis para .NET 8

Bibliotecas de terceiros estão adotando rapidamente o .NET Standard, que permite o compartilhamento de código em todos os tipos do .NET, incluindo o .NET 8. Com o .NET Standard 2.0 e posterior, a compatibilidade da área de cobertura da API em diferentes estruturas tornou-se significativamente maior. Ainda mais, o .NET Core 2.x e aplicativos mais recentes também podem referenciar diretamente as bibliotecas existentes do .NET Framework (consulte .NET Framework 4.6.1 com suporte ao .NET Standard 2.0).

Além disso, o Pacote de Compatibilidade do Windows estende a superfície de API disponível para .NET Standard 2.0 no Windows. Esse pacote permite recompilar a maioria dos códigos existentes para o .NET Standard 2.x com pouca ou nenhuma modificação, para ser executado no Windows.

No entanto, mesmo com essa progressão excepcional desde .NET Standard 2.0 e .NET Core 2.1 ou posterior, pode haver casos em que determinados pacotes NuGet precisam do Windows para serem executados e talvez não sejam compatíveis com o .NET Core ou posterior. Se esses pacotes forem essenciais para seu aplicativo, você precisará usar o .NET Framework em contêineres do Windows.

Usando tecnologias .NET não disponíveis para .NET 8

Algumas tecnologias do .NET Framework não estão disponíveis no .NET 8. Alguns deles podem ficar disponíveis em versões posteriores, mas outros não se encaixam nos novos padrões de aplicativo direcionados pelo .NET Core e podem nunca estar disponíveis.

A lista a seguir mostra a maioria das tecnologias que não estão disponíveis no .NET 8:

  • ASP.NET Web Forms. Essa tecnologia só está disponível no .NET Framework. Atualmente, não há planos de trazer ASP.NET Web Forms para o .NET ou posterior.

  • Serviços relacionados ao fluxo de trabalho. O Windows Workflow Foundation (WF), os Serviços de Fluxo de Trabalho (WCF + WF em um único serviço) e os Serviços de Dados do WCF (anteriormente conhecidos como ADO.NET Data Services) só estão disponíveis no .NET Framework. No momento, não há planos de trazê-los para o .NET 8.

Além das tecnologias listadas no roteiro oficial do .NET, outros recursos podem ser portados para a nova plataforma .NET unificada. Você pode considerar participar das discussões no GitHub para que sua voz possa ser ouvida. E se você achar que algo está faltando, registre um novo problema no repositório GitHub do dotnet/runtime .

Usando uma plataforma ou API que não dá suporte ao .NET 8

Algumas plataformas da Microsoft e de terceiros não dão suporte ao .NET 8. Por exemplo, alguns serviços do Azure fornecem um SDK que ainda não está disponível para consumo no .NET 8 ainda. A maioria do SDK do Azure deve eventualmente ser portada para o .NET 8/.NET Standard, mas alguns podem não por vários motivos. Você pode ver os SDKs do Azure disponíveis na página versões mais recentes do SDK do Azure .

Enquanto isso, se qualquer plataforma ou serviço no Azure ainda não der suporte ao .NET 8 com sua API cliente, você poderá usar a API REST equivalente do serviço do Azure ou do SDK do cliente no .NET Framework.

Portando o aplicativo ASP.NET existente para o .NET 8

O .NET Core é um passo revolucionário do .NET Framework. Ele oferece uma série de vantagens sobre o .NET Framework em todo o quadro, da produtividade ao desempenho e do suporte multiplataforma à satisfação do desenvolvedor.

Recursos adicionais