DotCraft 1.0.3
dotnet tool install --global DotCraft --version 1.0.3
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
dotnet tool install --local DotCraft --version 1.0.3
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=DotCraft&version=1.0.3
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
nuke :add-package DotCraft --version 1.0.3
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
DotCraft
O CLI de scaffolding de soluções .NET
DotCraft é uma ferramenta de linha de comando que gera soluções .NET completas e prontas para produção seguindo padrões modernos de arquitetura — Clean Architecture ou Vertical Slice — com todo o boilerplate já configurado para que você foque no que importa: a lógica de negócio.
Instalação
dotnet tool install --global DotCraft
Atualização
dotnet tool update --global DotCraft
Uso
dotcraft new solution [opções]
Opções
| Opção | Descrição | Valores | Padrão |
|---|---|---|---|
-n, --name |
Nome da solução | string |
— |
-a, --architecture |
Padrão de arquitetura | clean | vertical |
— |
-d, --db |
Banco de dados | sqlserver | postgres | oracle |
— |
--docs |
Documentação da API | scalar | swagger |
— |
-v, --version |
Versão do .NET | 9 | 10 |
10 |
--format |
Formato do arquivo de solução | sln | slnx |
slnx |
--tests |
Projetos de teste adicionais | integration | acceptance | all | none |
all |
Exemplos
# Clean Architecture com PostgreSQL e Scalar
dotcraft new solution -n MeuProjeto -a clean -d postgres --docs scalar -v 10 --tests all
# Vertical Slice com SQL Server e Swagger
dotcraft new solution -n MeuProjeto -a vertical -d sqlserver --docs swagger -v 9 --tests integration
# Setup mínimo sem testes adicionais
dotcraft new solution -n MeuProjeto -a clean -d postgres --docs scalar --tests none
O que é gerado
Clean Architecture
MeuProjeto/
├── src/
│ ├── MeuProjeto.Api # Camada HTTP (endpoints, middleware, setup)
│ ├── MeuProjeto.Application # Lógica de negócio (CQRS, validação)
│ ├── MeuProjeto.Infrastructure # Persistência, EF Core, repositórios
│ └── MeuProjeto.Domain # Entidades, value objects, exceções
├── tests/
│ ├── MeuProjeto.UnitTests
│ ├── MeuProjeto.IntegrationTests
│ └── MeuProjeto.AcceptanceTests
├── docs/
├── .editorconfig
├── .gitignore
├── Directory.Build.props
├── Directory.Packages.props
├── Dockerfile
└── docker-compose.yml
Vertical Slice
MeuProjeto/
├── src/
│ └── MeuProjeto.Api
│ ├── Features/ # Uma pasta por feature
│ ├── Shared/ # Abstrações, Result pattern, behaviors
│ ├── Infrastructure/ # Persistência, DbContext, repositórios
│ └── Setups/ # Configuração do builder e pipeline
├── tests/
│ ├── MeuProjeto.UnitTests
│ ├── MeuProjeto.IntegrationTests
│ └── MeuProjeto.AcceptanceTests
├── .editorconfig
├── .gitignore
├── Directory.Build.props
├── Directory.Packages.props
├── Dockerfile
└── docker-compose.yml
O que está incluído
Sempre gerado
Directory.Build.props— configuração de build centralizadaDirectory.Packages.props— versões de pacotes NuGet centralizadas via CPM.editorconfig— convenções de estilo de código.gitignore— gitignore padrão para .NETDockerfile— build multi-stage Alpine com usuário não-rootdocker-compose.yml— pré-configurado para o banco de dados escolhido
Por arquitetura
- Result pattern (
Result<T>,Error,ErrorType) - Contratos CQRS (
ICommand,IQuery,ICommandHandler,IQueryHandler) ValidationBehaviorcom pipeline do FluentValidationGlobalExceptionHandlercom ProblemDetails- Classe base
Entitycom UUIDv7, campos de auditoria e eventos de domínio - Classe base
ValueObject - Contratos
IRepository<T>eIUnitOfWork AppDbContextcomApplyConfigurationsFromAssemblyBaseEntityTypeConfiguration<T>para mapeamentos do EF Core- Implementação de
UnitOfWork - Extensions de
DependencyInjectionpor camada BuilderSetupePipelineSetup- Health checks configurados para o banco escolhido
- Documentação da API (Scalar ou Swagger)
Program.cspronto para rodar
Versões de pacotes
Todas as versões de pacotes NuGet são resolvidas em tempo de geração diretamente da API do NuGet — sempre atualizadas e compatíveis com a versão do .NET escolhida.
Stack técnica
| Responsabilidade | Biblioteca |
|---|---|
| Mediator | Mediator.SourceGenerator |
| Validação | FluentValidation |
| Documentação | Scalar / Swashbuckle |
| Health Checks | AspNetCore.Diagnostics.HealthChecks |
| ORM | Entity Framework Core |
| Banco de dados | SQL Server / PostgreSQL / Oracle |
Requisitos
- .NET 9 SDK ou superior
Licença
MIT
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
This package has no dependencies.