.NET - Instalação, Configuração e Primeiros Passos
Instalar o .NET é o primeiro passo para quem quer desenvolver com a plataforma de aplicações da Microsoft, que roda em diferentes dispositivos e sistemas operacionais. Criada por volta do ano 2000, a plataforma amadureceu muito desde então e conquistou um espaço sólido no mercado.
Neste guia, você entende o que é um framework, conhece a diferença entre .NET Framework, .NET Core e .NET 5 e, por fim, cria sua primeira aplicação de console pelo terminal.
O que é um framework
O .NET é chamado de framework porque é um conjunto de bibliotecas que ajuda na criação de aplicações Web, Windows, Mobile, IoT, Machine Learning e diversas outras vertentes.
Imagine que você precisa ler um arquivo de texto do seu computador. Nesse caso, você não escreve todo o código de acesso ao disco do zero.
Em vez disso, você usa as bibliotecas que o .NET oferece para acesso a arquivos. Dessa forma, a leitura acontece com poucas linhas de código.
Se pensarmos nesse reuso em várias aplicações, a economia de escrita é enorme. Na verdade, é difícil imaginar um projeto sério sem um framework, porque reescrever tudo seria desperdiçar código pronto, testado e funcionando.
Para aprofundar esse conceito, vale ler o artigo sobre o que é o .NET, que detalha o papel do framework no dia a dia.
.NET Framework, .NET Core e .NET 5
Durante sua jornada, você vai encontrar três nomes para a mesma plataforma. Por isso, vale entender a origem de cada um antes de instalar qualquer coisa.
.NET Framework
Quando o .NET nasceu, por volta de 1999 e 2000, seu primeiro nome foi .NET Framework. A ideia era concentrar o desenvolvimento de aplicações sobre as tecnologias Microsoft.
O .NET Framework teve diversas versões instaláveis lado a lado (side by side). Ou seja, você pode ter várias versões diferentes dele na mesma máquina.
Sua última geração é a 4.x, que executa apenas no Windows e não suporta Mac nem Linux. Embora essas versões ainda tenham suporte, a recomendação é começar novos projetos com .NET Core ou .NET 5.
.NET Core
Com o avanço de tecnologias como o Node, a Microsoft decidiu levar o .NET para várias plataformas, com suporte a Windows, Mac e Linux.
Porém, o .NET Framework não era compatível com Linux nem Mac. Além disso, ele tinha milhões de linhas de código acopladas ao Windows.
Então, a saída mais rápida foi escrever algo novo, do zero. Assim nasceu, por volta de 2015, o .NET Core, com as mesmas ambições do .NET Framework e um alcance muito maior.
Durante esse período, a Microsoft manteve dois frameworks no mercado. De um lado, o .NET Framework, mais completo e restrito ao Windows; do outro, o .NET Core, ainda em construção, mas multiplataforma.
Felizmente, uma das primeiras partes portadas foi o ASP.NET, a tecnologia da Microsoft para aplicações Web. Por isso, quem foca em Web não tem motivos para começar projetos novos no .NET Framework.
Enquanto o .NET Framework passou a receber apenas pequenos reparos, o .NET Core cresceu rapidamente. Com isso, ele chegou perto de cobrir tudo o que seu antecessor oferecia.
.NET 5
Se o .NET Core já tinha quase tudo o que o .NET Framework oferecia, e ainda rodava em várias plataformas, não fazia mais sentido manter dois frameworks.
Essa é justamente a ideia do .NET 5, lançado em novembro de 2020. Ele unifica os dois mundos que estavam separados por questões de compatibilidade com sistemas operacionais.
Na prática, o .NET 5 é a evolução direta do .NET Core 3.1. Portanto, boa parte do seu código continua funcionando sem grandes mudanças.
Daqui para frente, a numeração segue com 6, 7, 8 e assim por diante, sempre com o nome .NET. Além disso, o termo "Core" deixa de aparecer no nome do produto.
SDK ou Runtime: o que baixar para instalar o .NET
Antes de instalar o .NET, você precisa entender a diferença entre SDK e Runtime. Afinal, essas são as duas opções que aparecem na página de download.
SDK significa Software Development Kit. Em outras palavras, é o pacote necessário para construir aplicações com o .NET, pois ele traz o compilador, a CLI e os templates.
Já o Runtime é apenas a base para executar aplicações que já foram criadas e compiladas. Ele não compila nada.
Sempre que você for desenvolver ou compilar, precisa do SDK. Por outro lado, o Runtime basta no servidor ou na máquina onde o programa compilado vai rodar.
Uma boa notícia é que o SDK já inclui o Runtime correspondente. Portanto, na máquina de desenvolvimento, instalar o .NET SDK resolve as duas necessidades de uma vez.
Versões LTS
Em algumas versões, a página de download exibe a sigla LTS, de Long Term Support. Ou seja, são versões com suporte por um período mais longo.
Na geração do .NET Core, as versões LTS foram a 2.1 e a 3.1, que chegaram com correções que as versões anteriores não tinham. Já o .NET 5 é uma versão Current, com ciclo de suporte mais curto.
Quando usamos uma versão LTS, contamos com o suporte da Microsoft por bem mais tempo. Por isso, ela é a recomendada para aplicações em produção.
Como instalar o .NET no Windows
Instalar o .NET no Windows é simples. Basta acessar a página oficial de download do .NET e baixar o instalador clicando em Download .NET SDK.
Em seguida, execute o instalador e siga os passos na tela. Ao final, o comando dotnet fica disponível no Prompt de Comando, no PowerShell e no Windows Terminal.
Depois da instalação, abra um terminal novo. Assim, ele carrega a variável PATH atualizada e reconhece o comando dotnet.
Como instalar o .NET no Mac
No Mac, o processo é praticamente o mesmo. Acesse a página oficial de download, escolha a aba do macOS e baixe o instalador do SDK.
Então, abra o arquivo .pkg e conclua o assistente de instalação. Ao final, o comando dotnet fica disponível no Terminal.
Assim como no Windows, abra uma nova janela do Terminal depois de instalar o .NET. Dessa forma, você garante que o caminho do executável já está configurado.
Como instalar o .NET no Linux (Ubuntu)
No Ubuntu 19.10, o primeiro passo é registrar o feed de pacotes da Microsoft no sistema. Para isso, execute as linhas abaixo:
# Baixa e registra o repositório de pacotes da Microsoft
wget https://packages.microsoft.com/config/ubuntu/19.10/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
Agora, instale o SDK do .NET Core e suas dependências com os comandos a seguir:
# Atualiza a lista de pacotes e instala o SDK do .NET Core 3.1
sudo apt-get update
sudo apt-get install apt-transport-https
sudo apt-get update
sudo apt-get install dotnet-sdk-3.1
Se você usa outra versão do Ubuntu, troque o número 19.10 da URL pelo número da sua versão. Para outras distribuições, consulte o guia de instalação no Linux.
Como instalar o .NET em versões anteriores
Em várias situações, você vai encontrar aplicações criadas com versões anteriores do .NET Core, como a 2.1 ou a 2.2.
Assim como o .NET Framework, o .NET Core permite a instalação lado a lado. Isto é, várias versões convivem na mesma máquina sem conflito.
Você pode acessar a lista completa de versões do .NET Core e baixar a que precisar. Além disso, o processo para instalar o .NET em uma versão anterior é idêntico ao da versão atual.
Verificando se instalar o .NET deu certo
Com tudo instalado, confira a versão do SDK que o terminal reconhece. Para isso, use o comando abaixo:
dotnet --version
Se tudo correu bem, o terminal exibe o número da versão padrão. Em seguida, você pode listar todos os SDKs instalados no sistema:
dotnet --list-sdks
Da mesma forma, o comando dotnet --list-runtimes mostra os runtimes disponíveis. A documentação da CLI do .NET traz a lista completa de comandos.
Especificando uma versão do SDK
Suponha que você baixou o código de uma aplicação escrita em .NET Core 2.2 e precisa dar manutenção nela.
O primeiro passo é instalar o .NET SDK na versão correta, como vimos. Depois, execute dotnet --list-sdks para confirmar que ele aparece na lista.
Agora, é preciso dizer ao terminal que você quer usar essa versão. Afinal, sempre que você instala uma versão mais nova, ela passa a ser a padrão para todos os comandos.
Por exemplo, ao executar dotnet new, a CLI usa o SDK padrão do sistema, que é o mais recente. Da mesma forma, o dotnet restore também se baseia nessa versão.
Para criar um projeto apontando para outro framework, use a opção -f seguida do identificador da versão, como netcoreapp3.1 ou net5.0:
# Cria um app de console que tem como alvo o .NET 5
dotnet new console -o MyConsoleApp -f net5.0
Repare que a opção -f define o framework de destino do projeto, mas não troca o SDK usado. Para fixar o SDK, você usa o arquivo global.json, apresentado a seguir.
Criando seu primeiro app
Depois de instalar o .NET e conferir a versão, vamos criar o primeiro app, que será uma Console Application. Como resultado, teremos um executável da aplicação.
Existem vários tipos de projeto disponíveis no comando dotnet new. Você pode conferir todos os templates na documentação oficial.
Abra um terminal, navegue até uma pasta segura e execute os comandos abaixo:
mkdir myapp
cd myapp
dotnet new console
Primeiro criamos uma pasta, depois entramos nela e, por fim, geramos a estrutura de um projeto de console. Para explorar mais opções desse comando, veja o artigo sobre criação de projetos .NET via console.
Também é possível fazer tudo isso em um único comando:
dotnet new console -o myapp
A diferença é que, nesse caso, você não tem a chance de criar o global.json antes. Ou seja, o projeto sempre nasce com o SDK mais recente instalado.
Usando o global.json para escolher o SDK
Caso queira criar o projeto com um SDK anterior, crie a pasta primeiro:
mkdir myapp
cd myapp
Então, abra a pasta no Visual Studio Code e crie um arquivo global.json na raiz, com a seguinte configuração:
{
"sdk": {
"version": "X.X.XXX"
}
}
Substitua X.X.XXX pela versão exata do SDK, como aparece no dotnet --list-sdks. Além disso, garanta que esse SDK está instalado no sistema.
Se preferir, o próprio SDK gera esse arquivo com o comando dotnet new globaljson --sdk-version X.X.XXX. Em seguida, volte ao terminal e crie a aplicação:
dotnet new console
Dessa forma, o app de console nasce com o SDK definido no global.json. A CLI procura esse arquivo na pasta atual e nas pastas acima dela, usando o primeiro que encontrar.
Caso você especifique uma versão que não está instalada, a CLI exibe um erro. Nesse caso, basta instalar o SDK indicado ou ajustar o número no arquivo.
Restaurando os pacotes
Embora o SDK forneça todo o conteúdo básico, é muito comum usar pacotes externos nas aplicações.
Imagine que você precisa ler um QR Code. Provavelmente, outras pessoas já resolveram esse problema e publicaram um pacote pronto.
Esse pacote não vem junto quando você vai instalar o .NET. Contudo, você pode usá-lo a partir do NuGet, o repositório oficial de pacotes do ecossistema .NET.
Por isso, sempre que você obtém o código de uma aplicação .NET, o primeiro passo é restaurar os pacotes com o comando abaixo:
dotnet restore
Note que você precisa executar esse comando na pasta raiz da aplicação. Vale lembrar que, desde o .NET Core 2.0, comandos como build e run já executam o restore implicitamente.
Compilando a aplicação
O próximo passo é compilar a aplicação para garantir que todo o código está correto. Como não alteramos nada, a compilação deve passar sem erros.
Para isso, execute o comando abaixo na raiz do projeto:
dotnet build
Ao final, o terminal exibe uma mensagem de sucesso, o que confirma que instalar o .NET e restaurar os pacotes funcionou. Além disso, os arquivos compilados ficam na pasta bin do projeto.
Atualizando os certificados de desenvolvimento
Se você for executar uma aplicação Web, vai precisar de HTTPS localmente, o que exige um certificado digital. Felizmente, ao instalar o .NET SDK você já recebe uma ferramenta que gera um certificado de desenvolvimento para testes.
Para recriar e confiar nesse certificado, execute os comandos abaixo:
# Remove certificados de desenvolvimento antigos
dotnet dev-certs https --clean
# Gera um novo certificado e marca como confiável
dotnet dev-certs https --trust
A opção --trust funciona no Windows e no macOS. Já no Linux, a confiança no certificado exige passos manuais que variam conforme a distribuição.
Executando a aplicação
O último passo é executar a aplicação. Para isso, use o comando abaixo:
dotnet run
Nesse momento, você deve ver o famoso Hello World no terminal. Ele vem do arquivo Program.cs que o template gerou:
using System;
namespace MyApp
{
class Program
{
static void Main(string[] args)
{
// Ponto de entrada da aplicação
Console.WriteLine("Hello World!");
}
}
}
Se o texto aparecer, o processo de instalar o .NET e criar o projeto foi concluído.
Experimente trocar a mensagem e executar dotnet run de novo. Assim, você confirma que a CLI compila e executa o código a cada alteração.
Conclusão: depois de instalar o .NET
Neste guia, você aprendeu a instalar o .NET no Windows, no Mac e no Linux. Além disso, viu a diferença entre SDK e Runtime e entendeu por que as versões LTS são as preferidas em produção.
Também criou, restaurou, compilou e executou sua primeira aplicação de console. Com o global.json, você ainda ganhou controle sobre qual SDK cada projeto usa.
Agora, depois de instalar o .NET, o próximo passo é explorar outros templates, como Web APIs e aplicações Web. Parabéns, seu ambiente está pronto para desenvolver com .NET Core.
FAQ
Preciso instalar o SDK e o Runtime separadamente?
Não na máquina de desenvolvimento. O SDK já inclui o Runtime correspondente, então basta instalar o SDK.
Posso ter várias versões do .NET na mesma máquina?
Sim. O .NET Core permite instalação lado a lado, e o global.json define qual SDK cada projeto usa.
Qual versão devo usar em produção?
Prefira uma versão LTS, como o .NET Core 3.1. Ela recebe suporte da Microsoft por mais tempo.
O que faz o comando dotnet restore?
Ele baixa do NuGet os pacotes externos que o projeto referencia. Os comandos build e run também executam essa restauração automaticamente.
Por que preciso do certificado de desenvolvimento?
Porque aplicações Web rodam em HTTPS localmente. O comando dotnet dev-certs https --trust cria e confia em um certificado para testes.
Como sei qual SDK está em uso?
Execute dotnet --version dentro da pasta do projeto. O resultado já considera o global.json, se houver um.