DevForge

C# .NET

Plataforma de desenvolvimento moderna, multiplataforma e de alto desempenho da Microsoft. Ideal para web APIs, microsserviços, desktop, jogos e muito mais.

🔷 .NET 8.0 (LTS) 🔶 .NET 9.0 ⚡ ASP.NET Core 📦 Entity Framework 🎮 Unity 🖥️ Maui/Xamarin

⚡ Instalação automatizada - .NET SDK

Linux / WSL (Ubuntu/Debian)
curl -fsSL https://rafaelferreira2312.github.io/devforge/scripts/csharp/install-dotnet.sh | bash -s 8.0
Windows PowerShell (Admin)
Set-ExecutionPolicy Bypass -Scope Process; iex "& { $(irm https://rafaelferreira2312.github.io/devforge/scripts/csharp/install-dotnet.ps1) } 8.0"
macOS (Homebrew)
curl -fsSL https://rafaelferreira2312.github.io/devforge/scripts/csharp/install-dotnet.sh | bash -s 8.0

Os scripts instalam o .NET SDK, runtime, ferramentas globais e configuram o PATH automaticamente.

Requisitos mínimos

  • CPU: 2+ núcleos (x86_64 ou ARM64)
  • RAM: 2 GB (recomendado 4 GB para projetos maiores)
  • Armazenamento: 5 GB SSD
  • SO: Ubuntu 20.04+, Debian 11+, RHEL 8+, Windows 10/11, macOS 11+

Hardware recomendado (Dev)

  • Notebook: Dell XPS, MacBook Pro M1/M2, Lenovo ThinkPad
  • CPU: i5 / Ryzen 5 ou superior
  • RAM: 8 GB (16 GB para projetos grandes)
  • SSD NVMe 256 GB+

🛠️ Stack recomendada

Ferramentas essenciais

  • IDE: Visual Studio 2022 / VS Code / Rider
  • Frameworks: ASP.NET Core, Entity Framework Core
  • Gerenciador de pacotes: NuGet
  • Testes: xUnit, NUnit, MSTest
  • Containers: Docker + .NET SDK

Extensões VSCode

  • C# Dev Kit (Microsoft)
  • C# Extensions
  • NuGet Gallery
  • .NET Core Test Explorer
  • SQL Server (mssql)

Docker (opcional)

docker run -it --rm mcr.microsoft.com/dotnet/sdk:8.0 dotnet --info

⚙️ Comandos dotnet CLI úteis

dotnet new console -n MeuApp – cria novo projeto console
dotnet new webapi -n MinhaAPI – cria API REST
dotnet build – compila o projeto
dotnet run – executa o projeto
dotnet add package Newtonsoft.Json – adiciona pacote NuGet
dotnet ef migrations add InitialCreate – cria migração EF Core
dotnet ef database update – aplica migrações
dotnet publish -c Release -o ./publish – publica o app

🔧 Ferramentas .NET globais

dotnet tool install --global dotnet-ef – Entity Framework Core tools
dotnet tool install --global swashbuckle.aspnetcore.cli – Swagger CLI
dotnet tool install --global dotnet-outdated – verifica pacotes desatualizados
dotnet tool install --global coverlet.console – cobertura de testes

🔧 Troubleshooting .NET

❌ Erro: "dotnet: command not found"

Causa: .NET SDK não instalado ou não está no PATH.
Solução: Verifique com which dotnet ou reinstale usando o script DevForge.

⚠️ Erro: "Unable to resolve project reference"

Causa: Problemas de restore do NuGet.
Solução: dotnet restore --force

🐘 Erro: "HTTP Error 500.30 - ANCM In-Process Start Failure"

Causa: Erro na inicialização da aplicação ASP.NET Core.
Solução: Verifique logs com dotnet run --launch-profile "Development"

Diagnóstico automático .NET:

dotnet --info && dotnet --list-sdks && dotnet --list-runtimes && echo "---" && which dotnet

Este comando verifica versão do .NET, SDKs instalados, runtimes e localização do binário dotnet.

⚠️ IMPORTANTE - Como executar os scripts corretamente

Os scripts abaixo funcionam em Windows, Linux e macOS. Siga as instruções específicas do seu sistema:

WINDOWS (PowerShell)
# ERRO COMUM: "arquivo não assinado" ou "execução de scripts desabilitada" # SOLUÇÃO 1: Executar com bypass (recomendado) powershell -ExecutionPolicy Bypass -File "C:\caminho\script.ps1" # SOLUÇÃO 2: Baixar e executar direto (pode ter erro de codificação) powershell -ExecutionPolicy Bypass -Command "iex (irm https://.../script.ps1)" # SOLUÇÃO 3: Habilitar execução permanentemente (como Administrador) Set-ExecutionPolicy RemoteSigned -Scope CurrentUser # Se houver erros de acentuação (caracteres estranhos): O script ainda funciona, apenas a saída visual pode ficar distorcida
LINUX / WSL (Bash)
# ERRO COMUM: "permission denied" ou "comando não encontrado" # SOLUÇÃO 1: Dar permissão de execução (obrigatório) chmod +x script.sh # SOLUÇÃO 2: Executar o script ./script.sh # SOLUÇÃO 3: Executar via curl (baixar e executar direto) curl -fsSL https://.../script.sh | bash # SOLUÇÃO 4: Se der erro de permissão, use sudo (cuidado!) sudo chmod +x script.sh && sudo ./script.sh # Se houver erros de permissão: Execute 'ls -la script.sh' para verificar permissões atuais
macOS (Terminal / Zsh)
# ERRO COMUM: "permission denied" ou "operation not permitted" # SOLUÇÃO 1: Dar permissão de execução chmod +x script.sh # SOLUÇÃO 2: Executar o script ./script.sh # SOLUÇÃO 3: Se der erro de "quarentena" (arquivo baixado da internet) xattr -d com.apple.quarantine script.sh # SOLUÇÃO 4: Executar via curl curl -fsSL https://.../script.sh | bash # Se erro persistir: Vá em Preferências do Sistema → Segurança e Privacidade → Permitir execução

Dicas importantes:
Windows: Se aparecerem caracteres estranhos (ex: "�" ou "ção"), ignore - o script funciona normalmente. Para evitar, baixe o script localmente e execute.
Linux/macOS: Sempre use chmod +x antes de executar scripts baixados.
WSL (Windows): Siga as instruções do Linux, mas certifique-se de que o script está dentro do sistema de arquivos do Linux (não no /mnt/c/).

📜 Scripts prontos

Scripts verificados no Ubuntu 22.04/24.04, Debian 12, macOS 13+ e Windows 10/11.

📝 Exemplo de código - Minimal API

var builder = WebApplication.CreateBuilder(args); var app = builder.Build(); app.MapGet("/", () => "Hello DevForge!"); app.MapGet("/health", () => new { Status = "Healthy", Timestamp = DateTime.UtcNow }); app.Run();

Execute com: dotnet run e acesse http://localhost:5000

❓ Perguntas frequentes - C# .NET

.NET Framework vs .NET Core vs .NET?

.NET Framework (Windows only, legado). .NET Core (multiplataforma, moderno). .NET 5+ (unificação, sucessor do .NET Core). Use .NET 8.0 LTS para novos projetos.

Como gerenciar múltiplas versões do .NET?

Use dotnet --list-sdks e dotnet new globaljson --sdk-version 8.0.100 para fixar versão por projeto.

Entity Framework vs Dapper: qual usar?

Entity Framework: ORM completo, ideal para projetos grandes com mudanças frequentes de schema. Dapper: micro-ORM leve, mais rápido para queries complexas.

Como publicar uma aplicação .NET?

Use dotnet publish -c Release -o ./publish. Para self-contained: dotnet publish --self-contained true -r linux-x64