-
Notifications
You must be signed in to change notification settings - Fork 0
Home
HarroCReineking edited this page Feb 26, 2026
·
5 revisions
Welcome to the TestClone wiki! This wiki provides comprehensive documentation for the TestClone API project — a .NET 10 / ASP.NET Core RESTful API that demonstrates clean architecture principles.
TestClone is a reference implementation of a layered ASP.NET Core API. It serves as an exploration project for:
- .NET 10 and the latest C# 14 language features.
- Clean / Layered Architecture with clear separation of concerns.
- OpenAPI / Swagger for interactive API documentation.
- TUnit + Moq for modern unit-testing patterns.
test.clone/
├── src/
│ ├── WebApi/ # Presentation layer — HTTP controllers
│ ├── DomainApi/ # Business logic layer — Facade pattern
│ │ └── Interfaces/ # IFacade contract + Facade implementation
│ ├── DomainModel/ # Domain layer — request/response models
│ │ ├── Requests/ # Inbound request DTOs
│ │ └── Responses/ # Outbound response DTOs
│ ├── WebApi.UnitTests/ # Unit tests for the presentation layer
│ └── DomainApi.UnitTests/ # Unit tests for the business logic layer
├── docs/
│ ├── architecture.md # Detailed architecture reference
│ └── wiki/ # This wiki
├── .github/ # Workflows, issue templates, PR template
├── Directory.Build.props # Shared MSBuild properties (warnings-as-errors, etc.)
├── Directory.Packages.props # Centralized NuGet package versions
├── global.json # Pinned .NET SDK version
└── test.clone.slnx # Solution file
| Page | Description |
|---|---|
| Getting Started | Prerequisites, build, run, and test the project locally |
| API Reference | Available endpoints with request / response details |
| Development Guide | Coding standards, testing approach, and contribution workflow |
| Architecture Overview | In-depth layered architecture and design-pattern documentation |
| Category | Technology |
|---|---|
| Runtime | .NET 10.0 |
| Web framework | ASP.NET Core |
| API docs | OpenAPI 3.0 / Swashbuckle (Swagger UI) |
| Unit testing | TUnit |
| Mocking | Moq |
| Package management | Central Package Management (Directory.Packages.props) |
-
Layered Architecture —
WebApi→DomainApi→DomainModel; dependencies only flow inward. -
Facade Pattern — Controllers depend on
IFacade, keeping them thin and easily testable. - Controller-Based API — Chosen over Minimal APIs for structured class-based organisation.
-
Warnings as Errors — Enforced in
Directory.Build.propsto maintain a high code-quality bar. - Nullable Reference Types — Enabled project-wide for compile-time null-safety.