Pular para o conteúdo
.NETSDK, runtime e versionamento
Módulo 01Fundamentos da Plataforma e da Linguagem

SDK, runtime e versionamento

iniciante 20 min de leitura·Atualizado · .NET 9
Resumo

O SDK é o kit para desenvolver (compilador + CLI + templates); o runtime é o mínimo para executar. Cada versão do .NET segue um calendário com faixas LTS e STS, e o global.json fixa qual SDK um projeto usa.

1. Objetivos de Aprendizagem#

  • Diferenciar SDK e runtime.
  • Entender o esquema de versões (LTS vs STS) e cadência anual.
  • Fixar a versão do SDK com global.json.

2. Pré-requisitos#

  • Ter o .NET SDK instalado (tópico 1.1).

3. Conceito#

  • SDK (Software Development Kit): tudo que você precisa para desenvolver — o compilador C#, a dotnet CLI, os templates de projeto e o próprio runtime. É o que você instala na sua máquina de desenvolvimento.
  • Runtime: o subconjunto necessário apenas para executar uma aplicação já compilada. É o que costuma ir para um servidor que só roda o app.

O porquê de separar: servidores de produção não precisam do SDK inteiro — instalar só o runtime reduz superfície e tamanho.

Versionamento: a Microsoft lança uma versão principal por ano, em novembro. As versões alternam entre:

  • LTS (Long-Term Support): ~3 anos de suporte (ex.: .NET 8).
  • STS (Standard-Term Support): ~18 meses (ex.: .NET 9).
Nota

este curso usa net9.0. Todo o conteúdo é válido para .NET 9 ou superior.

4. Mão na Massa#

4.1. Setup#

Liste o que está instalado:

Shell
dotnet --list-sdks
dotnet --list-runtimes

4.2. Implementação Passo a Passo#

  1. Descubra a versão ativa do SDK:
Shell
dotnet --version
  1. Fixe a versão do SDK para um repositório criando um global.json na raiz:
JSON
{
  "sdk": {
    "version": "9.0.100",
    "rollForward": "latestFeature"
  }
}
  1. O Target Framework Moniker (TFM) do projeto (net9.0 no .csproj) define qual runtime o app terá como alvo — é independente do SDK que compila.

4.3. Executando#

Shell
dotnet --version   # respeita o global.json, se presente

5. Exemplo Completo#

Com global.json fixando 9.0.100 e rollForward: latestFeature, toda a equipe compila com um SDK compatível, evitando "na minha máquina funciona".

6. Boas Práticas e Armadilhas#

FaçaEvite
Usar global.json em repositórios de equipeDepender do SDK "mais novo que estiver na máquina"
Escolher LTS para produção quando estabilidade é prioridadeFicar em versões fora de suporte (sem patches de segurança)
Instalar só o runtime em servidoresInstalar o SDK completo em produção sem necessidade
Atenção

o TFM (net9.0) e a versão do SDK são coisas diferentes. Um SDK 9.x pode compilar projetos com alvo net8.0 e net9.0.

7. Segurança e Produção#

  • Versões fora de suporte não recebem correções de segurança. Planeje a atualização antes do fim do ciclo.

8. Exercícios#

  • Fácil: liste seus SDKs e runtimes instalados.
  • Médio: crie um global.json e confirme que dotnet --version o respeita.
  • Desafio: pesquise a data de fim de suporte da versão que você usa.

9. Resumo#

SDK é para desenvolver, runtime é para executar. As versões alternam LTS/STS em cadência anual, e o global.json fixa o SDK do projeto — separado do TFM que define o alvo.

10. Próximos Passos#

A seguir: dominar a dotnet CLI.

11. Referências#

01-02 — SDK, runtime e versionamento | Curso ASP.NET Core