Série Programming One Volume 2 Kindle

C# One

.NET de verdade

A plataforma da Prefeitura de Nova Esperança, da primeira requisição HTTP ao lançamento de 1º de junho: ASP.NET Core, injeção de dependência, configuração, logs, EF Core com PostgreSQL, migrations, DTOs, validação, async, erros padronizados, autenticação, testes, arquitetura, Docker e CI. O segundo volume de C# One.

R$ 5,99 R$ 24,00 Promoção

Atenção: o idioma desta edição é português.

30capítulos
6partes
1projeto do início ao fim
Capa de C# One — Volume 2: .NET de verdade, de Thiago Nogueira Edição Brasil
C#.NET 10ASP.NET CoreEF CorePostgreSQLxUnitDockerAPI REST
código do livro

Menos teoria vazia.
Mais código que funciona.

Nada de exemplo solto com foo e bar. Todo trecho pertence ao mesmo projeto, que cresce capítulo a capítulo — e os erros aparecem como aparecem na sua tela, para serem lidos linha por linha.

Program.cs
var builder = WebApplication.CreateBuilder(args);var app = builder.Build();app.MapGet("/", () => "Hello World!");app.Run();
terminal
dotnet run --project Prefeitura.ApiNow listening on: http://localhost:5132curl -i http://localhost:5132/HTTP/1.1 200 OK
o projeto

Um sistema só, do primeiro arquivo ao deploy

README.md

Continua o domínio do volume 1. Agora ele vira uma API ASP.NET Core com EF Core e PostgreSQL, autenticação, testes, Docker e CI, até o lançamento no aniversário da cidade.

Da primeira requisição HTTP ao lançamento de 1º de junho.

  • A mesma prefeitura, agora com API, banco e usuários de verdade
  • EF Core sobre o SQL que você aprende a escrever à mão
  • Erros padronizados, autenticação, testes e logs que contam o que houve
  • Docker e CI sem virar livro de infraestrutura
leitura de amostra

Leia uma prévia gratuita de C# One — Volume 2

Esta amostra contém os primeiros capítulos. O PDF completo continua protegido para compradores.

Abrir prévia em nova aba →
sumário

30 capítulos em 6 partes

Abra uma parte para ver os capítulos — e a frase que abre cada um.

parte 01 O sistema precisa conversarHTTP, a primeira API e as peças do .NET que o projeto vinha adiando: injeção de dependência, configuração e log. 5 cap.
  1. 01
    O sistema precisa conversarA agência do aplicativo pediu "os endpoints REST, em JSON". O Marcos perguntou o que era um endpoint. O Paulo respondeu sem saber que estava respondendo.
  2. 02
    A primeira APIQuatro linhas de Program.cs, um servidor rodando no notebook, e a agência perguntando o que queria dizer situação zero.
  3. 03
    Injeção de dependênciaDois cidadãos, dois pedidos, o mesmo protocolo: NE-2027-000001. O Numerador estava certo; havia um novo a cada pedido.
  4. 04
    Configuração"Eu não edito código", disse o Wagner. "Eu edito configuração." E o caminho do CSV estava escrito no Program.cs.
  5. 05
    Logs"Às vezes o protocolo dá erro." Quando? Com qual solicitação? Para quem? O servidor sabia de tudo, e não contou para ninguém.
parte 02 E quando o programa fechar?SQL à mão, depois Entity Framework Core: entidades, relacionamentos, migrations e consultas que viram SQL. 5 cap.
  1. 06
    SQL do zero"E quando o programa fechar?" O Paulo perguntou na primeira reunião de fevereiro. Na terceira semana, o Wagner reiniciou o servidor.
  2. 07
    Entity Framework CoreO banco tinha a tabela secretarias. O EF Core procurou Secretarias, com S maiúsculo, e o PostgreSQL disse que ela não existia.
  3. 08
    Entidades e relacionamentosO Bruno pediu ao EF Core a tabela de solicitações. O EF Core respondeu falando de atendimentos, protocolos, cidadãos e servidores, um de cada vez.
  4. 09
    MigrationsNa segunda-feira, o banco da Carla tinha uma tabela chamada servidor, e o do Bruno uma chamada servidores. Os dois tinham sido criados pelo mesmo código, em dias diferentes.
  5. 10
    Consultando o bancoO aplicativo mostrava ao cidadão as cinquenta primeiras solicitações do CSV, todas de janeiro de 2026. A Helena queria as de Obras, abertas, das mais novas para as mais velhas, e a página dois.
parte 03 A API de verdadeCRUD, DTOs, validação e códigos de status que dizem o que aconteceu. 4 cap.
  1. 11
    CRUDO primeiro pedido criado pelo aplicativo tentou ser a solicitação número 1. A número 1 já existia: um aterro na Vila Nova, de janeiro de 2026.
  2. 12
    DTOsA documentação dos endpoints era para 1º de março. No dia 10, a agência perguntou se o campo solicitante.cpf ia continuar vindo, porque a tela de perfil já usava.
  3. 13
    ValidaçãoNo fim de semana, o formulário do site cadastrou um cidadão chamado "a", um CPF com pontos e um e-mail sem arroba. A API aceitou os três com a mesma educação.
  4. 14
    Status codesPara todo 500, o aplicativo mostrava "Erro inesperado. Tente mais tarde". Um cidadão de Santa Luzia tentou mais tarde dezessete vezes, e o protocolo dele já existia desde a primeira.
parte 04 Esperar, falhar, protegerAsync sem superstição, erros técnicos e erros de negócio, e quem pode fazer o quê. 6 cap.
  1. 15
    O sistema ficou lentoCom os vinte e dois anos do SIP no banco, a planilha da Helena passou a demorar. O Bruno propôs um Redis. O André pediu um cronômetro.
  2. 16
    Async até onde?O Bruno leu que async deixa a API mais rápida e converteu o protocolo inteiro. O protocolo continuou levando quase cinco segundos. O Marcos quis saber para que tinha servido.
  3. 17
    O dia em que tudo quebrouEra a terceira quinta-feira do mês. O Wagner reiniciou o banco de homologação às 9h40, no meio da demonstração da Helena para o secretariado. O monitor dele ficou verde o tempo todo.
  4. 18
    Erros de negócioO testador da agência recebeu dois e-mails para o mesmo pedido, com dois números de protocolo diferentes. O banco conhecia só um deles.
  5. 19
    Quem pode apagar?Na sexta à noite, alguém chamou o DELETE do Bruno trinta e sete vezes. O log dizia que era o aplicativo da agência. A agência dizia que não. Os dois podiam estar certos.
  6. 20
    JWT e papéisO sistema do balcão tinha uma chave de API, e o atendimento registrava como responsável a matrícula que vinha no corpo do pedido. Qualquer atendente podia encaminhar em nome de qualquer outro.
parte 05 Provar que funcionaTestes de unidade, mocks na medida, testes da API inteira, e a arquitetura que aparece quando o código cresce. 5 cap.
  1. 21
    Funciona. Como você sabe?O Bruno testou a mudança da 2ª via e ela funcionou. No dia seguinte, um cidadão desistiu de um pedido em análise, e o Paulo não conseguiu cancelar.
  2. 22
    MocksO teste do prazo passou às três da tarde na máquina do Bruno. Às nove e dezessete da noite, na casa da Carla, falhou. Às oito da manhã seguinte, passou de novo.
  3. 23
    Testando a APIO Bruno renomeou EmAnalise para EmAvaliacao com a ferramenta da IDE, e os dezesseis testes passaram. Na manhã seguinte, o aplicativo da agência quebrou, e duas mil solicitações de homologação pararam de abrir.
  4. 24
    O projeto virou grandeO Program.cs tinha 385 linhas e três conflitos de merge na semana. O Bruno trouxe um modelo de projeto com sete camadas e trezentas estrelas no GitHub. Faltavam duas semanas.
  5. 25
    SOLID e refatoraçãoA licitação do SMS, que em janeiro ia levar uns dois meses, terminou em maio. O Bruno pôs o envio dentro do Balcao em vinte minutos. O André fez a mesma pergunta que tinha feito em janeiro.
parte 06 O grande diaAmbientes, segredos, Docker, CI, a apresentação na prefeitura cheia e o último bug. 5 cap.
  1. 26
    Ambientes e segredosO commit se chamava "config produção". Tinha a senha do banco que o Wagner tinha ditado pelo telefone, a chave de produção do SMS e a chave que assina os tokens. O repositório era lido pela agência desde março.
  2. 27
    DockerO Wagner pediu uma imagem, e o Bruno escolheu a menor que achou: 133 MB, sem nem um terminal dentro. A lista de solicitações funcionou. O protocolo, não.
  3. 28
    CIA primeira execução do pipeline falhou em cinco dos vinte e três testes. Na máquina de todos da equipe, os vinte e três passavam. A máquina do pipeline era a única que não tinha os segredos de ninguém.
  4. 29
    A apresentaçãoÀs 10h12, no palco, o prefeito leu em voz alta o primeiro comprovante da plataforma. Estava errado por um dia. Na plateia, só uma pessoa percebeu.
  5. 30
    EntregaO último item do termo do convênio pedia um plano de recuperação testado. O plano existia. O teste foi marcado para as duas da tarde do último dia.
comece pelo

C# One — Volume 1

Fundamentos de C# — C# do zero, antes de qualquer framework web.

Ver volume 1 →
avaliações verificadas

O que leitores dizem sobre C# One — Volume 2

Carregando avaliações deste livro…

Ver todas as avaliações deste livro →
combo

Este livro também entra em um combo

O combo reúne livros já publicados e sai num único pagamento.

git commit -m "primeiro capítulo"

C# One

Da primeira requisição HTTP ao lançamento de 1º de junho. O projeto começa a rodar no primeiro capítulo — e não para mais.

Atenção: o idioma desta edição é português.