1.8 KiB
1.8 KiB
Solution Structure
Create a modular .NET solution with proper layer separation.
Create Solution
mkdir OrderManagement
cd OrderManagement
# Create solution file
dotnet new sln -n OrderManagement
# Create projects
dotnet new webapi -n OrderManagement.Api
dotnet new classlib -n OrderManagement.CQRS
dotnet new classlib -n OrderManagement.Domain
dotnet new classlib -n OrderManagement.Infrastructure
dotnet new xunit -n OrderManagement.Tests
# Add to solution
dotnet sln add OrderManagement.Api
dotnet sln add OrderManagement.CQRS
dotnet sln add OrderManagement.Domain
dotnet sln add OrderManagement.Infrastructure
dotnet sln add OrderManagement.Tests
Project Dependencies
# Api depends on CQRS and Infrastructure
cd OrderManagement.Api
dotnet add reference ../OrderManagement.CQRS
dotnet add reference ../OrderManagement.Infrastructure
# CQRS depends on Domain
cd ../OrderManagement.CQRS
dotnet add reference ../OrderManagement.Domain
# Infrastructure depends on Domain
cd ../OrderManagement.Infrastructure
dotnet add reference ../OrderManagement.Domain
# Tests depend on all
cd ../OrderManagement.Tests
dotnet add reference ../OrderManagement.Api
dotnet add reference ../OrderManagement.CQRS
dotnet add reference ../OrderManagement.Domain
dotnet add reference ../OrderManagement.Infrastructure
Add NuGet Packages
# Api
cd OrderManagement.Api
dotnet add package Svrnty.CQRS.MinimalApi
dotnet add package Svrnty.CQRS.Grpc
# CQRS
cd ../OrderManagement.CQRS
dotnet add package Svrnty.CQRS
dotnet add package Svrnty.CQRS.FluentValidation
dotnet add package FluentValidation
# Infrastructure
cd ../OrderManagement.Infrastructure
dotnet add package Microsoft.EntityFrameworkCore
dotnet add package Npgsql.EntityFrameworkCore.PostgreSQL
Next Steps
Continue to Domain Layer