🔧 Framework Clean Architecture modular e escalável para .NET
🚀 Acelere entregas de projetos com as melhores práticas e uma base pronta para produção
O Codout.Framework é um starter kit de Clean Architecture para aplicações .NET, projetado para fornecer:
- Modularidade: Selecione apenas os módulos que você precisa (EF Core, MongoDB, NHibernate, Multi-Tenancy, etc.).
- Escalabilidade: Arquitetura preparada para crescer junto com seu produto.
- Manutenibilidade: Código limpo, separação de responsabilidades e padrões de projeto consolidados.
Use-o como base para APIs RESTful, microsserviços, backends de aplicações corporativas e mais.
Projeto | Responsabilidade |
---|---|
Domain | Entidades, objetos de valor, interfaces de repositório e regras de negócio. |
Common | Helpers, extensões, logging, validações e abstrações de uso geral. |
DAL | Interfaces de Unit of Work e repositórios gerais. |
EF | Implementação de repositórios com Entity Framework Core. |
Mongo | Implementação de Unit of Work e repositórios para MongoDB. |
NH | Repositórios baseados em NHibernate. |
Api | Projeto ASP.NET Core com controllers, middleware, autenticação e configuração. |
Api.Dto | Data Transfer Objects para requests e responses da API. |
Api.Client | Cliente HTTP tipado para consumo de APIs (interna/externa). |
Kendo.DynamicLinq | Extensões para consultas dinâmicas LINQ com componentes Kendo UI. |
Multitenancy | Suporte para aplicações multi-tenant, resolução de conexão por cliente. |
Mailer | Abstrações e implementações de envio de e-mail (AWS SES, SendGrid). |
Zenvia | Integração com Zenvia para envio de SMS e notificações. |
DP | Data Processors genéricos para pipelines de transformação de dados. |
Shared | Código compartilhado entre .NET Core e .NET Framework Full. |
UML | Diagramas de pacotes e classes para referência arquitetural. |
Tests | Projetos de teste unitário e de integração para cada módulo. |
- .NET SDK 9.x ou superior
- IDE de sua preferência (Visual Studio, VS Code, Rider)
- (Opcional) Docker para MongoDB ou outros serviços auxiliares
-
Clone o repositório
git clone https://github.com/Codout/Codout.Framework.git cd Codout.Framework
-
Compile e execute testes
dotnet build Codout.Framework.sln --configuration Release dotnet test tests/**/*.Test.csproj
-
Adicione ao seu projeto via NuGet
Install-Package Codout.Framework.Common Install-Package Codout.Framework.EF Install-Package Codout.Framework.Api
// Startup.cs (ASP.NET Core)
public void ConfigureServices(IServiceCollection services)
{
// Configura Domain e Common
services.AddCodoutDomain();
services.AddCodoutCommon(Configuration);
// Opte pela implementação de dados: EF, Mongo ou NH
services.AddCodoutEf(options => options.UseSqlServer(connectionString));
// ou
// services.AddCodoutMongo(options => options.ConnectionString = mongoUri);
// API
services.AddCodoutApi();
}
- Domain & Common Essentials
- EF Core & Migrations
- MongoDB e replicação automática
- NHibernate + FluentMigrator
- Suporte a gRPC e mensageria (RabbitMQ, Kafka)
- Dashboard de monitoramento e métricas
Contribuições e sugestões são muito bem-vindas!
- Faça um fork deste repositório
- Crie uma branch:
git checkout -b feature/nova-funcionalidade
- Implemente e escreva testes
- Abra um Pull Request detalhando sua proposta
Leia o CONTRIBUTING.md para mais detalhes.
Este projeto está licenciado sob a MIT License.
Desenvolvido com ❤️ por **Codout**