Do Console ao Jogo Online: o Mapa da Jornada em C#

Do Console ao Jogo Online: o Mapa da Jornada em C#

O mapa do curso de C#: setenta e três aulas em onze fases, dos fundamentos e da orientação a objetos a bancos de dados, APIs, sites, desktop, celular e jogos, com C# 14 e .NET 10, uma Livraria que cresce a cada fase e um capstone que junta jogo, API, banco e site.
Linguagem C#

• • 10 min de leitura

Antes da primeira linha de código, um mapa: aonde vamos chegar, por qual caminho, e por que cada trecho vem na ordem em que vem.

Todo aprendizado longo precisa de um mapa. Este curso tem setenta e três aulas. Você vai começar imprimindo uma frase no terminal e terminar com um jogo que envia pontuações pela internet a uma API. Essa API grava as pontuações num banco de dados, e um site mostra o ranking ao vivo para qualquer pessoa no mundo. Tudo isso em uma única linguagem. Poucas linguagens permitem esse percurso sem trocar de ferramenta no meio do caminho, e C# é uma delas. É exatamente isso que vamos explorar.

Este artigo não ensina sintaxe. Ele é o guia que você vai reabrir sempre que se perguntar "onde estou e o que vem depois".

Por que C#, e por que agora

C# nasceu na Microsoft em 2000. Por muito tempo carregou a fama de linguagem "de Windows e de empresa grande". Essa fama envelheceu mal. Desde 2014 a plataforma .NET é de código aberto, e desde 2016, com o .NET Core, roda em Linux, macOS e Windows. Ela está entre as mais rápidas do mercado nos benchmarks de servidores web e recebe uma versão nova todo mês de novembro. Hoje o mesmo código C# roda em:

  • APIs que atendem milhões de requisições;
  • sites completos, com a interface escrita em C# no próprio navegador;
  • aplicativos de desktop e celular;
  • jogos, dentro de motores como Unity e Godot, em títulos jogados por centenas de milhões de pessoas.

Existe ainda um motivo pedagógico. C# ocupa um meio-termo raro. É tipada e compilada como C e C++, então o compilador pega muitos erros antes de o programa rodar. Mas tem gerenciamento automático de memória, uma biblioteca padrão enorme e ferramentas muito produtivas. Você vai entender o que acontece por baixo dos panos sem precisar escrever free à mão. E, quando quiser descer ao nível da máquina, a linguagem deixa: vamos até chamar código C direto do C#.

Usaremos C# 14 com o .NET 10, a versão de suporte longo mais recente. Sempre que um recurso depender de uma versão específica, eu aviso. Assim você não se surpreende ao encontrar código mais antigo por aí.

Como esta série pensa

Quatro princípios orientam cada aula.

Nada de saltos. Cada conceito só aparece depois que você tem a base para entendê-lo. Você não vai ver Entity Framework antes de escrever SQL à mão. Nem Blazor antes de entender como funciona uma requisição HTTP.

Código que roda. Todo artigo traz exemplos completos, que compilam e executam, com a saída esperada quando ela ajuda. Ao fim de cada aula há cinco exercícios em dificuldade crescente, cada um com a resposta comentada. Tente antes de conferir: é no exercício que o conteúdo fixa.

Honestidade sobre armadilhas. C# é uma linguagem amigável, mas não é mágica. Existem conversões que perdem dados em silêncio, números com vírgula que não somam o que você espera, código assíncrono que trava o programa e consultas que fazem mil idas ao banco quando uma bastaria. Vou apontar cada buraco no momento em que ele aparece no caminho. Também vou dizer quando um recurso não é a melhor escolha.

Um projeto que cresce com você. Em vez de exemplos soltos, um mesmo domínio atravessa o curso: uma Livraria. Ela nasce como algumas variáveis de preço e quantidade e depois vira um conjunto de classes. Depois ganha banco de dados, vira uma API e ganha um site. Chega ao celular e, no fim, vira o backend de um jogo. Quando chegar a hora de juntar tudo, você já vai conhecer cada peça.

As onze fases da jornada

Fase 1 — Fundamentos (aulas 01 a 08). Abrimos com a história da linguagem: quem a criou, por que e quem a usa. Depois instalamos o .NET, entendemos o que acontece entre o código-fonte e o programa rodando e aprendemos variáveis, tipos, operadores, decisões, repetições, métodos, coleções básicas e exceções. Ao fim desta fase você já escreve programas completos de linha de comando.

Fase 2 — Orientação a objetos (09 a 15). Classes, propriedades, herança, interfaces, a diferença crucial entre class, struct e record, pattern matching e a organização de um projeto em várias partes. A Livraria ganha seus primeiros tipos: Livro, Autor, Pedido.

Fase 3 — A linguagem em profundidade (16 a 23). Genéricos, delegates, lambdas e eventos. Depois o LINQ, talvez o recurso mais admirado do C#, e o sistema de tipos anuláveis, que praticamente elimina o erro mais comum da história da programação. Terminamos com reflexão, atributos e source generators, que são o jeito de um programa enxergar e gerar o próprio código.

Fase 4 — Runtime, assincronia e testes (24 a 31). Como o .NET gerencia a memória, o que o coletor de lixo faz e quanto ele custa. Span<T> e o código que não aloca nada. Arquivos e JSON. async/await do jeito certo. Threads e concorrência. Uma ponte com o mundo do C via P/Invoke. E testes automatizados, para não quebrar o que já funciona.

Fase 5 — Bancos de dados (32 a 42). A fase mais longa, porque banco de dados é o chão de quase todo sistema real. Começamos com SQL puro no SQLite, passamos por ADO.NET, Dapper e Entity Framework Core e chegamos aos três bancos que você vai encontrar no mercado: PostgreSQL, MySQL e MongoDB. Terminamos com a Livraria rodando em qualquer um deles, trocando apenas a configuração.

Fase 6 — API e backend (43 a 52). ASP.NET Core do pipeline ao deploy. Uma API REST completa com validação, documentação, autenticação por JWT e testes de integração. Depois as ferramentas de backend de verdade: cache com Redis, tempo real com SignalR, tarefas em segundo plano, mensageria com RabbitMQ, gRPC e observabilidade.

Fase 7 — Site web completo (53 a 59). Razor Pages para páginas renderizadas no servidor. Blazor para interfaces interativas escritas em C#. O site consome a API da fase anterior, tem login, área administrativa, upload de imagens e notificações ao vivo, e termina publicado num servidor Linux com Docker e nginx.

Fase 8 — Desktop e mobile (60 a 62). Um panorama honesto das opções de interface do .NET. Depois um aplicativo de desktop multiplataforma com Avalonia e um aplicativo de celular com .NET MAUI, os dois falando com a mesma API.

Fase 9 — Programação de jogos (63 a 69). O que torna um jogo diferente de qualquer outro programa: o game loop. Construímos um do zero com MonoGame e depois passamos ao Godot, um motor completo e gratuito. Input, física, colisões, áudio, interface e save game. Terminamos com um jogo 2D completo, exportado e pronto para distribuir.

Fase 10 — C# profissional (70 a 72). Arquitetura de aplicações maiores. C# conversando com modelos de IA. Medição de desempenho e distribuição de programas compilados direto para código nativo.

Fase 11 — O encerramento (73). O capstone: o jogo da Fase 9 envia pontuações para a API da Fase 6, que as grava no banco da Fase 5, e o site da Fase 7 mostra o ranking atualizado em tempo real. Depois, uma retrospectiva do caminho inteiro, fechando o círculo com este mapa.

Como estudar cada aula

Setenta e três aulas em um ano dão, em média, três aulas a cada duas semanas. É um ritmo confortável para quem estuda algumas horas por semana, mas o ritmo ideal é o que você sustenta sem pular os exercícios. Constância vale mais que velocidade.

Três hábitos fazem diferença. Primeiro, digite o código em vez de copiar e colar: os erros de digitação e as mensagens do compilador ensinam tanto quanto o texto. Segundo, quebre o código de propósito: troque um tipo, apague uma linha e veja o que o compilador diz. Terceiro, mantenha uma pasta por aula (aula-01, aula-02...), porque você vai querer rever exemplos antigos quando eles reaparecerem, e eles vão reaparecer.

Você não precisa instalar nada hoje. A instalação é o tema da aula "Do Código-Fonte ao Processo". Se quiser adiantar, basta ter um computador com Windows, macOS ou Linux e um editor de sua preferência.

Fontes e leituras recomendadas

  • Documentação oficial do C# (Microsoft Learn): https://learn.microsoft.com/dotnet/csharp/. É a referência da linguagem, com tutoriais e guias, e será citada em quase toda aula.
  • Joseph Albahari, C# 12 in a Nutshell (O'Reilly, 2023): a referência de bolso mais completa da linguagem e da biblioteca padrão, boa para consultar ao longo do ano inteiro.
  • Jon Skeet, C# in Depth, 4ª edição (Manning, 2019): mostra como e por que cada recurso da linguagem surgiu. É leitura ideal depois da Fase 3.
  • Blog oficial do .NET: https://devblogs.microsoft.com/dotnet/. É onde saem os anúncios de versões e as análises de desempenho de cada lançamento.
  • Repositório de design da linguagem: https://github.com/dotnet/csharplang. As propostas de novos recursos são discutidas em público, e dá para acompanhar a linguagem sendo desenhada.

Exercícios

Exercício 1

Crie a pasta onde você vai guardar o curso inteiro e, dentro dela, as subpastas das três primeiras aulas. Anote o caminho completo, porque ele será usado na aula de instalação.

Ver resposta

✓ Resposta: Não há resposta única. Uma estrutura como ~/cursos/csharp/aula-01, aula-02, aula-03 funciona bem. O importante é o caminho ter só letras, números e hífens, sem espaços e sem acentos. Espaços e acentos em caminhos ainda causam problemas pontuais em ferramentas de linha de comando, e é melhor não gastar energia com isso agora.

Exercício 2

Das onze fases do mapa, escolha a que mais te atrai e a que mais te intimida. Escreva uma frase sobre cada.

Ver resposta

✓ Resposta: É um exercício de reflexão, sem gabarito. É comum que "jogos" ou "site web" sejam as fases atraentes e "runtime e assincronia" seja a intimidante. Registrar isso agora ajuda a manter o foco quando a fase difícil chegar. E ela fica difícil de propósito, porque é o que sustenta as fases seguintes.

Exercício 3

Calcule quantas aulas por semana você precisa fazer para concluir o curso em 12 meses, em 9 meses e em 6 meses.

Ver resposta

✓ Resposta: São 74 peças contando esta, mas 73 aulas com conteúdo. Em 12 meses (52 semanas): 73 ÷ 52 ≈ 1,4 aula por semana, ou três a cada duas semanas. Em 9 meses (cerca de 39 semanas): 73 ÷ 39 ≈ 1,9, quase duas por semana. Em 6 meses (26 semanas): 73 ÷ 26 ≈ 2,8, quase três por semana. Escolha o ritmo que você sustenta sem pular os exercícios.

Exercício 4

O mapa diz que a Livraria "atravessa o curso". Liste três informações que um sistema de livraria precisa guardar sobre um livro e três ações que ele precisa permitir.

Ver resposta

✓ Resposta: Um exemplo razoável. Informações: título, preço e quantidade em estoque (também valeriam autor, ISBN, número de páginas). Ações: cadastrar um livro, vender (baixar o estoque) e buscar livros por título ou autor. Guarde esta lista: o preço vira uma variável daqui a três aulas, e o conjunto vira uma classe Livro na Fase 2.

Exercício 5

Pesquise e anote um produto, jogo ou empresa que você usa no dia a dia e que foi feito, ao menos em parte, com C#.

Ver resposta

✓ Resposta: Há muitas respostas possíveis. Jogos feitos em Unity (Hollow Knight, Cuphead, Among Us, Pokémon GO, Hearthstone) têm a lógica escrita em C#. O Stack Overflow roda em .NET. O buscador Bing também. A próxima aula, "Da Rivalidade com o Java ao Código Aberto", traz esses e outros exemplos, com a história de como a linguagem chegou até eles.

Comentários

Mais em Linguagem C#

Dapper: SQL Seu, Sem a Cerimônia
Dapper: SQL Seu, Sem a Cerimônia

Como o Dapper elimina a cerimônia do ADO.NET sem esconder o SQL: QueryAsync…

EF Core: Relacionamentos e Migrations
EF Core: Relacionamentos e Migrations

Autores e pedidos como entidades relacionadas no EF Core: um para muitos com…

O aplicativo do cliente em .NET MAUI: Shell, listas, login no celular e acompanhamento de pedidos
O aplicativo do cliente em .NET MAUI: Shell, listas, login no celular e acompanhamento de pedidos

O aplicativo do cliente para iPhone e Android em .NET MAUI: Shell com abas e…