Scarecrow.Clean
2.0.0
dotnet new install Scarecrow.Clean@2.0.0
Scarecrow.Clean
Overview
A Clean Architecture project template for .NET 9 & .NET 10 inspired by amantiband/clean-architecture. This template provides a pure architectural foundation without any delivery mechanism (API, UI, etc.).
Architecture
The architecture was following this.
src/
├─ Domain/
│ ├─ Catalogs/
│ │ ├─ Entities/
│ │ ├─ Events/
│ │ ├─ ValueObjects/
│ ├─ Common/
│ │ ├─ Entities/
│ │ │ ├─ AuditableEntity.cs
│ │ │ ├─ DomainEntity.cs
│ │ │ ├─ Entity.cs
│ │ │ ├─ NoKeyEntity.cs
│ │ │ ├─ RecoverableEntity.cs
│ └─ IDomainEvent.cs
│
├─ Application/
│ ├─ Catalogs/
│ │ ├─ Commands/
│ │ │ ├─ AddProduct/
│ │ │ │ ├─ AddProductCommand.cs
│ │ │ │ ├─ AddProductCommandHandler.cs
│ │ │ │ ├─ AddProductCommandValidator.cs
│ │ ├─ EventHandlers/
│ │ ├─ Queries/
│ ├─ Common/
│ │ ├─ Mapping/
│
├─ Infrastructure/
│ ├─ Persistence/
│ │ ├─ Contexts/
│ │ ├─ Repositories/
Features
- Clean Architecture boundaries
- DDD-friendly domain model
- CQRS-ready structure
- Wolverine-ready messaging
- FluentValidation integration-ready
- Multi-targeting (.NET 9 & 10)
Installation
Install the template from Package Manager console:
Package Manager Console:
dotnet new install Scarecrow.Clean
.NET CLI
dotnet new install Scarecrow.Clean
Library Used In This Template
This template leverages a set of robust libraries and frameworks to implement Clean Architecture and other best practices.
| Package | Version | License |
|---|---|---|
| SingleScope.Persistence | 5.1.0 | MIT |
| ErrorOr | 2.0.1 | MIT |
| SmartEnum | 8.2.0 | MIT |
| Serilog | 4.3.0 | Apache-2.0 |
| FluentValidation | 12.0.0 | Apache-2.0 |
| Mapperly | 4.3.1 | Apache-2.0 |
| WolverineFx | 5.9.2 | MIT |
Contributions
Contributions are welcome! If you encounter a bug, have a suggestion, or want to contribute code, please follow these steps:
- Check the GitHub Issues to see if your issue or idea has already been reported.
- If not, open a new issue to describe the bug or feature request.
- For code contributions:
- Fork the Project repository.
- Create your Feature Branch (
git checkout -b feature/YourAmazingFeature). - Commit your Changes (
git commit -m 'Add YourAmazingFeature'). Adhere to conventional commit messages if possible. - Push to the Branch (
git push origin feature/YourAmazingFeature). - Open a Pull Request against the
mainbranch of the original repository.
- Please try to follow the existing coding style and include unit tests for new or modified functionality.
License
Distributed under the MIT License. See the LICENSE file in the repository for more information.
Contact
Project link: https://github.com/muhirwanto-dev/scarecrow/tree/main/src/Scarecrow.Clean
-
net10.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.