Solution structure¶
Generated solution: ConnectSoft.Saas.ProductsCatalogTemplate.slnx - context projects under src/ plus the base-template/ submodule.
Products Catalog src/ projects¶
ConnectSoft.Saas.ProductsCatalog (constants/exceptions), .EntityModel, .DomainModel, .DomainModel.Impl, .PersistenceModel, .PersistenceModel.NHibernate, .DatabaseModel.Migrations, .MessagingModel, .FlowModel, .FlowModel.MassTransit (publish-only - only GlobalSuppressions.cs), .ServiceModel, .ServiceModel.RestApi, .ServiceModel.Grpc, .ActorModel, .ActorModel.Orleans, .SchedulerModel, .SchedulerModel.Hangfire, .ApplicationModel, .Application, .Options, .Metrics, .ArchitectureModel, .InfrastructureModel, .DockerCompose, .DiagramAsCodeModel.
Layer responsibilities are shared across SaaS L3 templates - see template layering and reuse.
Domain model highlights¶
EntityModel:IProduct(root), ownedEdition/EditionFeature/EditionSla/EditionPricing/EditionBusinessModel, peerFeature/PricingModel/BusinessModel, value objectsUsageLimit/BillingRule/AccessRule.DomainModel.Impl/Validators: nine validators (CreateProductInputValidator...DeactivateFeatureInputValidator).
Tests¶
ConnectSoft.Saas.ProductsCatalog.UnitTestsConnectSoft.Saas.ProductsCatalog.AcceptanceTests(Reqnroll)ConnectSoft.Saas.ProductsCatalog.ArchitectureTests
See testing.