Skip to content

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:

  1. Library Templates - Reusable components and packages
  2. Blazor Templates - Frontend UI components and applications
  3. Service Templates - Backend services and infrastructure
  4. Platform Templates - Multi-service SaaS platforms
  5. 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
Hold "Alt" / "Option" to enable pan & zoom

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
Hold "Alt" / "Option" to enable pan & zoom

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
Hold "Alt" / "Option" to enable pan & zoom

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
Hold "Alt" / "Option" to enable pan & zoom

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
Hold "Alt" / "Option" to enable pan & zoom

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

Microservice Template
  └── API Library Template (for calling external services)

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:

  1. Install the template from Azure DevOps Artifacts
  2. Create a new project using dotnet new or Visual Studio
  3. Review the generated documentation in the template's Docs folder
  4. Customize according to your project needs
  5. Follow the template's architecture and best practices

For detailed information about each template, refer to:

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
Hold "Alt" / "Option" to enable pan & zoom

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:

  1. Rapid Development: All 7+ microservices generated from the same Microservice Template in minutes
  2. Consistency: All services follow identical architecture, patterns, and conventions
  3. Quality: Built-in Clean Architecture, DDD, observability, and security from templates
  4. Maintainability: Standardized structure simplifies onboarding and maintenance
  5. Scalability: Platform Template provides multi-tenant infrastructure out of the box
  6. Developer Experience: SDKs generated from API Library Template for easy integration
  7. 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.