Technologies
This page maps technology to purpose. Exact package versions belong in executable manifests and lockfiles rather than a second manually maintained version inventory.
Backend
| Technology | Role | Version source |
|---|---|---|
| .NET / ASP.NET Core / C# | Service hosts, shared application/domain code | global.json, project target frameworks |
| FastEndpoints / Swagger | REST endpoints and OpenAPI | WebApi, IdentityApi |
| FastEndpoints Remote Messaging / MessagePack | HTTP/2 remote commands and serialization | GrpcServer, contracts |
| EF Core / Npgsql / Dapper | Shared PostgreSQL schema, ORM and SQL comparisons | Infrastructure |
| Open.IdentityServer | OpenID Connect provider: authorization code with PKCE, client credentials, refresh tokens, revocation, end session | IdentityApi |
| Argon2id | Password hashing | Infrastructure’s Konscious.Security.Cryptography.Argon2 reference |
| Delta | Timestamp-based conditional HTTP requests | Infrastructure |
| Mapperly / Dynamic LINQ | Generated DTO mapping and selected EF queries | WebApi / GrpcServer project files |
| OpenTelemetry | Traces, metrics and logs; ASP.NET Core, HTTP, SQL and runtime instrumentation | Service project files and telemetry extensions |
The Domain project has no external package references. The shared Application pilot begins with project creation. Dapper.AOT is an experiment dependency, not a claim that every repository is source-generated or Native AOT-compatible.
Two static frontend projects
| Project | Stack | Authoritative versions |
|---|---|---|
| WebClient | Astro, native TypeScript, Tailwind CSS; Vitest/jsdom tests; Node static server and telemetry | package.json, bun.lock |
| Documentation | Astro, TypeScript, Tailwind’s Vite plugin, sitemap integration | package.json, bun.lock |
The projects have independent dependency graphs. Use a real supported Node runtime for Astro and Bun for package installation/scripts. A manifest range states allowed versions; the lockfile records the resolved installation. See Getting Started and the docs contributor guide.
Tests and infrastructure
- xUnit + NetArchTest + FluentAssertions: assembly architecture checks.
- NUnit + FakeItEasy + Shouldly: application, endpoint and security unit tests.
- xUnit v3 +
WebApplicationFactory(Microsoft.AspNetCore.Mvc.Testing) + Testcontainers.PostgreSql: isolated HTTP/gRPC/PostgreSQL contracts with real WebApi, GrpcServer and IdentityApi hosts. - Docker Compose: minimal lab, legacy load-balanced development example and standalone production.
- PostgreSQL, NGINX, Grafana LGTM and OpenTelemetry Collector: image tags live in the Compose files.
- GitHub Actions, GHCR and Hostinger Docker Manager: build, immutable image publication and deployment. Pages uses its own pinned reusable workflow.
Publishing options
AOT enables an experimental Native AOT path; normal releases disable it. The legacy TRIM switch enables ReadyToRun/composite/self-contained output, not IL trimming. EXTRA_OPTIMIZE changes selected runtime switches and symbol settings while preserving EventSource and HTTP propagation. See Deployment for the current release gates and multi-architecture limitations.