Este projeto é uma aplicação Razor Pages baseada nos princípios de Clean Architecture, desenvolvida em .NET 9 e C# 13.0. O objetivo é fornecer uma estrutura robusta, escalável e de fácil manutenção para sistemas web, separando claramente as responsabilidades entre as camadas de domínio, aplicação, infraestrutura e apresentação.
- Visão Geral
- Estrutura do Projeto
- Principais Funcionalidades
- Requisitos
- Como Executar
- Testes
- Padrões e Boas Práticas
- Contribuição
- Licença
O CleanArchMVC implementa um sistema de cadastro de produtos e categorias, utilizando validações de domínio e seguindo o padrão anêmico para entidades. O projeto serve como referência para aplicações Razor Pages modernas, com foco em separação de responsabilidades e testabilidade.
- Cadastro, edição e exclusão de produtos e categorias
- Validação de regras de negócio no domínio
- Associação entre produtos e categorias
- Separação clara entre camadas (Domain, Application, Infrastructure, Web)
- Utilização de Razor Pages para a interface web
- .NET 9 SDK
- Visual Studio 2022 ou superior
- SQL Server (ou outro banco de dados, conforme configuração)
- Clone o repositório:
git clone https://github.com/boscobecker/CleanArchMVC.git
- Restaure os pacotes:
dotnet restore
-
Configure a string de conexão no arquivo
appsettings.jsonda camada Web. -
Execute as migrações (se aplicável):
dotnet ef database update --project CleanArchMVC.Infrastructure
- Inicie a aplicação:
dotnet run --project CleanArchMVC.Web - Acesse no navegador:
Abra o navegador e acesse
https://localhost:5001ouhttp://localhost:5000.
- Os testes unitários devem ser implementados na pasta
CleanArchMVC.Tests. - Para rodar os testes:
- Clean Architecture: Separação de responsabilidades e dependências invertidas.
- Validação de Domínio: Todas as regras de negócio são validadas nas entidades.
- Razor Pages: Interface web moderna e produtiva.
- Injeção de Dependência: Utilização do DI nativo do .NET.
- Faça um fork do projeto
- Crie uma branch (
git checkout -b feature/NovaFuncionalidade) - Commit suas alterações (
git commit -am 'Adiciona nova funcionalidade') - Push para a branch (
git push origin feature/NovaFuncionalidade) - Abra um Pull Request
Este projeto está licenciado sob a licença MIT.
Dúvidas ou sugestões? Abra uma issue ou entre em contato!