ConnectSoft Templates Dependencies¶
This document provides a comprehensive overview of all ConnectSoft templates, their dependencies, relationships, and key features. It includes visual diagrams to help understand how templates relate to each other and when to use each template.
Overview¶
ConnectSoft provides a comprehensive set of .NET solution templates designed to accelerate development of microservices, SaaS platforms, API gateways, libraries, and frontend applications. These templates follow best practices, incorporate modern architectural patterns, and ensure consistency across projects.
Template Categories¶
ConnectSoft templates are organized into five main categories:
- Library Templates - Reusable components and packages
- Blazor Templates - Frontend UI components and applications
- Service Templates - Backend services and infrastructure
- Platform Templates - Multi-service SaaS platforms
- Documentation Templates - Documentation sites
Complete Template Dependency Diagram¶
The following diagram shows all ConnectSoft templates and their dependencies:
graph TB
subgraph "Library Templates"
LT[Library Template<br/>.NET Library with DI, Logging, Options]
ALT[API Library Template<br/>Service Agent Libraries<br/>HTTP Client, Resiliency, Auth]
AISLT[AI Skills Library Template<br/>Semantic Kernel Integration<br/>AI Plugins, Observability]
end
subgraph "Blazor Templates"
BCL[Blazor Component Library<br/>Reusable Blazor Components RCL<br/>Design Tokens, Tailwind]
BMFL[Blazor Microfrontend Library<br/>Independent Feature Modules<br/>Web Components]
BST[Blazor Shell Template<br/>Portal-Grade Blazor Web App<br/>Navigation, MFE Hosting]
end
subgraph "Service Templates"
MST[Microservice Template<br/>Clean Architecture, DDD<br/>Cloud-Native Microservices]
IBT[Identity Backend Template<br/>ASP.NET Core Identity<br/>User Management, Roles, Claims]
AST[Authorization Server Template<br/>OAuth2/OpenID Connect<br/>Token Issuance, Client Management]
AGT[API Gateway Template<br/>ASP.NET Core Gateway<br/>Routing, Auth, Rate Limiting]
HCAT[Health Checks Aggregator Template<br/>Health Status Aggregation<br/>UI Dashboard, Webhooks]
end
subgraph "Platform Templates"
PT[Platform Template<br/>Multi-Service SaaS Platform<br/>Shared Infrastructure]
end
subgraph "Documentation Templates"
DT[Documentation Template<br/>MkDocs-based<br/>Documentation Sites]
end
%% Library Template Dependencies
MST -.->|may use| LT
MST -.->|may use| ALT
MST -.->|may use| AISLT
AGT -.->|may use| LT
%% Blazor Template Dependencies
BST -->|uses| BCL
BST -->|uses| BMFL
BMFL -->|uses| BCL
%% Service Template Dependencies
AST -->|depends on| IBT
AGT -->|depends on| IBT
%% Platform Template Dependencies
PT -->|uses| MST
PT -->|uses| AGT
PT -->|uses| AST
PT -->|uses| IBT
PT -->|uses| DT
%% Styling
classDef libraryTemplate fill:#e1f5ff,stroke:#01579b,stroke-width:2px
classDef blazorTemplate fill:#fce4ec,stroke:#880e4f,stroke-width:2px
classDef serviceTemplate fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef platformTemplate fill:#f3e5f5,stroke:#4a148c,stroke-width:2px
classDef docTemplate fill:#e8f5e9,stroke:#1b5e20,stroke-width:2px
class LT,ALT,AISLT libraryTemplate
class BCL,BMFL,BST blazorTemplate
class MST,IBT,AST,AGT,HCAT serviceTemplate
class PT platformTemplate
class DT docTemplate
Template Feature Matrix¶
The following table provides a comprehensive overview of each template, its category, key features, use cases, and dependencies:
| Template | Category | Key Features | Primary Use Cases | Dependencies |
|---|---|---|---|---|
| Library Template | Library | • Multi-targeting (.NET 8/9) • Optional DI, Logging, Options support • MSTest unit tests • CI/CD pipelines • NuGet packaging |
• Infrastructure libraries • Domain libraries • Shared utilities • Cross-cutting concerns |
None (base template) |
| API Library Template | Library | • Typed HTTP Client • Resiliency (Polly: retries, circuit breakers) • Multiple auth methods (API Key, OAuth2, OIDC, JWT) • Mock server for testing • Chaos testing • OpenTelemetry integration |
• Third-party SDKs • Internal microservice clients • Multi-tenant SaaS integrations |
None (standalone) |
| AI Skills Library Template | Library | • Semantic Kernel integration • Strongly-typed DTOs • AI Extensions with DI • Comprehensive testing • Observability-first (telemetry, logging) • Typed error codes • Data redaction for compliance • Plugin orchestration |
• AI skills packages • Semantic Kernel plugins • AI-enabled libraries • Enterprise AI solutions |
None (standalone) |
| Blazor Component Library | Blazor | • Razor Class Library (RCL) • Design tokens integration • Tailwind preset support • UI kit agnostic • Accessibility support • Theme/density switching |
• Reusable UI components • Design system components • Shared UI patterns |
None (base component library) |
| Blazor Microfrontend Library | Blazor | • Blazor WASM packaged as Web Components • Independent deployment • Manifest-driven loading • Secure loading (SRI, CSP) • Built-in observability |
• Feature modules • Independent UI features • Microfrontend architecture |
Blazor Component Library |
| Blazor Shell Template | Blazor | • Portal-grade Blazor Web App • Navigation and blade layout • MFE hosting and registry • Tenant/edition policies • BFF proxy integration • SignalR support |
• SaaS portals • Admin dashboards • Multi-tenant applications |
Blazor Component Library, Blazor Microfrontend Library |
| Microservice Template | Service | • Clean Architecture • Domain-Driven Design (DDD) • Cloud-native patterns • REST API + gRPC support • MassTransit messaging • NHibernate persistence • OpenTelemetry observability • Health checks |
• Backend microservices • Domain services • Business logic services |
Library Template (optional), API Library Template (optional) |
| Identity Backend Template | Service | • ASP.NET Core Identity • User management • Role management • Claims management • Password management • Two-factor authentication • Clean Architecture, DDD |
• User identity store • User management service • Foundation for auth services |
None (base identity service) |
| Authorization Server Template | Service | • OAuth2 flows • OpenID Connect • Token management • Client management • Scope-based authorization |
• Identity provider • Authentication service • Token issuance |
Identity Backend Template |
| API Gateway Template | Service | • ASP.NET Core-based gateway • Header propagation • gRPC client integration • Rate limiting • Authentication (JWT, OIDC, API Key) • Data redaction • Service discovery • OpenTelemetry tracing |
• API entry point • Request routing • Cross-cutting concerns • Multi-tenant routing |
Library Template (optional), Identity Backend Template |
| Health Checks Aggregator Template | Service | • Health status aggregation • ASP.NET Core Health Checks • Health Checks UI Dashboard • Webhook notifications • Tag-based organization • Dependency graphs visualization • Readiness gates for orchestrators • REST API endpoints • SQL Server/InMemory storage • Clean Architecture, DDD |
• Centralized health monitoring • Multi-service health aggregation • Health dashboards • Orchestrator integration |
None (standalone service) |
| Platform Template | Platform | • Multi-service architecture • Shared infrastructure • Tenant management • Edition management • Platform capabilities |
• Complete SaaS platforms • Multi-tenant systems • Enterprise platforms |
Microservice Template, API Gateway Template, Authorization Server Template, Identity Backend Template, Documentation Template |
| Documentation Template | Documentation | • MkDocs integration • Material theme • CI/CD pipelines • Documentation best practices |
• Project documentation • API documentation • Technical documentation |
None (standalone) |
Detailed Dependency Diagrams¶
Library Templates Dependency Chain¶
graph LR
LT[Library Template<br/>Base .NET Library]
ALT[API Library Template<br/>Service Agent Libraries]
AISLT[AI Skills Library Template<br/>Semantic Kernel Integration]
style LT fill:#e1f5ff
style ALT fill:#e1f5ff
style AISLT fill:#e1f5ff
Blazor Templates Dependency Chain¶
graph TB
BCL[Blazor Component Library<br/>Base Components<br/>Design Tokens]
BMFL[Blazor Microfrontend Library<br/>Feature Modules]
BST[Blazor Shell Template<br/>Portal Application]
BCL -->|used by| BMFL
BCL -->|used by| BST
BMFL -->|used by| BST
style BCL fill:#fce4ec
style BMFL fill:#fce4ec
style BST fill:#fce4ec
Service Templates Relationships¶
graph TB
MST[Microservice Template<br/>Backend Services]
IBT[Identity Backend Template<br/>User Management]
AST[Authorization Server Template<br/>Token Issuance]
AGT[API Gateway Template<br/>API Entry Point]
HCAT[Health Checks Aggregator Template<br/>Health Monitoring]
IBT -->|foundation for| AST
IBT -->|used by| AGT
AGT -.->|routes to| MST
MST -.->|authenticates via| AST
MST -.->|reports health to| HCAT
style MST fill:#fff3e0
style IBT fill:#fff3e0
style AST fill:#fff3e0
style AGT fill:#fff3e0
style HCAT fill:#fff3e0
Platform Template Composition¶
graph TB
PT[Platform Template<br/>Multi-Service SaaS Platform]
subgraph "Platform Components"
MST[Microservice Template<br/>Business Services]
IBT[Identity Backend Template<br/>User Management]
AST[Authorization Server Template<br/>Identity Service]
AGT[API Gateway Template<br/>API Gateway]
HCAT[Health Checks Aggregator Template<br/>Health Monitoring]
DT[Documentation Template<br/>Documentation Site]
end
PT -->|composes| MST
PT -->|composes| IBT
PT -->|composes| AST
PT -->|composes| AGT
PT -->|composes| HCAT
PT -->|composes| DT
IBT -->|foundation for| AST
IBT -->|used by| AGT
MST -.->|reports health to| HCAT
style PT fill:#f3e5f5
style MST fill:#fff3e0
style IBT fill:#fff3e0
style AST fill:#fff3e0
style AGT fill:#fff3e0
style HCAT fill:#fff3e0
style DT fill:#e8f5e9
Usage Guidelines¶
When to Use Each Template¶
Library Templates¶
Library Template
- Use when creating reusable .NET libraries
- Ideal for infrastructure, domain, or shared utility libraries
- Choose when you need basic library structure with optional cross-cutting concerns
API Library Template
- Use when building client libraries for external APIs
- Ideal for third-party service integrations
- Choose when you need resilient HTTP clients with authentication
AI Skills Library Template
- Use when building AI-enabled libraries with Semantic Kernel
- Ideal for creating reusable AI skills and plugins
- Choose when you need enterprise-grade AI integration with observability and compliance
Blazor Templates¶
Blazor Component Library
- Use when creating reusable UI components
- Ideal for building a design system
- Choose as the foundation for all Blazor-based UI work
Blazor Microfrontend Library
- Use when building independently deployable UI features
- Ideal for microfrontend architecture
- Requires Blazor Component Library as a dependency
Blazor Shell Template
- Use when building portal applications
- Ideal for SaaS admin dashboards or multi-tenant portals
- Requires both Blazor Component Library and Blazor Microfrontend Library
Service Templates¶
Identity Backend Template
- Use when building user identity and management services
- Ideal for user management, roles, and claims
- Foundation for authentication and authorization services
- Required by Authorization Server Template and API Gateway Template
Authorization Server Template
- Use when building OAuth2/OpenID Connect identity providers
- Ideal for token issuance and client management
- Requires Identity Backend Template as a dependency
Microservice Template
- Use when building backend microservices
- Ideal for domain services following Clean Architecture and DDD
- Can optionally use Library Template or API Library Template for shared code
API Gateway Template
- Use as the entry point for all API requests
- Ideal for routing, authentication, rate limiting, and cross-cutting concerns
- Requires Identity Backend Template for user identity management
- Can optionally integrate with Authorization Server Template for token-based authentication
Health Checks Aggregator Template
- Use when building centralized health monitoring services
- Ideal for aggregating health status from multiple microservices
- Choose when you need unified health dashboards and orchestrator integration
Authorization Server Template
- Use when building identity and access management
- Ideal for OAuth2/OpenID Connect identity providers
- Can be used standalone or integrated with API Gateway Template
Platform Templates¶
Platform Template
- Use when building complete multi-service SaaS platforms
- Composes multiple microservices, API gateway, and authorization server
- Ideal for enterprise platforms requiring shared infrastructure
Documentation Templates¶
Documentation Template
- Use for project documentation sites
- Ideal for API documentation, technical guides, and project documentation
- Standalone template with no dependencies
Template Combination Examples¶
Example 1: Simple Microservice with API Client¶
Example 2: Blazor Portal Application¶
Blazor Shell Template
├── Blazor Component Library (base components)
└── Blazor Microfrontend Library (feature modules)
└── Blazor Component Library (component dependencies)
Example 3: Complete SaaS Platform¶
Platform Template
├── Microservice Template (multiple instances)
├── Identity Backend Template
├── Authorization Server Template
│ └── Identity Backend Template (required)
└── API Gateway Template
└── Identity Backend Template (required)
Example 4: Microservice with Shared Libraries¶
Microservice Template
├── Library Template (shared domain/infrastructure)
└── API Library Template (external service clients)
Dependency Rules¶
Direct Dependencies (Required)¶
- Blazor Shell Template requires Blazor Component Library and Blazor Microfrontend Library
- Blazor Microfrontend Library requires Blazor Component Library
- Authorization Server Template requires Identity Backend Template
- API Gateway Template requires Identity Backend Template
- Platform Template requires Microservice Template, API Gateway Template, Authorization Server Template, Identity Backend Template, and Documentation Template
Optional Dependencies (May Use)¶
- Microservice Template may use Library Template for shared code
- Microservice Template may use API Library Template for external service clients
- API Gateway Template may use Library Template for shared utilities
- API Gateway Template may use Authorization Server Template for token-based authentication
No Dependencies (Standalone)¶
- Library Template - Base template with no dependencies
- API Library Template - Standalone service agent library
- AI Skills Library Template - Standalone AI skills library
- Blazor Component Library - Base component library
- Identity Backend Template - Base identity service (no dependencies)
- Health Checks Aggregator Template - Standalone health aggregation service
- Documentation Template - Standalone documentation site
Template Features Summary¶
Common Features Across Templates¶
Most templates include:
- CI/CD Integration - Pre-configured Azure DevOps pipelines
- Testing Support - Unit tests, integration tests, architecture tests
- Observability - OpenTelemetry, logging, metrics
- Best Practices - Code analysis, coding standards, documentation
- Multi-Targeting - Support for .NET 8 and .NET 9
- Docker Support - Containerization capabilities (where applicable)
Template-Specific Features¶
Each template includes specialized features for its domain:
- Library Templates: NuGet packaging, multi-targeting, optional cross-cutting concerns
- Blazor Templates: Design tokens, microfrontend architecture, portal features
- Service Templates: Clean Architecture, DDD, cloud-native patterns, messaging, identity management
- Platform Templates: Multi-tenancy, shared infrastructure, platform capabilities
- Documentation Templates: MkDocs, Material theme, documentation workflows
Getting Started¶
To get started with any template:
- Install the template from Azure DevOps Artifacts
- Create a new project using
dotnet newor Visual Studio - Review the generated documentation in the template's Docs folder
- Customize according to your project needs
- Follow the template's architecture and best practices
For detailed information about each template, refer to:
- Library Template Overview
- API Library Template Overview
- Blazor Templates HLD
- Microservice Template Overview
- API Gateway Template Overview
- Authorization Server Template Overview
- Platform Template Overview
- Documentation Template Overview
Real-World Example: Audit Trail Platform (ATP)¶
The ConnectSoft Audit Trail Platform (ATP) is a comprehensive SaaS solution built entirely using ConnectSoft templates. This example demonstrates how multiple templates work together to create a production-ready, enterprise-grade platform.
ATP Solution Architecture from Templates¶
The following diagram shows how ATP was generated using ConnectSoft templates:
graph TB
subgraph "Templates Used"
PT[Platform Template]
MST[Microservice Template]
AGT[API Gateway Template]
IBT[Identity Backend Template]
AST[Authorization Server Template]
LT[Library Template]
ALT[API Library Template]
DT[Documentation Template]
AISLT[AI Skills Library Template]
BCL[Blazor Component Library]
BMFL[Blazor Microfrontend Library]
BST[Blazor Shell Template]
end
subgraph "ATP Platform Components"
ATP_PLATFORM[ATP Platform Infrastructure]
subgraph "Backend Services"
ATP_INGESTION[ATP Ingestion Service]
ATP_QUERY[ATP Query Service]
ATP_POLICY[ATP Policy Service]
ATP_INTEGRITY[ATP Integrity Service]
ATP_PROJECTION[ATP Projection Service]
ATP_EXPORT[ATP Export Service]
ATP_ADMIN[ATP Admin Service]
end
ATP_GATEWAY[ATP API Gateway]
ATP_IDENTITY[ATP Identity Service]
ATP_AUTH[ATP Authorization Server]
subgraph "Libraries & SDKs"
ATP_CORE[ATP.Core Library]
ATP_EXTENSIONS[ATP.Extensions Library]
ATP_CSHARP_SDK[ATP C# SDK]
ATP_JS_SDK[ATP JavaScript SDK]
end
subgraph "Frontend"
ATP_ADMIN_PORTAL[ATP Admin Portal]
ATP_ANALYTICS[ATP Analytics Dashboard]
ATP_COMPLIANCE[ATP Compliance Dashboard]
end
ATP_DOCS[ATP Documentation Site]
ATP_AI[ATP AI Analytics]
end
%% Platform Template generates infrastructure
PT -->|generates| ATP_PLATFORM
%% Microservice Template generates all backend services
MST -->|generates| ATP_INGESTION
MST -->|generates| ATP_QUERY
MST -->|generates| ATP_POLICY
MST -->|generates| ATP_INTEGRITY
MST -->|generates| ATP_PROJECTION
MST -->|generates| ATP_EXPORT
MST -->|generates| ATP_ADMIN
%% API Gateway Template
AGT -->|generates| ATP_GATEWAY
%% Identity Templates
IBT -->|generates| ATP_IDENTITY
AST -->|generates| ATP_AUTH
IBT -->|required by| AST
%% Library Templates
LT -->|generates| ATP_CORE
LT -->|generates| ATP_EXTENSIONS
ALT -->|generates| ATP_CSHARP_SDK
ALT -->|generates| ATP_JS_SDK
%% Blazor Templates
BCL -->|generates| ATP_ADMIN_PORTAL
BMFL -->|generates| ATP_ANALYTICS
BMFL -->|generates| ATP_COMPLIANCE
BST -->|generates| ATP_ADMIN_PORTAL
BCL -->|used by| BMFL
BCL -->|used by| BST
BMFL -->|used by| BST
%% Documentation Template
DT -->|generates| ATP_DOCS
%% AI Skills Library Template
AISLT -->|generates| ATP_AI
%% Platform Template dependencies
PT -->|uses| MST
PT -->|uses| AGT
PT -->|uses| IBT
PT -->|uses| AST
%% Service dependencies
ATP_GATEWAY -->|routes to| ATP_INGESTION
ATP_GATEWAY -->|routes to| ATP_QUERY
ATP_GATEWAY -->|routes to| ATP_POLICY
ATP_GATEWAY -->|routes to| ATP_EXPORT
ATP_GATEWAY -->|authenticates via| ATP_AUTH
ATP_GATEWAY -->|uses| ATP_IDENTITY
ATP_INGESTION -.->|uses| ATP_CORE
ATP_QUERY -.->|uses| ATP_CORE
ATP_POLICY -.->|uses| ATP_EXTENSIONS
ATP_ADMIN_PORTAL -->|calls| ATP_GATEWAY
ATP_ANALYTICS -->|calls| ATP_GATEWAY
ATP_COMPLIANCE -->|calls| ATP_GATEWAY
%% Styling
classDef template fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef platform fill:#f3e5f5,stroke:#4a148c,stroke-width:2px
classDef service fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef library fill:#e8f5e9,stroke:#1b5e20,stroke-width:2px
classDef frontend fill:#fce4ec,stroke:#880e4f,stroke-width:2px
classDef docs fill:#fff9c4,stroke:#f57f17,stroke-width:2px
class PT,MST,AGT,IBT,AST,LT,ALT,DT,AISLT,BCL,BMFL,BST template
class ATP_PLATFORM platform
class ATP_INGESTION,ATP_QUERY,ATP_POLICY,ATP_INTEGRITY,ATP_PROJECTION,ATP_EXPORT,ATP_ADMIN,ATP_GATEWAY,ATP_IDENTITY,ATP_AUTH service
class ATP_CORE,ATP_EXTENSIONS,ATP_CSHARP_SDK,ATP_JS_SDK,ATP_AI library
class ATP_ADMIN_PORTAL,ATP_ANALYTICS,ATP_COMPLIANCE frontend
class ATP_DOCS docs
ATP Template Usage Summary¶
| Template | ATP Component(s) Generated | Purpose |
|---|---|---|
| Platform Template | ATP Platform Infrastructure | Multi-tenant SaaS platform foundation |
| Microservice Template | Ingestion, Query, Policy, Integrity, Projection, Export, Admin Services | All backend business logic services |
| API Gateway Template | ATP API Gateway | Single entry point, routing, authentication |
| Identity Backend Template | ATP Identity Service | User and role management |
| Authorization Server Template | ATP Authorization Server | OAuth2/OIDC token issuance |
| Library Template | ATP.Core, ATP.Extensions | Shared domain and infrastructure libraries |
| API Library Template | ATP C# SDK, ATP JavaScript SDK | Client libraries for consuming ATP APIs |
| Blazor Component Library | Base UI components | Reusable UI components for admin portal |
| Blazor Microfrontend Library | Analytics Dashboard, Compliance Dashboard | Independent feature modules |
| Blazor Shell Template | ATP Admin Portal | Portal application hosting microfrontends |
| Documentation Template | ATP Documentation Site | Technical documentation and guides |
| AI Skills Library Template | ATP AI Analytics | AI-powered insights and analytics |
Key Benefits Demonstrated¶
ATP showcases the power of template-driven development:
- Rapid Development: All 7+ microservices generated from the same Microservice Template in minutes
- Consistency: All services follow identical architecture, patterns, and conventions
- Quality: Built-in Clean Architecture, DDD, observability, and security from templates
- Maintainability: Standardized structure simplifies onboarding and maintenance
- Scalability: Platform Template provides multi-tenant infrastructure out of the box
- Developer Experience: SDKs generated from API Library Template for easy integration
- Documentation: Complete documentation site generated from Documentation Template
Template Relationships in ATP¶
- Platform Template orchestrates all other templates
- Microservice Template generates all backend services (7+ instances)
- API Gateway Template routes to all microservices and integrates with Identity
- Identity Backend Template provides foundation for Authorization Server
- Library Templates provide shared code used across services
- Blazor Templates create a cohesive frontend experience
- Documentation Template provides comprehensive documentation
This real-world example demonstrates how ConnectSoft templates enable rapid development of enterprise-grade SaaS platforms with consistency, quality, and maintainability.
Conclusion¶
ConnectSoft templates provide a comprehensive foundation for building modern .NET applications. Understanding the dependencies and relationships between templates helps you make informed decisions about which templates to use and how to combine them effectively.
The Audit Trail Platform (ATP) example demonstrates how templates work together in practice to create production-ready, enterprise-grade solutions.
For questions or support, refer to the individual template documentation or contact the ConnectSoft DevOps team.