aolmez / modular-monolith-ddd-vsa-webapi

A .NET 8 Webapi boilerplate with Modular Monolith approach, Domain-Driven Design and Vertical Slices architecture along with Clean Architecture principles per feature.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Project Name

A .NET 8 Webapi boilerplate with Modular Monolith approach, Domain-Driven Design and Vertical Slices architecture along with Clean Architecture principles per feature.

Table of Contents

Getting Started

  • Clone the repository: git@github.com:baranacikgoz/modular-monolith-ddd-vsa-webapi.git

VSCode

One-time setup

  • Use appropriate tasks.json depending on your OS
    • Copy tasks.windows.json or tasks.unix.json, into a new file with the name tasks.json.
Unix only
  • Make before and after restore & build scripts executable
    • chmod +x .vscode/exclude_docker_compose_dcproj.sh
    • chmod +x .vscode/dotnet_build_and_cleanup.sh
    • chmod +x .vscode/revert_exclude.sh

Development

  • Run required services
    • If you have VSCode Docker extension installed, right click on docker-compose.yml and select Compose Up - Select Services. Select the following services:
      • mm.database
      • mm.rabbitmq
      • mm.seq - Optional but recommended
    • Or run the following command in terminal:
      docker compose -f "docker-compose.yml" up -d --build mm.database mm.rabbitmq mm.seq
  • Run the application
    • Press F5 to start the application in debug mode

Visual Studio

  • Open the solution file ModularMonolith.sln in Visual Studio

  • Set Docker Compose as the startup project

    • Right click on the Docker Compose project and select Set as Startup Project if it's not already set
  • Start application

About

A .NET 8 Webapi boilerplate with Modular Monolith approach, Domain-Driven Design and Vertical Slices architecture along with Clean Architecture principles per feature.

License:Apache License 2.0


Languages

Language:C# 99.2%Language:Dockerfile 0.7%Language:Makefile 0.1%