ConnectSoft.Extensions.Saas.* libraries¶
Cross-cutting SaaS concerns—tenant resolution, ASP.NET Core integration, strongly typed options, and test helpers—ship as ConnectSoft.Extensions.Saas.* NuGet packages. This follows the same Layer 1 pattern as existing ConnectSoft.Extensions.* libraries (Template layering and reuse).
Repository rule¶
One Git repository per NuGet package. Each package versions and publishes independently.
MVP package set (initial)¶
| Git repository (example) | NuGet package | Responsibility |
|---|---|---|
ConnectSoft.Extensions.Saas.Abstractions |
ConnectSoft.Extensions.Saas.Abstractions |
Tenant context interfaces, correlation with HttpContext, primitive types shared across hosts and services |
ConnectSoft.Extensions.Saas.AspNetCore |
ConnectSoft.Extensions.Saas.AspNetCore |
Middleware, filters, DI registration; depends on Abstractions |
ConnectSoft.Extensions.Saas.Options |
ConnectSoft.Extensions.Saas.Options |
Options classes, validation, binding for multi-tenant configuration |
ConnectSoft.Extensions.Saas.Testing |
ConnectSoft.Extensions.Saas.Testing |
Test doubles, fake tenant context, WebApplicationFactory helpers |
Later packages (domain-adjacent)¶
When billing and metering library surfaces stabilize (separate from bounded-context services), optional dedicated packages such as ConnectSoft.Extensions.Saas.Billing / ConnectSoft.Extensions.Saas.Metering may each get their own repository—only if they remain reusable across products; otherwise keep logic inside ConnectSoft.Saas.BillingTemplate / ConnectSoft.Saas.MeteringTemplate outputs.
Phase 1 vs Phase 2¶
| Phase | Templates / shell / MFEs | Libraries |
|---|---|---|
| Phase 1 | ConnectSoft.Saas.*Template, ConnectSoft.Blazor.Shell.Saas, MFE templates ship with minimal inlined tenant abstractions or a clearly marked *.Internal.Saas project |
No published ConnectSoft.Extensions.Saas.* yet (or only Abstractions if needed early) |
| Phase 2 | Same repos migrate to package references | Extract shared code from templates + Product catalog demo prototype; publish NuGets; remove stubs |
Consumers¶
- Backend microservices generated from
ConnectSoft.Saas.*Template. ConnectSoft.Blazor.Shell.Saas(tenant-aware routing, BFF, policy).- Blazor MFE templates (claims, edition, API client behavior).
Relationship to the platform solution¶
See SaaS platform — solution plan for how Layer 1 packages feed templates (Layer 3) and how ServiceModel packages remain the public API surface for gateways and clients.