π‘ποΈ A boilerplate template for building CQRS projects (API + Worker) in .NET C#
This repository is a template for kickstarting CQRS-based solutions in .NET C#. It includes both an API project and a worker project to streamline development and maintain a clean separation of concerns.
𧩠CQRS (Command Query Responsibility Segregation) is an architectural pattern that separates the read operations (queries) from write operations (commands), improving scalability and maintainability.
π§ Out of the box features include:
- Pre-configured solution structure.
- CI pipeline with AppVeyor.
- Support for Windows, Linux, and macOS environments.
π‘ Tip:
AppVeyor CI is free for open-source projects. For private repositories, explore other CI tools like GitHub Actions, CircleCI, TeamCity, or Azure DevOps.
β οΈ Note: The automated process supports Windows, Linux, and macOS environments.
- Click the green button USE THIS TEMPLATE.
- Name your new project/repository.
- Clone your newly created repository to your local machine.
- Run the appropriate setup script for your OS:
- πͺ On Windows: Execute
initial-setup.bat
orinitial-setup.ps1
- π§ On Linux/Mac: Execute
initial-setup.sh
- πͺ On Windows: Execute
- Follow the on-screen instructions in your terminal.
If you prefer setting things up manually:
- Click the green button USE THIS TEMPLATE.
- Name your new project/repository.
- Clone your newly created repository to your local machine.
- Clean up and customize the project structure:
- Delete this file (
README.md
) and renameREADME.template.md
toREADME.md
. - Update
appveyor.yml
with your CI tokens (use secure tokens) or replace AppVeyor with your preferred CI tool (GitHub Actions, Jenkins, CircleCI, TeamCity, Azure DevOps). - Rename
SolutionName.sln
to your project/solution name. - Update project names:
SolutionName.csproj
SolutionName.Tests.csproj
SolutionName.IntegrationTests.csproj
- Update namespaces in the
Src/
andTests/
directories.
- Adjust test project references in:
Tests/SolutionName.Tests.csproj
Tests/SolutionName.IntegrationTests.csproj
.
- Fix the badge paths in
README.md
(replace{username}/{repo}
with your own details). - Add usage instructions for your CQRS solution to
README.md
. - Update
_config.yml
with project metadata for your GitHub Pages documentation site.
- Delete this file (
This project is licensed under the MIT License.
π View LICENSE or read more at opensource.org/licenses/MIT.
βοΈ Feel free to replace the license with one that better suits your project's needs.
- π· Built with .NET C#
- ποΈ CQRS Design: Clean separation of commands and queries.
- π Cross-platform Support: Windows, Linux, and macOS.
- π οΈ CI Ready: Pre-configured AppVeyor pipeline (customizable).
- π Quick Setup: Automated scripts for easy initialization.
We welcome contributions! Feel free to submit issues, pull requests, or suggestions to improve this boilerplate.
Happy coding! ππ¨βπ»π©βπ»