Notice: This is all AI generated and only used to explore ideas and sketch them. It doesn't actually work without fixing a lot of stuff.
A monorepo containing multiple .NET microservices with isolated dependencies and centralized package management.
monorepo/
├── .github/ # GitHub Actions workflows
├── docs/ # Global Documentation
├── services/ # Microservices
│ ├── Bff/ # Backend for Frontend (contains Angular)
│ ├── UserService/ # User management service
│ └── OrderService/ # Order management service
├── e2e/ # Global end-to-end tests
└── tools/ # Build and deployment tools
- Bff: Backend for Frontend service containing Angular frontend and .NET API
- UserService: User management microservice
- OrderService: Order management microservice
- .NET 8.0 SDK
- Node.js 18+ (for Angular and Playwright)
- PowerShell 7+ (for build scripts)
# Build all services
./tools/build.ps1
# Build specific service
./tools/build.ps1 -Service Bff# Run all unit tests
./tools/test.ps1
# Run e2e tests
cd e2e
npm run test:e2e
# Check service isolation
./tools/check-service-isolation.ps1GitHub Actions automatically:
- Detects changed services
- Builds only affected services
- Runs unit tests for changed services
- Executes global e2e tests
- Enforces service isolation via separate workflow (blocks PRs with project references between services)
- Multi-service PR protection - adds required checkbox when 2+ services are modified
- Service Isolation: No project references between services (enforced by CI/CD)
- Centralized Package Management: Directory.Build.props per service
- Incremental Building: Only build what changed
- Comprehensive Testing: Unit tests per service + global e2e tests