O que é .NET: CLR, BCL e ecossistema
Resumo.NET é uma plataforma de desenvolvimento multiplataforma. Você escreve C#, o compilador gera IL, e o runtime (CLR) executa esse IL sobre qualquer sistema operacional. A BCL fornece as bibliotecas básicas prontas.
1. Objetivos de Aprendizagem#
- Explicar o que é o .NET moderno e por que ele é multiplataforma.
- Diferenciar CLR, IL, JIT e BCL.
- Situar o ASP.NET Core dentro do ecossistema.
2. Pré-requisitos#
- Nenhum. É o ponto de partida do curso.
3. Conceito#
O .NET (atualmente unificado, sem o sufixo "Core" desde o .NET 5) é uma plataforma para construir aplicações de console, web, desktop, mobile e serviços. O porquê de existir: dar a você uma linguagem tipada e produtiva (C#) com bibliotecas ricas e desempenho de produção, executando igual em Windows, Linux e macOS.
O fluxo de execução tem quatro peças:
- C# — o código-fonte que você escreve.
- IL (Intermediate Language) — o compilador (Roslyn) transforma seu C# em um bytecode intermediário, independente de plataforma, guardado em arquivos
.dll. - CLR (Common Language Runtime) — a máquina virtual do .NET. Ela carrega o IL, faz o JIT (Just-In-Time) compilando para código nativo da máquina no momento da execução, e cuida do Garbage Collector (gerenciamento automático de memória).
- BCL (Base Class Library) — o conjunto enorme de tipos prontos (
string,List<T>,File,HttpClient…) sob namespaces comoSystem.*.
Notao ASP.NET Core é um framework que roda sobre o .NET. Dominar os fundamentos do .NET (este curso) é o pré-requisito para construir Web APIs com produtividade.
4. Mão na Massa#
4.1. Setup#
Você só precisa do .NET SDK instalado. Verifique:
dotnet --info
4.2. Implementação Passo a Passo#
- Crie um app de console mínimo:
dotnet new console -n Ola.Dotnet
cd Ola.Dotnet
- Veja o
Program.csgerado (top-level statements):
Console.WriteLine("Olá, .NET 9!");
- Compile e observe o IL sendo produzido dentro de
bin/:
dotnet build
4.3. Executando#
dotnet run
# Olá, .NET 9!
5. Exemplo Completo#
Um único arquivo Program.cs com Console.WriteLine(...) já exercita toda a cadeia: C# → IL → CLR/JIT → nativo. Console e WriteLine vêm da BCL.
6. Boas Práticas e Armadilhas#
| Faça | Evite |
|---|---|
| Usar a versão LTS/estável mais recente do SDK | Confundir ".NET Framework" (legado, só Windows) com ".NET" moderno |
Entender que .dll contém IL, não nativo | Achar que C# é interpretado linha a linha |
Atenção".NET Framework 4.x" é a plataforma antiga, exclusiva do Windows e em manutenção. Este curso usa o .NET moderno (
net9.0), multiplataforma.
7. Segurança e Produção#
- O runtime recebe correções de segurança periódicas; mantenha o SDK/runtime atualizados dentro da faixa suportada.
8. Exercícios#
- Fácil: rode
dotnet --versione identifique sua versão de SDK. - Médio: abra a pasta
bin/Debug/net9.0e localize o.dllgerado. - Desafio: explique com suas palavras a diferença entre JIT e compilação nativa (AOT).
9. Resumo#
.NET é uma plataforma multiplataforma: C# vira IL, o CLR compila via JIT para nativo e a BCL fornece as bibliotecas básicas. ASP.NET Core roda sobre essa base.
10. Próximos Passos#
A seguir: entender SDK, runtime e versionamento.
11. Referências#
- Microsoft Learn — O que é .NET
- Microsoft Learn — Gerenciamento automático de memória (GC)
- Microsoft Learn — Common Language Runtime (CLR)