Compartilhar via


.NET 5 vs. .NET Framework para aplicativos de servidor

Há duas implementações do .NET com suporte para a criação de aplicativos do lado do servidor: .NET e .NET Framework. A versão mais recente do .NET (atualmente .NET 8) é a versão preferencial do .NET a ser usada para desenvolvimento de servidor. 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

Escolher o .NET

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

  • Funciona entre plataformas.

    O .NET permite que o seu aplicativo Web ou 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 dá suporte ao IntelliSense e à depuração. A maioria dos editores de terceiros, como Sublime, Emacs e VI, trabalham com o .NET. Esses editores de terceiros obtém o IntelliSense do editor usando o Omnisharp. Você também pode ignorar o editor de código e usar diretamente a CLI do .NET.

  • Permite que você direcione microsserviços.

    Uma arquitetura de microsserviços possibilita uma combinação de tecnologias em 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 serviços ou microsserviços. Por exemplo, você pode combinar microsserviços ou serviços desenvolvidos com .NET Framework, Java, Ruby ou outras tecnologias monolíticas.

    Há muitas plataformas de infraestrutura disponíveis. O Azure Service Fabric é criado para sistemas de microsserviço grandes e complexos. O Serviço de Aplicativo do Azure é uma boa escolha para microsserviços sem monitoração de estado. Alternativas de microsserviços com base no Docker se ajustam a qualquer abordagem de microsserviços, conforme explicado na próxima seção (dá suporte a contêineres do Docker). Todas essas plataformas oferecem suporte ao .NET, e são ideais para hospedar microsserviços.

    Para obter mais informações sobre a arquitetura de microsserviços, confira Microsserviços do .NET: arquitetura para aplicativos .NET em contêineres.

  • Dá suporte a contêineres do Docker.

    Os contêineres são frequentemente usados com uma arquitetura de microsserviços. Os contêineres também podem ser usados para colocar em contêiner os 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 opção melhor para contêineres. Ao criar e implantar um contêiner, o tamanho de sua imagem será muito menor com o .NET do que com o .NET Framework. Como ele é multiplataforma, é possível implantar aplicativos para servidores em contêineres do Docker do Linux.

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

  • É de alto desempenho e escalonável.

    Quando o seu sistema precisa do melhor desempenho e escalabilidade possíveis, o .NET e o ASP.NET Core são as melhores opções. O runtime de servidor de alto desempenho para Windows Server e Linux torna o ASP.NET Core uma estrutura da Web de desempenho superior nas avaliações da TechEmpower.

    O desempenho e a escalabilidade são especialmente relevantes para arquiteturas de microsserviços, nas quais 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.

  • Dá suporte a versões do .NET lado a lado por aplicativo.

    A implementação do .NET dá suporte a instalações lado a lado de diferentes versões do runtime do .NET no mesmo computador. Essa funcionalidade permite vários serviços no mesmo servidor, cada um em sua própria versão do .NET. Ela também reduz os riscos e gera economia financeira nas operações de TI e atualizações de aplicativo.

    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 um computador 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á acabar interrompendo os aplicativos existentes executados no computador, pois 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 aplicativo. 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 atualmente usar o .NET Framework.

    Na maioria dos casos, não é necessário migrar aplicativos existentes para o .NET. Em vez disso, recomendamos usar o .NET à medida que você estende um aplicativo existente, como gravar 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 os projetos do .NET Standard e do .NET referenciem 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 usarem tecnologias que não estão disponíveis no .NET Standard ou no .NET.

  • Seu aplicativo usar tecnologias .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:

    • Aplicativos ASP.NET Web Forms: os ASP.NET Web Forms só estão disponíveis no .NET Framework. O ASP.NET Core não pode ser usado para Web Forms do ASP.NET.
    • Aplicativos de páginas da Web do ASP.NET: as páginas da Web do ASP.NET não estão incluídas no ASP.NET Core.
    • Serviços relacionados a fluxo de trabalho: o WF (Windows Workflow Foundation), o Workflow Services (WCF + WF em um único serviço) e o WCF Data Services (anteriormente conhecido como "ADO.NET Data Services") só estão disponíveis no .NET Framework.
    • Suporte a linguagens: o Visual Basic e o F# têm suporte no .NET, mas não em todos os tipos de projeto. Para obter uma lista de modelos de projeto com suporte, consulte Opções de modelo para o dotnet new.

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

  • Seu aplicativo usar uma plataforma que não oferece suporte ao .NET.

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

Confira também