Architecture

The Ticketing Reference Application uses a deliberately straightforward architecture appropriate to the size and complexity of the application.

Application Architecture

Angular SPA
    |
    | HTTPS / REST
    v
ASP.NET Core API
    |
    | Entity Framework Core
    v
Azure SQL
ReferenceProjectsDb
ticketing schema

Angular Client

The Angular single-page application provides the user interface for:

Environment-specific configuration allows local development to use the locally hosted API while the production build calls the Azure-hosted API.

ASP.NET Core API

The REST API owns the application’s business rules and persistence operations.

The API provides endpoints for:

Validation includes ticket status transitions, priority rules, assignment requirements and optimistic concurrency checks.

Data Access

Entity Framework Core provides direct access to the application’s data through AppDbContext.

The deployed application uses Azure SQL, with application-owned objects isolated within the:

ticketing

schema of the shared:

ReferenceProjectsDb

database.

EF Core migrations manage the database schema, with migration history maintained independently for the Ticketing application.

Azure Architecture

                    Internet
                       |
          +------------+------------+
          |                         |
          v                         v
 Azure Static Web Apps        Azure App Service
     Angular SPA               ASP.NET Core API
                                      |
                                      | EF Core
                                      v
                                  Azure SQL
                              ReferenceProjectsDb
                               ticketing schema

                              Application Insights
                                      |
                                      v
                                Log Analytics

The application uses a combination of application-owned and shared platform resources.

Application-Owned Resources

Shared Platform Resources

This allows several reference applications to share cost-effective Azure platform infrastructure while retaining separation of application-specific resources and database schemas.

Infrastructure as Code

Azure infrastructure is defined using Bicep.

The subscription-level deployment creates the application’s resource group and uses resource-group-scoped Bicep modules to deploy application resources.

Existing shared platform resources are referenced rather than recreated.

CI/CD

Azure DevOps pipelines provide separate workflows for:

Infrastructure deployments use Bicep build, validation and What-If operations before deployment.