
Baixe aqui o ebook de apoio.
Aprenda a instalar o Visual Studio e conheça as diferenças entre VS Code e JetBrains Rider. Saiba qual escolher para desenvolver aplicações modernas em C# e .NET.
Aprenda a instalar o Docker Desktop e entenda o básico sobre containers e Docker para preparar o ambiente local do curso.
Aprenda a subir e acessar um banco de dados usando Docker. Veja como containers facilitam a configuração do ambiente local para desenvolvimento com APIs em .NET.
Entenda o que são Docker Volumes e como funcionam na persistência de dados. Conceitos fundamentais para trabalhar com containers e banco de dados no ambiente local.
Entenda o que é uma API, como funciona a comunicação entre sistemas e por que APIs são essenciais no desenvolvimento de aplicações web.
Crie um projeto de API em .NET e configure o Swagger para documentação e testes dos endpoints. Base essencial para iniciar o desenvolvimento de APIs modernas em C#.
Conheça o papel de cada pasta e arquivo em um projeto de API .NET. Entenda Program, configurações, dependências e a organização base do projeto.
Nesta aula, mergulharemos no conceito de Domain-Driven Design (DDD). Exploraremos como o DDD oferece uma abordagem estratégica para o desenvolvimento de software, focando na modelagem complexa de domínios de negócio e na criação de soluções software que refletem essas complexidades. Discutiremos os principais pilares do DDD, incluindo a importância da linguagem ubíqua, melhorando a comunicação entre equipes técnicas e stakeholders e desenvolvendo software mais alinhado às necessidades do negócio.
Nesta aula, exploraremos a aplicação do Domain-Driven Design (DDD) de forma conceitual. Sem entrar em detalhes práticos, vamos discutir como o DDD orienta a estruturação de modelos de domínio e a importância de alinhar o software à complexidade dos negócios. Abordaremos como entidades, objetos de valor e agregados capturam conceitos do domínio, e a relevância de separar a lógica do domínio da infraestrutura. Ao analisar projetos exemplo, destacaremos a implementação de padrões como repositórios e serviços de domínio, além da arquitetura em camadas.
Nesta aula, vamos identificar os desafios comuns enfrentados ao aplicar o Domain-Driven Design (DDD) em projetos .NET e propor soluções baseadas nesta mesma abordagem. Apresentarei estratégias para superar esses desafios que facilitam a aderência ao DDD.
Nesta aula eu crio junto com você no Visual Studio os projetos que compõem uma arquitetura DDD em .NET. Organize Domain, Application, Infrastructure e API seguindo boas práticas profissionais.
Entenda por que o projeto cross-cutting não é necessário em DDD no .NET. Veja como manter uma arquitetura .NET mais simples e organizada.
Aprenda a criar sua conta no Azure DevOps e preparar o ambiente para controle de código, gestão de tarefas, repositórios Git e pipelines no desenvolvimento .NET.
Configure o Azure DevOps com a estrutura inicial para gerenciar código e desenvolvimento.
Crie um projeto no Azure DevOps, conecte seu repositório Git e faça o primeiro commit do projeto .NET, iniciando o versionamento do código.
Aprenda como realizar uma Sprint Planning no Azure DevOps, criando tarefas, User Stories e planejando a primeira sprint do projeto seguindo práticas de Scrum.
Aprenda a gerenciar tarefas dentro da Sprint no Azure DevOps e adicionar estimativas de esforço. Veja como organizar o trabalho do time e acompanhar o progresso das atividades no projeto.
Implemente o endpoint POST para registrar novos usuários na API .NET. Veja como receber os dados da requisição e iniciar a lógica de criação de conta.
Aprenda como funcionam propriedades com get e set em C# e veja dicas úteis no Visual Studio para escrever código mais rápido e produtivo no desenvolvimento .NET.
Entenda o que são Pull Requests e como eles ajudam na revisão de código, colaboração entre desenvolvedores e controle de mudanças no código.
Aprenda a configurar políticas de proteção de branch no Azure DevOps para garantir revisões de código, qualidade nas entregas e mais segurança no fluxo de desenvolvimento.
Comece a implementar a regra de negócio para cadastro de pessoas e entenda o Princípio da Responsabilidade Única (Single Responsibility Principle — SRP) do SOLID.
Aprenda a usar FluentValidation para validar dados na aplicação .NET. Implemente regras de validação claras e organizadas para garantir consistência nas requisições da API.
Aprenda o que são Resource Files no .NET e como usá-los para centralizar mensagens e textos da aplicação, facilitando manutenção e suporte a múltiplos idiomas.
Aprenda a aplicar localização na API .NET usando a cultura enviada na request, permitindo retornar mensagens e textos no idioma correto para cada usuário.
Aprenda a criar exceptions customizadas na API .NET e entenda por que essa abordagem pode melhorar a organização dos erros, mesmo com algumas desvantagens.
Aprenda a criar e usar um Exception Filter na API .NET para centralizar o tratamento de erros e padronizar as respostas retornadas pelos endpoints.
Entenda o que é uma entidade no DDD e crie a entidade User no domínio. Além disso vamos aprender sobre as propriedades que representam o usuário na aplicação .NET.
Entenda o uso de IDs na API e as diferenças entre GUID v4 e v7. Veja quando usar cada um e boas práticas para geração e performance no .NET.
Entenda as diferenças, vantagens e desvantagens entre domínio anêmico e domínio rico no DDD.
Aprenda a mapear a request para a entidade User e compare AutoMapper vs Mapster. Veja diferenças, vantagens e como aplicar mapeamento no .NET.
Entenda os conceitos essenciais de segurança, incluindo criptografia, hash, proteção de dados e boas práticas para aplicações .NET e APIs modernas.
Implemente o hash com Argon2id e entenda parâmetros como memória, iterações e paralelismo. Veja como ajustar segurança e performance no .NET.
Aprenda como validar senhas usando Argon2id no .NET. Compare hashes com segurança e entenda o processo de verificação de credenciais na autenticação de usuários.
Aprenda a configurar injeção de dependência no .NET, registrando serviços para organizar melhor o código da API.
Aprenda o que são métodos de extensão em C# e como usá-los para deixar o código .NET mais limpo, organizado e reutilizável em diferentes partes da aplicação.
Aprenda a configurar URLs em minúsculas e tratar strings da request, removendo espaços em branco extras para padronizar e melhorar os dados recebidos pela API.
Entenda o Entity Framework Core, crie o DbContext e veja diferenças para o Dapper. Uma introdução prática sobre acesso a dados em aplicações .NET.
Crie o repositório de usuários e entenda o princípio Interface Segregation do SOLID, aplicando boas práticas para manter o código desacoplado e organizado no .NET.
Configure o Entity Framework e os repositórios na injeção de dependência, organizando o acesso a dados da aplicação .NET com mais desacoplamento e manutenção.
Aprenda a recuperar a connection string do appsettings e testar o fluxo de cadastro de usuários, validando a integração da API .NET com o banco de dados.
Entenda o padrão Unit of Work e aprenda como implementar no .NET para controlar transações e garantir consistência nas operações com banco de dados.
Retorne os dados do usuário registrado e melhore a documentação com Swagger. Deixe sua API .NET mais clara, testável e profissional para quem consome os endpoints.
Implemente a validação de e-mail duplicado no cadastro de usuários, garantindo unicidade e evitando registros duplicados na API .NET.
Entenda o que são migrations e como usá-las no Entity Framework Core para versionar o banco de dados e evoluir a estrutura da aplicação .NET.
Aprenda a criar as migrations com FluentMigrator no .NET, versionando o banco de dados e controlando mudanças de forma organizada e segura.
Aprenda a executar migrations automaticamente ao iniciar a API .NET, garantindo que o banco de dados esteja sempre atualizado com a estrutura da aplicação.
Entenda testes de unidade no .NET, seus benefícios e quais tipos de testes serão aplicados no projeto para garantir qualidade e confiabilidade do código.
Crie seu primeiro teste de unidade no .NET e entenda o padrão AAA (Arrange, Act, Assert) para estruturar testes claros, organizados e fáceis de manter.
Aprenda a gerar dados fake com Bogus para testes em .NET, criando objetos mais realistas e facilitando a escrita de testes automatizados.
Aprenda a melhorar seus asserts com Shouldly e conheça o FluentAssertions para escrever testes mais claros, expressivos e fáceis de manter no .NET.
Aprenda a testar os cenários de erro do validator de cadastro de usuário, garantindo que as validações bloqueiem dados inválidos no registro da conta.
Inicie os testes do use case de registro de usuário, validando fluxo, dependências e regras de negócio na aplicação .NET com testes de unidade.
Aprenda a usar Moq no .NET para criar mocks e simular dependências, facilitando a escrita de testes de unidade isolados e confiáveis.
Finalizando o teste de sucesso do use case de registro de usuário, validando o fluxo completo e garantindo que a criação da conta funciona corretamente.
Crie testes de unidade para cenários onde o use case lança exceções, validando erros e garantindo comportamento correto no registro de usuário na API.
Entenda o que são testes de integração no .NET e como validar o funcionamento conjunto da API, banco de dados e dependências externas.
Entenda o WebApplicationFactory e como os testes são executados de forma paralela e sequencial no .NET.
Aprenda como fazer assertions em testes de integração no .NET, validando status code, corpo da resposta e comportamento esperado da API.
Aprenda como executar testes de integração no .NET, analisando resultados e garantindo que a API funcione corretamente em cenários reais.
Aprenda a verificar se a mensagem retornada pela API está no idioma solicitado na request, validando a cultura e o conteúdo nos testes de integração.
Aprenda o conceito de Theory no xUnit e como criar testes parametrizados no .NET para cobrir múltiplos cenários com menos código e mais organização.
Aprenda o que é Testcontainers e como configurar no .NET para subir containers em testes de integração, garantindo ambientes isolados e consistentes.
Aprenda a obter a connection string do Testcontainers e configurar no IConfiguration, permitindo que a API use o banco do container nos testes de integração.
Execute testes de integração usando Testcontainers no .NET, validando a API com banco em container e garantindo um ambiente isolado e confiável.
Melhore os asserts dos testes de integração e use InternalsVisibleTo para acessar membros internos, aumentando a cobertura e qualidade dos testes no .NET.
Entenda o que são pipelines e CI/CD, e como automatizar build, testes e deploy no Azure DevOps para projetos .NET.
Aprenda a criar um pipeline de CI no Azure DevOps para build e testes automatizados, garantindo qualidade e integração contínua em projetos .NET.
Aprenda a organizar pipelines no Azure DevOps, estruturando builds, testes e etapas para manter o fluxo CI/CD mais limpo, escalável e fácil de manter no .NET.
Aprenda a publicar a cobertura de testes no pipeline do Azure DevOps, analisando métricas e garantindo qualidade no código da aplicação .NET.
Entenda como funciona a métrica de code coverage e aprenda a excluir arquivos que não devem entrar na cobertura para gerar indicadores mais relevantes.
Aprenda como conduzir uma retrospectiva usando Azure DevOps, analisando resultados da sprint e identificando melhorias no processo de desenvolvimento.
Continuação do fluxo do usuário no projeto usando Azure DevOps e práticas de Scrum.
Implemente a função de login no repositório e entenda AsNoTracking e Single vs First no EF Core, escolhendo a melhor abordagem para consultas e performance.
Implemente a regra de negócio de login e crie o endpoint na API .NET, estruturando o fluxo de autenticação do usuário.
Entenda os princípios Open/Closed e Liskov Substitution do SOLID aplicados ao Exception Filter, melhorando extensibilidade e consistência no tratamento de erros.
Crie testes de unidade para o use case de login, validando credenciais, regras de negócio e cenários de sucesso e erro na aplicação.
Implemente testes de integração para os cenários de erro do login, validando respostas da API e tratamento de credenciais inválidas no .NET.
Crie o teste de integração do login com sucesso, iniciando o banco com um usuário seed e validando o fluxo real de autenticação na API .NET.
Refatore os testes de integração no .NET, removendo código duplicado e criando uma estrutura mais limpa, reutilizável e fácil de manter.
Entenda o que é um Access Token, como ele funciona na autenticação de APIs e seu papel na identificação e autorização de usuários em aplicações modernas.
Aprenda o que é JWT, como funciona sua estrutura e como ele é utilizado para transportar informações de forma segura na autenticação de APIs .NET.
Aprenda a gerar JWT na API .NET, configurando claims, chave de assinatura e informações necessárias para autenticação e autorização de usuários.
Implemente o retorno do Access Token nos fluxos de cadastro e login, concluindo a autenticação do usuário na API .NET.
Corrija os testes impactados pela implementação do Access Token e melhore a organização da injeção de dependência seguindo boas práticas no .NET.
Comece a implementar a validação do Access Token nas requisições da API .NET, entendendo como verificar autenticidade e proteger endpoints.
Aprenda a validar se o usuário associado ao Access Token existe e está ativo na base de dados, aumentando a segurança das requisições autenticadas.
Aprenda a personalizar as respostas retornadas durante a validação do Access Token, fornecendo mensagens mais claras para tokens inválidos, expirados ou ausentes.
Aprenda a configurar o Swagger para enviar o Access Token nas requisições, facilitando os testes de endpoints protegidos por autenticação JWT.
Crie uma classe para recuperar o usuário autenticado da requisição, facilitando o acesso às informações da pessoa logada em qualquer parte da aplicação.
Implemente o fluxo completo para recuperar as informações de perfil do usuário autenticado, passando por endpoint, regra de negócio e acesso aos dados.
Crie testes de unidade e integração para o fluxo de recuperação do perfil do usuário, validando regras de negócio, autenticação e respostas da API.
Implemente a regra de negócio para alteração de senha e crie um validator compartilhado com FluentValidation para reutilizar validações na aplicação .NET.
Implemente a regra de negócio para atualização do perfil do usuário, aplicando validações e garantindo a consistência dos dados.
Entenda como funcionam atualizações no Entity Framework Core e implemente o repositório responsável por persistir as alterações do perfil do usuário.
Entenda as diferenças entre PUT e PATCH, quando usar cada método HTTP e como projetar endpoints de atualização seguindo boas práticas para APIs REST em .NET.
Crie testes de unidade e integração para os fluxos de atualização de perfil e senha, validando regras de negócio, autenticação e respostas da API .NET.
Planeje a terceira sprint, organize as tarefas do fluxo de receitas e veja como utilizar o Claude Code para aumentar a produtividade durante o desenvolvimento.
Aprenda o que representa uma entidade de receita no domínio e crie a entidade Receita, definindo suas propriedades e estrutura para a aplicação .NET.
Aprenda como utilizar IA para desenvolver código com mais produtividade, conheça boas práticas, limitações e dicas para obter melhores resultados no dia a dia.
Aprenda a configurar o Claude Code para auxiliar nas implementações do projeto, acelerando o desenvolvimento e melhorando a produtividade com IA.
Crie a migration da entidade Receita com apoio do Claude Code, versionando o banco de dados e acelerando a implementação do fluxo de receitas na API .NET.
Crie a request de receitas e implemente validações com FluentValidation usando Claude Code.
Crie testes de unidade para o validator de receitas usando Claude Code, validando regras de entrada e garantindo mais qualidade no fluxo.
Implemente a regra de negócio e o repositório para cadastro de receitas, organizando o fluxo entre domínio, aplicação e banco de dados na API .NET.
Aprenda a criar mapeamentos customizados com Mapster, transformando requests em entidades de domínio de forma flexível e organizada.
Finalize o cadastro de receitas persistindo os dados no banco, conectando regra de negócio, repositório e Entity Framework no fluxo.
Aprenda a configurar enums para serem exibidos com nomes descritivos no Swagger e armazenados de forma legível no banco de dados, melhorando documentação e manutenção.
Crie testes de unidade e integração para o cadastro de receitas utilizando Claude Code, validando regras de negócio, persistência e respostas da API .NET.
Inicie o fluxo para recuperar uma receita por ID e entenda por que identificadores devem ser enviados pela rota em endpoints de APIs REST.
Implemente a regra de negócio, o repositório e uma exceção personalizada para o fluxo de recuperação de receitas por ID, garantindo tratamento adequado quando a receita não existir.
Aprenda a usar o Include no Entity Framework Core para carregar entidades relacionadas e montar consultas mais completas e eficientes na API .NET.
Aprenda a criar testes de unidade para o caso de uso de recuperação de receitas por Id, validando cenários de sucesso e receita não encontrada.
Entenda como as chaves estrangeiras afetam os testes de integração e aprenda a preparar dados relacionados corretamente usando Entity Framework Core.
Crie o fluxo completo para excluir receitas, implementando endpoint, caso de uso, repositório, validações e tratamento de erros na API .NET.
Crie testes de unidade e integração para o fluxo de exclusão de receitas usando Claude Code, validando cenários de sucesso, erros e persistência no banco de dados.
Implemente o endpoint e o repositório para atualizar receitas, persistindo as alterações com Entity Framework Core e aplicando boas práticas na API.
Implemente a regra de negócio para atualizar receitas e entenda como avaliar decisões técnicas, responsabilidades e alternativas durante o desenvolvimento do projeto.
Entenda como o EF Core rastreia alterações e crie testes de unidade e integração para o fluxo de atualização de receitas utilizando Claude Code.
Implemente o endpoint para listar as receitas criadas recentemente, aplicando ordenação, consulta ao banco de dados e boas práticas em APIs .NET.
Crie testes de unidade e integração para o fluxo de receitas recentes utilizando Claude Code, validando consultas, regras de negócio e respostas da API .NET.
Entenda como definir o método HTTP para o filtro de receitas, avaliando GET, POST, parâmetros de consulta e as decisões de design do endpoint na API .NET.
Entenda o que são DTOs e Records no .NET, quando utilizar cada um e como eles ajudam a criar APIs mais organizadas, seguras e fáceis de manter.
Implemente o repositório responsável por filtrar receitas, criando consultas dinâmicas e eficientes com Entity Framework Core de acordo com os critérios informados.
Entenda por que nem toda expressão LINQ pode ser traduzida para SQL pelo Entity Framework Core e aprenda a identificar e corrigir consultas incompatíveis.
Aprenda o que é Projection no Entity Framework Core e como retornar apenas os dados necessários, melhorando a performance e reduzindo o consumo de recursos da API.
Crie testes de unidade e integração para o filtro de receitas, validando diferentes critérios de busca, resultados retornados e consultas ao banco de dados.
Planejamento da sprint 4 do projeto. Definindo integrações com Google, Azure e outros serviços externos como foco do desenvolvimento.
Entenda o fluxo de recuperação de senha e implemente a geração de um código de verificação para permitir que o usuário redefina sua senha com segurança.
Crie testes de unidade e integração para a solicitação do código de recuperação de senha, validando cenários de sucesso, usuário inexistente e persistência dos dados.
Implemente o fluxo que valida o código de recuperação e permite ao usuário definir uma nova senha com segurança na API .NET.
Crie testes de unidade e integração para a redefinição de senha, validando o código de recuperação, cenários de erro e a atualização segura da senha do usuário.
Aprenda a receber arquivos com IFormFile, utilizar multipart/form-data e criar o endpoint responsável por atualizar a imagem de perfil do usuário na API .NET.
Entenda por que a extensão do arquivo não é confiável e aprenda a validar seu conteúdo usando magic numbers antes de aceitar uploads na API .NET.
Adapte o fluxo de criação de receitas para receber os dados e uma imagem no mesmo formulário, utilizando FormData e multipart/form-data na API .NET.
Crie testes de unidade para o fluxo de upload de imagens, validando arquivos e regras de negócio.
Aprenda a montar testes de integração para o POST de receitas com imagem, enviando dados e arquivos corretamente através de requisições multipart/form-data.
Entenda como funcionam Subscription, Resource Group e Storage Account no Azure e veja como esses recursos se organizam antes de integrar o armazenamento à API .NET.
Configure a Connection String do Azure Storage na API .NET e entenda como aplicar o princípio da inversão de dependência, o D do SOLID, na integração.
Implemente o upload de imagens no Azure Storage e entenda como a propriedade Position da Stream influencia a leitura e o envio dos arquivos na API .NET.
Aprenda a gerar URLs de acesso com SAS Token para recuperar imagens do Azure Storage com segurança e controlar as permissões e o tempo de validade.
Aprenda a criar migrations para alterar tabelas já existentes e adicionar flags utilizadas no controle e gerenciamento das imagens da aplicação.
Integre as URLs protegidas por SAS Token ao fluxo de recuperação de receitas e retorne as imagens armazenadas no Azure Storage pela API .NET.
Aprenda a atualizar e excluir receitas com imagem, removendo blobs antigos quando necessário e mantendo os dados da API sincronizados com o Azure Blob Storage.
Ajuste os testes de unidade após as mudanças no fluxo de imagens, corrigindo mocks, dependências e cenários afetados pela integração com o Azure Storage.
Crie testes de integração para o fluxo de imagens utilizando Testcontainers, validando o comportamento da API e a persistência dos dados em um ambiente isolado.
Conheça os conceitos de IA generativa, explore o Azure AI Foundry e entenda como os modelos serão utilizados para gerar receitas e imagens na API .NET.
Entenda o que é injeção de dependência e por que ela é importante e como ajuda a criar aplicações mais desacopladas, testáveis e fáceis de manter.
Aprenda como configurar interfaces e classes no serviço de injeção de dependência do .NET, registrando serviços e organizando melhor as dependências da aplicação.
Entenda as diferenças entre Scoped, Singleton e Transient no .NET e saiba quando usar cada lifetime na injeção de dependência da aplicação.
Entenda os fundamentos do Scrum, seus papéis, cerimônias e como esse framework ajuda a organizar entregas e o desenvolvimento de software.
Entenda a estrutura de um time Scrum, os papéis de Product Owner, Scrum Master e Developers, e as responsabilidades de cada um no desenvolvimento de software.
Entenda o objetivo da Sprint Planning e como planejar tarefas, definir prioridades e organizar o trabalho da sprint usando práticas do Scrum.
Aprenda técnicas de estimativa no Scrum e como avaliar esforço das tarefas para melhorar o planejamento, previsibilidade e organização do trabalho da sprint.
Entenda o que é a Daily Scrum, seu objetivo e como ela ajuda no acompanhamento das tarefas, comunicação do time e progresso da sprint.
Entenda Sprint Review e Retrospective, como conduzir essas cerimônias e identificar melhorias no produto e no processo de desenvolvimento.
Nesta aula, vou disponibilizar o link do repositório do projeto no GitHub para que você possa consultar e revisar o código. O repositório contém todos os arquivos e configurações abordados durante o curso, incluindo exemplos de código, configurações de pipelines e scripts de deploy. Acesse o link fornecido para explorar o projeto completo, clonar o repositório para sua máquina local e acompanhar cada etapa do desenvolvimento. Este repositório será uma valiosa referência para reforçar seu aprendizado e facilitar a aplicação prática dos conceitos discutidos nas aulas.
Chega de cursos que ensinam só o básico e não mostram como o desenvolvimento realmente acontece no dia a dia.
Neste curso, você constrói do zero uma API completa em .NET e sai do "sei fazer funcionar" para o "sei estruturar, testar, versionar, publicar e evoluir uma aplicação backend com confiança".
Aqui, você não vai perder tempo com conteúdo raso ou exemplos desconectados da prática. A proposta é conteúdo prático, com pouca teoria solta e muita construção real: cada etapa é aplicada em um projeto que cresce aula após aula, do primeiro endpoint até o deploy em produção.
O que você vai construir e aprender:
API do zero em ASP.NET Core — da estrutura inicial aos endpoints com regras de negócio.
Arquitetura profissional — DDD, princípios SOLID, camadas e separação de responsabilidades.
Autenticação moderna — JWT, refresh token e login com Google.
Persistência de dados — Entity Framework, migrations e boas práticas de acesso a dados.
Testes automatizados — testes de unidade, de integração e Testcontainers.
Fluxo real de time — Git, Pull Requests, políticas de branch e SCRUM no Azure DevOps.
CI/CD — pipelines que validam build, testes e cobertura de código automaticamente.
Docker — para padronizar a execução do projeto.
Deploy no Azure — levando sua API para produção na nuvem da Microsoft.
Integração com IA — geração de receitas completas, com imagem, direto pela API.
Claude Code — usando IA como assistente para acelerar o desenvolvimento.
Se você é iniciante, vai aprender com um projeto completo e guiado. Se já trabalha com .NET, vai fortalecer sua base em arquitetura, testes, DevOps e Cloud.
Menos aulas soltas, mais projeto real. Entre agora e venha construir, do zero ao deploy, uma API .NET com foco no que o mercado realmente valoriza.