Assembly One
Do zero ao RISC-V
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.
Edição Brasil
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.
var builder = WebApplication.CreateBuilder(args);var app = builder.Build();app.MapGet("/", () => "Hello World!");app.Run();
dotnet run --project Prefeitura.ApiNow listening on: http://localhost:5132curl -i http://localhost:5132/HTTP/1.1 200 OK
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
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.
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
C# One — Volume 1
Fundamentos de C# — C# do zero, antes de qualquer framework web.
Outros livros da série
Assembly One
Do zero ao RISC-V
C One
Do zero ao básico em sistemas embarcados e IoT
C# One — Volume 1
Fundamentos de C#
COBOL One
Mainframe para o Século XXI
Java One
Aprenda, evolua, sobreviva e se divirta
JavaScript One
Do primeiro console.log ao painel em produção
Mensageria One
Mensagens, eventos e processamento assíncrono
Receber a prévia
PHP One — Volume 1
Fundamentos do PHP
PHP One — Volume 2
Acelerando com Laravel
Python One
Do primeiro print à API REST em produção
Ruby One
Do primeiro puts ao contrato em produção
O que leitores dizem sobre C# One — Volume 2
Carregando avaliações deste livro…
Ver todas as avaliações deste livro →Este livro também entra em um combo
O combo reúne livros já publicados e sai num único pagamento.
Combo
Combo C#
C# One, volumes 1 e 2, num único pagamento.
- O combo
- R$ 10,19
- Separados
- R$ 11,98
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.