Partilhar via


.NET vs. .NET Framework para aplicativos de servidor

Há duas implementações .NET suportadas para criar aplicativos do lado do servidor: .NET e .NET Framework. A versão mais recente do .NET (atualmente .NET 8) é a versão preferida do .NET para uso no desenvolvimento de servidores. Os motivos para continuar usando o .NET Framework são específicos e limitados.

Implementação Versões incluídas
.NET .NET Core 1.0 - 3.1
.NET 5 e versões posteriores
.NET Framework .NET Framework 1.0 - 4.8

Escolha .NET

O .NET tem as seguintes vantagens para aplicativos de servidor:

  • Funciona em várias plataformas.

    O .NET permite que seu aplicativo Web ou de serviço seja executado em várias plataformas, por exemplo, Windows, Linux e macOS. Você também pode usar qualquer um desses sistemas operacionais como sua estação de trabalho de desenvolvimento. Use o ambiente de desenvolvimento integrado (IDE) do Visual Studio no Windows ou use o Visual Studio Code no macOS, Linux ou Windows. O Visual Studio Code oferece suporte ao IntelliSense e à depuração. A maioria dos editores de terceiros, como Sublime, Emacs e VI, trabalha com .NET. Esses editores de terceiros obtêm o editor IntelliSense usando o Omnisharp. Você também pode ignorar o editor de código e usar diretamente a CLI do .NET.

  • Permite segmentar microsserviços.

    Uma arquitetura de microsserviços permite uma combinação de tecnologias através de um limite de serviço. Essa combinação de tecnologias permite uma adoção gradual do .NET para novos microsserviços que funcionam com outros microsserviços ou serviços. Por exemplo, você pode misturar microsserviços ou serviços desenvolvidos com .NET Framework, Java, Ruby ou outras tecnologias monolíticas.

    Existem muitas plataformas de infraestrutura disponíveis. O Azure Service Fabric foi projetado para sistemas de microsserviços grandes e complexos. O Serviço de Aplicativo do Azure é uma boa opção para microsserviços sem monitoração de estado. As alternativas de microsserviços baseadas no Docker se ajustam a qualquer abordagem de microsserviços, conforme explicado na próxima seção (Suporta contêineres do Docker). Todas essas plataformas suportam .NET e as tornam ideais para hospedar seus microsserviços.

    Para obter mais informações sobre arquitetura de microsserviços, consulte .NET Microservices: Architecture for containerized .NET apps.

  • Suporta contêineres Docker.

    Os contêineres são comumente usados com uma arquitetura de microsserviços. Os contêineres também podem ser usados para criar contêineres de aplicativos ou serviços Web que seguem qualquer padrão de arquitetura. Embora o .NET Framework possa ser usado em contêineres do Windows, a modularidade e a natureza leve do .NET o tornam uma escolha melhor para contêineres. Quando você está criando e implantando um contêiner, o tamanho de sua imagem é muito menor com o .NET do que com o .NET Framework. Como é multiplataforma, você pode implantar aplicativos de servidor em contêineres do Linux Docker.

    Você pode hospedar contêineres do Docker em sua própria infraestrutura Linux ou Windows ou em um serviço de nuvem, como o Serviço Kubernetes do Azure. O Serviço Kubernetes do Azure pode gerenciar, orquestrar e dimensionar aplicativos baseados em contêiner na nuvem.

  • É de alto desempenho e escalável.

    Quando seu sistema precisa do melhor desempenho e escalabilidade possíveis, o .NET e o ASP.NET Core são suas melhores opções. O tempo de execução do servidor de alto desempenho para Windows Server e Linux torna o ASP.NET Core uma estrutura da Web de alto desempenho nos benchmarks TechEmpower.

    O desempenho e a escalabilidade são especialmente relevantes para arquiteturas de microsserviços, onde centenas de microsserviços podem estar em execução. Com o ASP.NET Core, os sistemas são executados com um número muito menor de servidores ou máquinas virtuais (VMs), o que economiza custos em infraestrutura e hospedagem.

  • Suporta versões .NET lado a lado por aplicativo.

    A implementação do .NET suporta instalações lado a lado de diferentes versões do tempo de execução do .NET na mesma máquina. Esse recurso permite vários serviços no mesmo servidor, cada um em sua própria versão do .NET. Ele também reduz os riscos e economiza dinheiro em atualizações de aplicativos e operações de TI.

    A instalação lado a lado não é possível com o .NET Framework. É um componente do Windows e apenas uma versão pode existir em uma máquina de cada vez: cada versão do .NET Framework substitui a versão anterior. Se você instalar um novo aplicativo destinado a uma versão posterior do .NET Framework, poderá interromper aplicativos existentes executados no computador porque a versão anterior foi substituída.

  • É mais seguro.

Quando escolher o .NET Framework

Como mencionado anteriormente, a implementação do .NET oferece benefícios significativos para novos aplicativos e padrões de aplicativos. No entanto, em alguns cenários específicos, talvez seja necessário usar o .NET Framework para seus aplicativos de servidor, e o .NET Framework continuará a ter suporte. Use o .NET Framework para seu aplicativo de servidor quando:

  • Seu aplicativo usa atualmente o .NET Framework.

    Na maioria dos casos, você não precisa migrar seus aplicativos existentes para o .NET. Em vez disso, recomendamos usar o .NET ao estender um aplicativo existente, como escrever um novo serviço Web no ASP.NET Core.

  • Seu aplicativo usa bibliotecas de terceiros ou pacotes NuGet que não estão disponíveis para .NET.

    O .NET Standard permite o compartilhamento de código em todas as implementações do .NET, incluindo o .NET 6+. Com o .NET Standard 2.0, um modo de compatibilidade permite que projetos .NET Standard e .NET façam referência a bibliotecas do .NET Framework. Para obter mais informações, consulte Suporte para bibliotecas do .NET Framework.

    Você só deve usar o .NET Framework quando as bibliotecas ou pacotes NuGet usam tecnologias que não estão disponíveis no .NET Standard ou .NET.

  • Seu aplicativo usa tecnologias do .NET Framework que não estão disponíveis para o .NET.

    Algumas tecnologias do .NET Framework não estão disponíveis no .NET. A lista a seguir mostra as tecnologias mais comuns não encontradas no .NET:

    • ASP.NET aplicativos Web Forms: ASP.NET Web Forms só estão disponíveis no .NET Framework. ASP.NET Core não pode ser usado para ASP.NET Web Forms.
    • ASP.NET aplicações Web Pages: ASP.NET Web Pages não estão incluídas no ASP.NET Core.
    • 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.
    • Suporte a idiomas: Visual Basic e F# são suportados no .NET, mas não para todos os tipos de projeto. Para obter uma lista de modelos de projeto suportados, consulte Opções de modelo para dotnet new.

    Para obter mais informações, consulte Tecnologias do .NET Framework não disponíveis no .NET.

  • Seu aplicativo usa uma plataforma que não suporta .NET.

    Algumas plataformas da Microsoft ou de terceiros não suportam .NET. Alguns serviços do Azure fornecem um SDK ainda não disponível para consumo no .NET. Nesses casos, você pode usar a API REST equivalente em vez do SDK do cliente.

Consulte também