Skip to content

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.