
Apresentação do curso
Apresentando o ambiente usado no curso
Apresentando o ambiente do Visual Studio 2019
Apresentando a IDE do Visual Studio Community 2019
Instalação do .NET Core SDK nos ambientes Windows , Linux e Mac
Instalação do Visual Studio Code
Apresentação da ferramenta NET CLI
Apresentando o modelo de domínio anêmico
Apresentando o Separation of Concerns ou separação de conceitos ou responsabilidades
Apresentando o conceito da inversão da dependência ou dependency inversion
Apresentando o padrão repository
Apresentando o padrão MVC - Model View Controller
Apresentando o padrão CQRS - Command Query Responsability Segregation
Apresentando os conceitos da arquitetura monolítica
Apresentando a arquitetura em camadas
Apresentando a arquitetura Cebola ou Onion Architecture
Apresentando os conceitos do Domain Drive Design - DDD
Apresentando os conceitos da Clean Architecture
Conceitos básicos sobre os testes de unidade com xUnit
Apresentando o problema do forte acoplamento ao usar os templates padrão para criar aplicações na plataforma .NET
Apresentando o projeto a ser criado segundo os princípios da Clean Architecture
Apresentando a solução usada para criar o projeto para gerenciar produtos e categorias: arquitetura, estrutura, definições dos projetos, relacionamentos entre os projetos
Criação da solução e dos projetos no VS 2019 Community
Criação da solução e dos projetos usando a ferramenta de linha de comando NET CLI
Enriquecendo o modelo de domínio anêmico : Definindo os set como private, a classe como sealed e validando do modelo
Enriquecendo o modelo de domínio anêmico : Criando a entidade Entity
Criando as interfaces do repositório para produtos e categorias
Definindo os testes de unidade para a entidade Category
Definindo os testes de unidade para entidade Product
Corrigindo o modelo de domínio Product
Criando a estrutura do projeto, incluindo as referências ao Entity Framework Core e criando o arquivo de contexto ApplicationDbContext
Configurando as entidades Product e Category usando a Fluent API
Apresentando os conceitos para a implementação dos repositórios
Implementando o repositório para Category - CategoryRepository
Implementando o repositório para Product - ProductRepository
Apresentando os conceitos sobre o contêiner de injeção de dependência da ASP .NET Core
Implementando o projeto Infra.IoC - Criando um método de extensão para registrar os serviços do contexto e do repositório
Apresentando o Migration : conceitos e recursos usados
Aplicando o Migration para gerar o banco e as tabelas e também para popular tabela Products
Apresentando a camada e os conceitos sobre mapeamento de objetos, Data Transfers Objects e AutoMapper
Criando os DTOs e realizando o mapeamento entre as entidades usando os recursos do AutoMapper
Definição dos serviços da camada Application
Criando a interface ICategoryService a sua implementação CategoryService
Criando a interface IProductService e sua implementação ProductService
Roteiro para realizar os testes dos serviços e repositórios implementandos
Registrando os serviços no projeto Infra.IoC , criando o Controller CategoriesController, o método Action Index e a respectiva view para testar o serviço
Criando o Controller ProductsController, o método Action Index e a respectiva view para testar o serviço
Apresentando os conceitos e o roteiro para a implementação do padrão CQRS
Implementando os comandos e consultas para Products
Apresentação dos Handlers , conceitos e o roteiro de implementação
Implementando os Handlers para os Commands e Queries
Testando a implementação do padrão CQRS : Fluxo do request comparação, ajustes no serviço do produto - ProductService, usando o IMediator
Testando a implementação do padrão CQRS : Fluxo do request comparação, ajustes no serviço do produto - ProductService, usando o IMediator
Criando o controlador HomeControler, ajustando o roteamento, criando a View e definindo um layout com menu para produtos e categorias
Criando o projeto ASP .NET Core Web API - CleanArchMvc.API - na solução CleanArchMvc
Configurando o projeto CleanArchMvc.API para usar os recursos dos demais projetos : Criação da classe DependencyInjectionAPI e do método de extensão AddInfrastructureAPI
Apresentando os conceitos básicos sobre API , REST e RESTFul
Criação do controlador CategoriesController no projeto API para realizar as operações CRUD e gerenciar informações dos produtos
Implementação do método Http GET para o endpoint api/categorias na API
Implementação do método Http GET para o endpoint api/categorias/id na API
Implementação do método Http POST para o endpoint api/categorias na API
Implementação do método Http PUT para o endpoint api/categorias na API
Implementação do método Http DELETE para o endpoint api/categorias/id na API
Criando o controlador ProductsController e os endpoints para realizar as operações CRUD e gerenciar informações dos produtos
Testando os endpoints do controlador ProductsController
Este curso apresenta os principais conceitos relacionados com a Clean Architecture e com as boas práticas que aplicadas permitem criar aplicações ASP .NET Core com uma arquitetura limpa.
Os fundamentos apresentados baseiam-se na Clean Architecture que refere-se à organização do projeto de forma que seja fácil de entender e fácil de mudar conforme o projeto cresce. Isso não acontece por acaso. É preciso um planejamento intencional para que isso ocorra.
Durante o curso vamos criar uma aplicação ASP .NET Core MVC no VS 2019 Community e também no VS Code, identificar os problemas e a seguir propor a solução aplicando os conceitos da Clean Architecture onde vamos separar os arquivos, classes projetos e componentes que podem mudar independentemente entre si.
Desta forma estaremos passando de uma solução monolítica contendo um único projeto para uma solução contendo 5 projetos onde a cada projeto será atribuído as responsabilidades específicas e onde vamos definir os relacionamentos entre os projetos respeitando os princípios da arquitetura limpa e a regra da dependência.
A solução final vai possuir os seguintes projetos : Domain, Application, Infrastructure, IoC e o projeto de apresentação, que é uma aplicação ASP .NET Core MVC, onde vamos aplicar a separação das responsabilidades, a injeção de dependência, usar alguns conceitos do Domain Drive Design e implementar os padrões Repository e CQRS.
Ao final nossa aplicação ASP .NET Core MVC estará aderente às boas práticas e aos princípios da Clean Architecture de forma que a manutenção e também a inclusão de novas funcionalidades poderá ser feita de forma bem mais fácil e onde os testes poderão ser aplicados de forma simples.
O curso também apresenta uma seção onde recria o projeto no .NET 6 usando o Visual Studio 2022 e outras seções mostrando a migração para o .NET 7.0 e para o .NET 8.0