Curated layout
Incorporates battle-tested conventions for API, worker, CLI, and library projects.
Ready for production projects
This layout captures proven patterns from the .NET ecosystem and blends them with modern engineering practices. Fork it, adapt it, and ship services that scale without wrestling your repository.
Incorporates battle-tested conventions for API, worker, CLI, and library projects.
Scripts, build, and deployment folders keep pipelines organized and reproducible.
Separate `tests` solutions simplify unit vs. integration boundaries and CI orchestration.
Every directory is intentional. Use this map as a reference while you onboard teammates or start a new service.
Where your production code lives. Keep each app or service in its own folder. Companion README documents upcoming features and architectural decisions.
Housing for unit, integration, and acceptance suites. Split your test projects by domain to keep feedback loops focused.
Custom MSBuild targets, packaging steps, and CI configuration land here. Keep build logic close to the repo and versioned with code.
Utilities for bootstrapping environments, linting, database tasks, or developer ergonomics. Good scripts save hours every sprint.
Infrastructure-as-code for Kubernetes, Terraform, Docker Compose, and other delivery targets. Parameterize environments but keep a single source of truth.
Product specs, ADRs, onboarding guides, and user manuals. Document once, reuse everywhere.
Optional sample apps illustrating best practices or demonstrating your library’s API. Great for quick smoke tests.
Versions of NuGet packages, local feeds, or binary drops that must be checked in for reproducibility. Use sparingly.
Whether you are bootstrapping a new microservice or contributing to a monorepo, these tips accelerate your first commits.
Make sure the latest .NET SDK, Node (for SPA backends), and Docker (if needed) are ready to go. The `scripts` folder includes helper shell scripts to bootstrap environments.
Use this repository as a template. Update project names under `src` and corresponding test projects to match your solution naming conventions.
Keep build and deploy reproducible. Populate `build/` with custom MSBuild targets or Cake scripts and wire them into CI.
Inspired by David Fowler’s .NET architecture guidance and the Go community’s classic project layout, this repo curates a sensible baseline for large-scale .NET solutions—without dictating application architecture.
Read the original inspirationStart with a clean layout, evolve with your team, and share improvements back with the community. Contributions are welcome—PRs that document real workflows are especially valuable.