Acesse o painel da sua conta

Não tem uma conta? Registrar

Entrar em contato

Visite também nosso site craftxp.com.br

  • img
  • img
  • img
  • img
  • img
  • img

Entre em contato

C# e .NET 8: Desenvolvimento Moderno Multiplataforma com a Microsoft

C# e .NET 8: Desenvolvimento Moderno Multiplataforma com a Microsoft

A Revolução do .NET

Se você ainda associa o .NET apenas ao Windows e aplicações empresariais lentas, prepare-se para uma surpresa. Desde o lançamento do .NET Core em 2016, a Microsoft reescreveu completamente a plataforma — código aberto, rodando em Linux, macOS e Windows, com performance que supera Node.js e Go em diversos benchmarks. O .NET 8, lançado em novembro de 2023, é a versão mais rápida e completa até hoje.

Empresas como Stack Overflow, JetBlue, Adobe e Intel utilizam .NET em produção para aplicações que processam bilhões de requisições por dia.

Primeiros Passos com C#

C# (C-Sharp) é a linguagem principal do ecossistema .NET. É uma linguagem moderna, tipada, com suporte a programação funcional, orientada a objetos e assíncrona nativa:

// Instalação do .NET SDK
# Linux (Ubuntu/Debian)
wget https://dot.net/v1/dotnet-install.sh
chmod +x dotnet-install.sh
./dotnet-install.sh --channel 8.0

# macOS
brew install dotnet-sdk

# Verificar instalação
dotnet --version  # 8.0.x

# Criar um novo projeto
dotnet new console -n MeuApp
cd MeuApp
dotnet run

Vamos escrever nosso primeiro programa em C# moderno:

using System.Text.Json;

// Top-level statements (C# 9+)
var nome = "Mundo";
Console.WriteLine($"Olá, {nome}!");

// Record: tipo imutável com value equality
public record Pessoa(string Nome, int Idade);

var pessoa = new Pessoa("Leonardo", 28);
var json = JsonSerializer.Serialize(pessoa);
Console.WriteLine(json);
// Saída: {"Nome":"Leonardo","Idade":28}

// Pattern matching moderno (switch expression)
var classificacao = pessoa.Idade switch
{
    < 12 => "Criança",
    < 18 => "Adolescente",
    < 60 => "Adulto",
    _ => "Idoso"
};

ASP.NET Core: APIs Poderosas

O ASP.NET Core é um dos frameworks web mais rápidos do mundo, superando Express.js e FastAPI em benchmarks de throughput:

// Minimal APIs — novo estilo conciso (C# 12)
var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();

// Endpoints tipados com resultados automáticos
app.MapGet("/api/usuarios", async (AppDbContext db) =>
    await db.Usuarios.ToListAsync()
);

app.MapPost("/api/usuarios", async (Usuario user, AppDbContext db) =>
{
    db.Usuarios.Add(user);
    await db.SaveChangesAsync();
    return Results.Created($"/api/usuarios/{user.Id}", user);
});

app.Run();

// Ou com Controller tradicional
[ApiController]
[Route("api/[controller]")]
public class ProdutosController : ControllerBase
{
    [HttpGet]
    public async Task<ActionResult<List<Produto>>> GetAll()
        => await _context.Produtos.ToListAsync();

    [HttpGet("{id}")]
    public async Task<ActionResult<Produto>> GetById(int id)
    {
        var produto = await _context.Produtos.FindAsync(id);
        return produto is null ? NotFound() : Ok(produto);
    }
}

Entity Framework Core: ORM Moderno

O Entity Framework Core (EF Core) é o ORM oficial do .NET, suportando PostgreSQL, SQL Server, MySQL, SQLite e muitos outros bancos:

// 1. Modelo
public class Produto
{
    public int Id { get; set; }
    public string Nome { get; set; } = string.Empty;
    public decimal Preco { get; set; }
    public int CategoriaId { get; set; }
    public Categoria Categoria { get; set; } = null!;
}

// 2. DbContext
public class AppDbContext : DbContext
{
    public DbSet<Produto> Produtos => Set<Produto>();
    public DbSet<Categoria> Categorias => Set<Categoria>();

    protected override void OnConfiguring(DbContextOptionsBuilder opt)
        => opt.UseNpgsql("Host=localhost;Database=meudb");
}

// 3. Migrations (CLI)
// dotnet ef migrations add Inicial
// dotnet ef database update

// 4. Queries com LINQ
using var db = new AppDbContext();
var caros = await db.Produtos
    .Where(p => p.Preco > 100)
    .OrderByDescending(p => p.Preco)
    .Include(p => p.Categoria)
    .Select(p => new { p.Nome, p.Preco, Cat = p.Categoria.Nome })
    .ToListAsync();

O LINQ (Language Integrated Query) é um dos diferenciais mais poderosos do C# — consultas fortemente tipadas com Intellisense completo, compilação em tempo de compilação e sintaxe fluente que se assemelha a SQL.

Blazor: Web sem JavaScript

O Blazor permite construir interfaces web interativas usando C# puro, sem JavaScript:

<!-- Componente Blazor (.razor) -->
@page "/contador"
<h3>Contador: @count</h3>
<button @onclick="Incrementar">+1</button>

@code {
    private int count = 0;

    private void Incrementar()
    {
        count++;
    }
}

O Blazor funciona de duas formas: Blazor Server (a UI roda no servidor, atualiza via SignalR) e Blazor WebAssembly (o runtime .NET roda no navegador via WebAssembly).

Performance e Boas Práticas

O .NET 8 trouxe várias otimizações de performance:

  • Native AOT: Compilação ahead-of-time para binários nativos sem JIT, com inicialização em milissegundos e menor consumo de memória
  • Garbage Collection melhorado: GC com regiões e suporte a dynamic adaptation para reduzir pausas
  • System.Text.Json: Serialização JSON nativa 2x mais rápida que Newtonsoft.Json
  • gRPC: Suporte nativo a gRPC para microsserviços de alta performance
  • Middleware pipeline: Pipeline HTTP altamente otimizado para baixa latência

Ferramentas do Ecossistema

FerramentaFinalidade
Visual StudioIDE completa para Windows
VS Code + C# Dev KitEditor leve e multiplataforma
RiderIDE cross-platform da JetBrains
NuGetGerenciador de pacotes oficial
xUnit / NUnitFrameworks de teste unitário
SerilogLogging estruturado moderno

Conclusão

O ecossistema .NET com C# não é mais o mesmo de 10 anos atrás. Com código aberto, performance de ponta, suporte multiplataforma e uma das melhores experiências de desenvolvimento do mercado (Intellisense, debugar, refatorar), o .NET 8 é uma escolha sólida para qualquer tipo de aplicação — seja uma API REST, um microsserviço, uma aplicação desktop ou um site interativo com Blazor.

Se você já conhece Java, TypeScript ou Python, a curva de aprendizado do C# moderno é surpreendentemente suave. A documentação oficial em learn.microsoft.com/dotnet e a comunidade no dot.net são excelentes pontos de partida.

Craft XP
Craft XP