💻 Exemplos: Capítulo 01: Ecossistema .NET 8, CLR, CLI dotnet e Estrutura Sequencial
💻 Exemplos: Capítulo 01: Ecossistema .NET 8, CLR, CLI dotnet e Estrutura Sequencial
Especialização em Sistemas com C# • Demonstrações Práticas Compiláveis
🎯 Objetivo dos Exemplos
Apresentar a inicialização e o fluxo de execução sequencial no ecossistema moderno do .NET 8 / C# 12: utilização de instruções de nível superior (Top-Level Statements), inspeção de metadados do processo hospedeiro via System.Environment e System.Diagnostics, ciclo de vida da CLR (Common Language Runtime) e geração de saída formatada de alto desempenho.
1. Código Fonte Completo (Program.cs)
/**
* @file Program.cs
* @brief Inicialização de runtime corporativo em .NET 8 moderno com Top-Level Statements.
*/
using System;
using System.Diagnostics;
using System.Runtime.InteropServices;
Console.WriteLine("=== RUNTIME .NET 8 / C# 12 INICIALIZADO ===");
// 1. Diagnóstico do Ambiente de Execução e CLR
string versaoDotNet = Environment.Version.ToString();
string arquitetura = RuntimeInformation.ProcessArchitecture.ToString();
string sistemaOperacional = RuntimeInformation.OSDescription;
int nucleosCpu = Environment.ProcessorCount;
Console.WriteLine($"Versao CLR: {versaoDotNet}");
Console.WriteLine($"Plataforma: {sistemaOperacional} ({arquitetura})");
Console.WriteLine($"Nucleos Logicos de CPU Disponiveis: {nucleosCpu}");
// 2. Metadados do Processo Hospedeiro
Process processoAtual = Process.GetCurrentProcess();
long memoriaTrabalhoMb = processoAtual.WorkingSet64 / (1024 * 1024);
int processId = Environment.ProcessId;
Console.WriteLine($"PID do Processo: {processId} | Memoria Alocada: {memoriaTrabalhoMb} MB");
// 3. Estrutura Sequencial com Registro de Telemetria
string modulo = "KernelTelemetryEngine";
DateTime timestamp = DateTime.UtcNow;
Console.WriteLine($"\n[INFO] {timestamp:yyyy-MM-ddTHH:mm:ssZ} - Modulo '{modulo}' carregado com sucesso.");
// 4. Medição de Precisão de Inicialização de Subsistema
long ticksInicio = Stopwatch.GetTimestamp();
// Simulação de aquisição e calibração de dispositivo
for (int i = 0; i < 50_000; i++)
{
_ = Math.Sqrt(i);
}
TimeSpan tempoDecorrido = Stopwatch.GetElapsedTime(ticksInicio);
Console.WriteLine($"[DIAGNOSTICO] Tempo de calibracao da CPU: {tempoDecorrido.TotalMicroseconds:F2} microssegundos.");
Console.WriteLine("==================================================");
Console.WriteLine("Pipeline de execucao sequencial finalizado com sucesso.");
2. Instruções de Compilação e Execução
Para compilar e executar o exemplo utilizando o .NET CLI oficial:
# 1. Criar novo projeto console com .NET 8
dotnet new console -n AppInicializacao -f net8.0
cd AppInicializacao
# 2. Substituir o conteúdo de Program.cs e executar
dotnet run
# 3. Compilação Otimizada de Produção (Release)
dotnet build -c Release
dotnet run -c Release --no-build
3. Saída Esperada no Terminal
=== RUNTIME .NET 8 / C# 12 INICIALIZADO ===
Versao CLR: 8.0.0
Plataforma: Microsoft Windows 10.0.22631 (X64)
Nucleos Logicos de CPU Disponiveis: 16
PID do Processo: 24892 | Memoria Alocada: 28 MB
[INFO] 2026-09-28T05:00:00Z - Modulo 'KernelTelemetryEngine' carregado com sucesso.
[DIAGNOSTICO] Tempo de calibracao da CPU: 182.40 microssegundos.
==================================================
Pipeline de execucao sequencial finalizado com sucesso.