Quando escolher o .NET Framework para contêineres do Docker
Gorjeta
Este conteúdo é um trecho do eBook, .NET Microservices Architecture for Containerized .NET Applications, disponível no .NET Docs ou como um PDF para download gratuito que pode ser lido offline.
Embora o .NET 8 ofereça benefícios significativos para novos aplicativos e padrões de aplicativos, o .NET Framework continuará a ser 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 oferecer ambientes de teste isolados melhores e também podem eliminar problemas de implantação causados por dependências ausentes quando você muda para um ambiente de produção. Em casos como esses, mesmo se você estiver implantando um aplicativo monolítico, faz sentido usar o Docker e os Contêineres 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
As 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 superfície da API entre diferentes estruturas tornou-se significativamente maior. Ainda mais, o .NET Core 2.x e aplicativos mais recentes também podem fazer referência direta a 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 da API disponível para o .NET Standard 2.0 no Windows. Este 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 excecional desde o .NET Standard 2.0 e o .NET Core 2.1 ou posterior, pode haver casos em que determinados pacotes NuGet precisam do Windows para serem executados e podem não oferecer suporte ao .NET Core ou posterior. Se esses pacotes forem críticos 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 aplicativos 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 para trazer ASP.NET Web Forms para o .NET ou posterior.
Serviços relacionados ao fluxo de trabalho. Windows Workflow Foundation (WF), Workflow Services (WCF + WF em um único serviço) e WCF Data Services (anteriormente conhecido como ADO.NET Data Services) só estão disponíveis no .NET Framework. Atualmente, não há planos para 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 unificada do .NET. Você pode considerar participar das discussões no GitHub para que sua voz possa ser ouvida. E se você acha que algo está faltando, registre um novo problema no repositório GitHub dotnet/runtime .
Usando uma plataforma ou API que não suporta .NET 8
Algumas plataformas da Microsoft e de terceiros não suportam o .NET 8. Por exemplo, alguns serviços do Azure fornecem um SDK que ainda não está disponível para consumo no .NET 8. A maioria do SDK do Azure deve eventualmente ser portada para o .NET 8/.NET Standard, mas alguns podem não ser 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 oferecer suporte ao .NET 8 com sua API de cliente, você poderá usar a API REST equivalente do serviço do Azure ou o SDK do cliente no .NET Framework.
Portabilidade do 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 em relação ao .NET Framework em todos os aspetos, da produtividade ao desempenho, do suporte entre plataformas à satisfação do desenvolvedor.
Recursos adicionais
Fundamentos do .NET
https://learn.microsoft.com/dotnet/fundamentalsPortabilidade de projetos para .NET 5
https://learn.microsoft.com/events/dotnetconf-2020/porting-projects-to-net-5.NET no Guia do Docker
https://learn.microsoft.com/dotnet/core/docker/introduction