π‘ποΈ 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.batorinitial-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.mdtoREADME.md. - Update
appveyor.ymlwith your CI tokens (use secure tokens) or replace AppVeyor with your preferred CI tool (GitHub Actions, Jenkins, CircleCI, TeamCity, Azure DevOps). - Rename
SolutionName.slnto your project/solution name. - Update project names:
SolutionName.csprojSolutionName.Tests.csprojSolutionName.IntegrationTests.csproj- Update namespaces in the
Src/andTests/directories.
- Adjust test project references in:
Tests/SolutionName.Tests.csprojTests/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.ymlwith 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! ππ¨βπ»π©βπ»