Microsoft NET - 5 motivos para aprender ainda em 2021

O Microsoft .NET é uma plataforma multiplataforma, open source e eleita a mais amada pela comunidade na pesquisa do Stack Overflow por dois anos consecutivos. Neste artigo, você vai entender o que ela é, como evoluiu e por que vale a pena aprendê-la ainda em 2021.

O que é o Microsoft .NET

O Microsoft .NET é um conjunto de bibliotecas, também conhecido como framework, que serve de base para outras tecnologias da Microsoft. O ASP.NET, por exemplo, é construído sobre ele.

Além das bibliotecas, a plataforma reúne um runtime, um SDK com ferramentas de linha de comando e linguagens como C#, F# e Visual Basic. Em outras palavras, trata-se de um ecossistema completo, e não apenas de uma biblioteca isolada.

Ao longo deste texto, vamos comparar o .NET, o C#, o ASP.NET, o Blazor, o Xamarin e o MAUI com diversas outras tecnologias. O objetivo é destacar as vantagens do Microsoft .NET perante outros frameworks, e não desmerecê-los.

De fato, apoiamos fortemente o aprendizado de diversas linguagens e gostamos muito de tecnologias como Node, Python, Nest, React e Flutter. Por isso, entenda que algumas críticas aqui servem apenas para efeito de comparação.

Microsoft .NET ao longo dos anos

Desde 2015, a Microsoft tornou o .NET e várias outras tecnologias open source e multiplataforma. Ou seja, além de ter o código aberto, o Microsoft .NET roda no Windows, no Mac e no Linux há um bom tempo.

Inclusive, a maior parte das máquinas que rodam no Microsoft Azure, a nuvem da empresa, executa Linux. Todos nós já entendemos a supremacia do Linux nos servidores, então não adianta brigar com isso.

Portanto, se você teve contato com o .NET há alguns anos, está na hora de se atualizar, pois a plataforma evoluiu muito. O cenário de hoje é bem diferente do .NET Framework que rodava apenas no Windows.

A Microsoft entendeu que, para competir em um mercado de nuvem tão disputado, precisava atender diferentes demandas, tecnologias e sistemas. Assim, não fazia mais sentido o Microsoft .NET, uma tecnologia da própria empresa, rodar apenas em Windows.

O papel do Microsoft .NET 5

O .NET 5 foi lançado em novembro de 2020 como a versão principal seguinte ao .NET Core 3.1. Segundo a documentação oficial do .NET 5, a Microsoft pulou a versão 4 para evitar confusão com o .NET Framework 4.x.

Além disso, o termo "Core" saiu do nome para enfatizar que essa passou a ser a implementação principal do .NET dali em diante. Com isso, o .NET 5 suporta mais tipos de aplicação e mais plataformas do que o .NET Core ou o .NET Framework.

O ASP.NET Core 5.0 e o Entity Framework Core 5.0, por sua vez, mantiveram o "Core" no nome. Dessa forma, eles não se confundem com o antigo ASP.NET MVC 5 nem com o Entity Framework 6.

Em quais plataformas o Microsoft .NET roda

Estamos caminhando para a versão 6 do .NET, prevista para novembro de 2021. Essa versão marca a unificação dos frameworks e leva o Microsoft .NET para ainda mais plataformas.

Se você não conhece a história da plataforma, este artigo sobre o .NET vai te ajudar a entender melhor.

Atualmente, se você começar a estudar .NET e C#, ou se já conhece e quer usar em seus projetos, poderá rodar sua aplicação nos seguintes ambientes:

  • Desktop
  • Web
  • Cloud
  • Mobile
  • Gaming
  • IoT
  • IA

Mas o que isso significa na prática? Significa que, com a mesma linguagem e o mesmo ecossistema, você consegue entregar praticamente tudo.

Benefícios de um único ecossistema

Usando a mesma linguagem e o mesmo ecossistema, fica muito mais simples padronizar códigos e projetos dentro da empresa. Além disso, o time consegue compartilhar código entre diversos projetos, o famoso reuso de código.

A contratação de profissionais, um dos maiores desafios do mercado no momento, também fica mais simples. Afinal, podemos buscar pelos famosos desenvolvedores e desenvolvedoras .NET, em vez de procurar alguém que domine várias tecnologias diferentes.

Na prática, uma equipe que conhece o Microsoft .NET pode atuar no backend, no frontend com Blazor e no mobile com Xamarin. Dessa forma, o conhecimento acumulado em um projeto se aproveita diretamente no seguinte.

Microsoft .NET em números

Essas mudanças são interessantes, mas vamos falar de números, afinal é isso que importa na hora de decidir. São eles que diferenciam o hype do mundo real.

Os dados a seguir foram apresentados pela Microsoft em uma sessão do Build, o evento da empresa para desenvolvedores, que aconteceu em maio de 2021. Em seguida, complementamos com a pesquisa anual do Stack Overflow.

Mais de 5 milhões de desenvolvedores

Esse é o número de desenvolvedores e desenvolvedoras .NET contabilizados pela Microsoft antes do último Build. Trata-se de uma base enorme, o que garante material, bibliotecas e vagas em abundância.

Mais amado no Stack Overflow

Todo ano o Stack Overflow realiza uma pesquisa com dezenas de milhares de desenvolvedores. Em 2019 e em 2020, o .NET Core ficou em primeiro lugar na lista de frameworks, bibliotecas e ferramentas mais amados.

Na edição de 2020, por exemplo, o .NET Core liderou essa categoria com 71,5% de aprovação entre quem já o utilizava. Isso significa que não só quem está começando com o Microsoft .NET tem uma ótima experiência, mas também quem migrou para ele não se arrependeu.

Um dos que mais crescem no GitHub

O .NET está entre os 30 projetos open source que mais crescem no GitHub. Ou seja, as pessoas não só aprendem a plataforma, como também investem seu tempo para melhorá-la.

C# em destaque

Quando falamos de .NET, o C# já vem associado automaticamente, e não é à toa. A linguagem, que é a minha preferida, vem evoluindo muito e está entre as cinco mais utilizadas no ranking do GitHub.

Dez vezes mais rápido que o Node

Isso mesmo, nos benchmarks apresentados pela Microsoft, o ASP.NET chega a ser dez vezes mais rápido que o Node. Se você duvida, basta baixar os benchmarks e executá-los para ver os resultados.

Crescimento de 40% entre estudantes

A Microsoft registrou um crescimento de 40% no número de novos estudantes que utilizam o .NET. É um número expressivo, principalmente em uma área com um déficit enorme de profissionais.

Esses dados foram apresentados na sessão do Microsoft Build 2021, que serviu de fonte para esta seção. Portanto, os números refletem o cenário daquele momento.

Performance do Microsoft .NET 5

Uma questão levantada com frequência é a performance do Microsoft .NET, e muitas pessoas ainda têm uma visão desatualizada sobre ela. Se você usou a plataforma há mais de cinco anos, saiba que quase tudo mudou nesse quesito.

Eu entendo que, antigamente, ele parecia muito mais "travado". No entanto, hoje os números são outros, e o .NET 5 trouxe melhorias no Garbage Collector, no System.Text.Json, nas expressões regulares e no pooling de operações assíncronas.

Requisições por segundo

Abaixo estão os números em RPS, ou seja, requisições por segundo, comparando o Microsoft .NET com outros frameworks de mercado. Os valores estão em milhões de requisições.

Tecnologia RPS (milhões)
.NET (ASP.NET) 7,01
Java Servlet 2,17
Node 0,66

Quando mudamos para o gRPC, o cenário fica ainda mais impressionante. Nesse caso, o .NET fica atrás apenas do Rust.

Tecnologia RPS (milhões)
Rust 50,2
.NET 48,3
Go 47,6
C++ 45,2
Java 36,1

Para quem quiser comparar frameworks web de forma independente, o TechEmpower Framework Benchmarks publica rodadas periódicas com diversos cenários. Assim, você pode verificar os resultados por conta própria.

Adoção do Microsoft .NET

Além da performance e da compatibilidade com diversas plataformas, o Microsoft .NET continua com uma excelente adoção. Ou seja, novas pessoas passaram a usá-lo, e quem já estava na plataforma permaneceu nela.

Nos primeiros seis meses de vida, o .NET Core 3.1 teve mais de 3 milhões de downloads. Já o .NET 5, nesse mesmo período, alcançou 3,6 milhões de downloads, um número expressivo para tão pouco tempo.

Esses dados mostram que muitas empresas estão aderindo às novas versões do .NET e atualizando seus produtos e seus times. Por isso, conhecer a plataforma moderna se torna um diferencial no mercado.

Inclusive, a própria Microsoft oferece ferramentas que auxiliam nessas migrações, como o .NET Portability Analyzer e o .NET Upgrade Assistant. Com elas, o time avalia a compatibilidade do código legado antes de iniciar a atualização.

5 motivos para usar o Microsoft .NET

Em resumo, as principais motivações para adotar o Microsoft .NET em 2021 se dividem em cinco pontos. A seguir, detalhamos cada um deles.

1. Flexibilidade

O .NET roda em diversas plataformas e pode ser publicado em diversos ambientes. Assim, a mesma base de código atende servidores Linux, máquinas Windows, contêineres e serviços de nuvem.

Além disso, o .NET 5 trouxe recursos como aplicações em arquivo único e trimming de aplicações. Dessa forma, fica mais simples distribuir executáveis enxutos para diferentes destinos.

2. Performance

A maioria dos recursos de infraestrutura que temos hoje cobra por uso, no modelo pay as you go. Portanto, quanto mais rápido respondemos uma requisição, mais rápido liberamos recursos de máquina e mais pessoas atendemos.

Em outras palavras, mais performance significa menos custo de infraestrutura para a sua empresa. Esse é um argumento que costuma convencer tanto a área técnica quanto a gestão.

3. Ambiente moderno

Rodando no Windows, no Mac e no Linux, com suporte a CLI e integração com ferramentas externas, o Microsoft .NET oferece um ecossistema moderno. Com isso, ele se alinha a diversas outras tecnologias de mercado.

Trabalha com Windows e inveja os terminais do Linux e do Mac? Sem problemas, confira nossos artigos sobre o Windows Terminal e o WSL.

4. Open source

Não só o .NET tem seu código aberto, como também o ASP.NET, o Entity Framework e diversas outras tecnologias. Isso significa custo zero de licença para a sua empresa.

Mas não paramos por aí, pois o Visual Studio Code, editor de código open source da Microsoft, também dá suporte a todo esse ecossistema. Ou seja, você pode aprender sem custo algum.

5. Comunidade

O Microsoft .NET tem uma das maiores comunidades de desenvolvedores do mundo. No mercado desde 2002, a plataforma já é madura e reúne pessoas de todos os continentes.

Isso significa que, muito provavelmente, você estará amparado por outras pessoas que enfrentam os mesmos desafios que os seus. Por isso, encontrar respostas, bibliotecas e exemplos costuma ser rápido.

Microsoft .NET, JavaScript e Python

O crescimento de novas pessoas estudando o Microsoft .NET se deve à evolução do ecossistema e da linguagem C# nos últimos anos. Framework, IDE e ambiente de desenvolvimento ficaram mais simples e acessíveis.

Algo que ouço com frequência é o quanto JavaScript e Python são simples para quem está começando. Porém, muitas pessoas ainda não conhecem o novo C#.

O Hello World em cada linguagem

Um exemplo simples e direto, que constantemente vira meme, é a complexidade de um Hello World em diferentes linguagens. Primeiro, veja a versão em JavaScript.

// Hello World em JavaScript
console.log('Hello world')

Em seguida, a versão em Python, igualmente curta.

# Hello World em Python
print('Hello world')

Porém, quando chegamos ao exemplo do C#, o que vejo com frequência é algo ultrapassado, como o código abaixo.

// Hello World em C# (modo antigo)
using System;

public class Program
{
    public static void Main(string[] args)
    {
        Console.WriteLine("Hello world");
    }
}

Desde a versão 9, o C# permite trabalhar com top-level statements, que dispensam toda essa estrutura. É quase como se o código fosse interpretado, embora continue sendo compilado.

// Hello World em C# (modo atual, com top-level statements)
System.Console.WriteLine("Hello world");

Segundo a documentação do .NET 5, esse recurso existe justamente para acelerar a adoção e o aprendizado do C#. Assim, o método Main pode ser omitido, e o compilador gera essa estrutura por você.

Uma API que cabe em um print

Mas nem só de Hello World vive o mundo, correto? Você deve estar se perguntando sobre exemplos mais complexos, e foi por isso que publiquei a imagem abaixo no Twitter há algum tempo.

Código de uma API completa de lista de tarefas escrita com Microsoft .NET, Minimal APIs e Entity Framework Core em memória, cabendo em uma única tela
Uma API de tarefas inteira em poucas linhas, publicada no Twitter com a frase "Feliz em ver que minha API cabe em um print".

O texto que escrevi foi "Feliz em ver que minha API cabe em um print". Isso mesmo, a imagem contém uma API que cria e lê uma lista de tarefas com ASP.NET Minimal APIs e Entity Framework Core usando banco em memória.

Portanto, o C# com ASP.NET é tão simples quanto JavaScript e Python, só talvez não seja tão popular nas redes. Para ver esse modelo em detalhes, confira o artigo sobre Minimal APIs no ASP.NET.

Fullstack com C# e Microsoft .NET

Inclusive, dá para ser fullstack com C#, já que o Microsoft .NET entrega até mais plataformas que a dupla Node e React. E deixe eu te contar uma coisa legal: nesse caminho, você só precisa aprender .NET.

No frontend, o Blazor permite construir interfaces web com C#. Já no mobile e no desktop, o Xamarin atende hoje e o MAUI chega com o .NET 6 para unificar esse desenvolvimento.

Pontos adicionais

Ainda há muita coisa que não cobri neste artigo, mas pretendo escrever sobre esses temas futuramente. Então, se quiser complementar seus argumentos, os pontos abaixo deixam a sua análise ainda mais completa.

  • Novidades do C# 10
  • Performance do EF Core
  • Blazor e MAUI
  • Curva de aprendizado

Conclusão

O Microsoft .NET deixou de ser uma tecnologia restrita ao Windows e se tornou uma plataforma aberta, rápida e presente em praticamente todos os ambientes. Além disso, os números de adoção, satisfação e performance mostram que essa mudança convenceu o mercado.

Por isso, aprender o Microsoft .NET ainda em 2021 é uma decisão segura para quem quer entrar ou crescer na área. Com uma única linguagem e um único ecossistema, você constrói APIs, aplicações web, desktop, mobile e muito mais.

FAQ

O Microsoft .NET é gratuito?

Sim, o .NET é open source e gratuito, assim como o ASP.NET e o Entity Framework Core. Você pode desenvolver com o Visual Studio Code sem nenhum custo.

O Microsoft .NET roda no Linux e no Mac?

Sim, desde 2015 a plataforma é multiplataforma e roda no Windows, no Linux e no macOS. Inclusive, a maior parte das máquinas do Azure executa Linux.

Qual a diferença entre .NET Core e .NET 5?

O .NET 5 é a versão principal seguinte ao .NET Core 3.1. A Microsoft removeu o "Core" do nome para indicar que essa passou a ser a implementação principal do .NET.

Preciso aprender C# para usar o .NET?

O C# é a linguagem mais usada na plataforma, embora o .NET também suporte F# e Visual Basic. Para quem está começando, o C# é a escolha mais recomendada.

O que são top-level statements?

São um recurso do C# 9 que permite escrever o programa sem declarar a classe e o método Main. Com isso, um Hello World cabe em uma única linha.

Quando o .NET 6 será lançado?

A previsão divulgada pela Microsoft é novembro de 2021. Ele marca a unificação dos frameworks e a chegada do MAUI.

Glossário

Termo Significado
Framework Conjunto de bibliotecas e convenções que serve de base para construir aplicações.
Open source Software com código aberto, que qualquer pessoa pode ler, usar e contribuir.
Multiplataforma Capacidade de rodar em diferentes sistemas operacionais, como Windows, Linux e macOS.
ASP.NET Framework do .NET para construir aplicações web e APIs.
RPS Requests per second, ou requisições por segundo, medida de vazão de um servidor.
gRPC Framework de chamadas remotas de alta performance baseado em HTTP/2.
Pay as you go Modelo de cobrança em nuvem em que se paga apenas pelo que se usa.
Top-level statements Recurso do C# 9 que dispensa a declaração explícita da classe e do método Main.
Minimal APIs Modelo enxuto do ASP.NET para criar APIs com pouco código.
CLI Interface de linha de comando usada para criar, compilar e executar projetos.

Fontes