DevArchitecture

June 25, 2026 · View on GitHub

Languages: English | Türkçe (Turkish)


DevArchitecture is an open-source framework for rapid application development using a layered .NET architecture and a shared WebAPI contract. This repository includes a .NET 10 backend, a /api/v1 REST surface, and multiple admin clients (Vue, Angular, React, Blazor). Under UiPreparation you will also find legacy Angular and Flutter samples.


Prerequisites

ToolVersion / notes
.NET SDK10.x (TargetFramework: net10.0)
Node.jsLTS (for most clients)
npmShips with Node
Flutter SDKFor UiPreparation/FlutterUi

For local HTTPS (API and clients), run once:

dotnet dev-certs https --trust

Backend (WebAPI)

Project versionWebAPI/WebAPI.csprojVersion 1.0.0, TargetFramework net10.0
NuGetCentral versions: Directory.Packages.props

Install / build

dotnet build

Run (development)

dotnet watch run --project ./WebAPI/WebAPI.csproj
  • Swagger (Development): https://localhost:5101/swagger
  • HTTP: 5100, HTTPS: 5101 (WebAPI/Properties/launchSettings.json → profile Dev_Development)
  • Default API base: https://localhost:5101/api/v1

Clients — clients/

Quick reference (details in the sections below):

FolderInstallDev commandTypical URL
clients/vue-adminnpm installnpm run devhttp://localhost:5174
clients/angular-adminnpm installnpm starthttp://localhost:4200
clients/react-adminnpm installnpm run devhttp://localhost:5173
clients/blazor-admindotnet run --project ./clients/blazor-admin/Blazor.Admin.csprojSee console URL
clients/blazor-admin-serverdotnet run --project ./clients/blazor-admin-server/Blazor.Admin.Server.csproje.g. https://localhost:7003

Vue — clients/vue-admin

PurposePrimeVue + Aura themed admin UI
Installcd clients/vue-adminnpm install
Developmentnpm run dev (Vite vite.config.ts: default port 5174, next free port if busy)
Production buildnpm run build
Previewnpm run preview

Dependency versions (package.json): vue ^3.5.32, primevue ^4.5.5, @primeuix/themes ^2.0.3, primeicons ^7.0.0, vue-router ^5.0.4, axios ^1.15.0, jwt-decode ^4.0.0, vite ^8.0.4, typescript ~6.0.2

API base: src/config/modules.tsAPI_BASE_URL = https://localhost:5101/api/v1

Angular — clients/angular-admin

PurposePrimeNG + Aura themed admin UI (recommended for new Angular admin work)
Installcd clients/angular-adminnpm install
Developmentnpm start (ng serve --poll 1000, default 4200)
Production buildnpm run build

Dependency versions (package.json): @angular/* ^19.2.x, primeng ^19.1.4, @primeuix/themes ^2.0.3, primeicons ^7.0.0, rxjs ~7.8.0, zone.js ~0.15.0, typescript ~5.7.2, @angular/cli ^19.2.24

API base: src/environments/environment.tsapiBaseUrl = https://localhost:5101/api/v1

React — clients/react-admin

PurposePrimeReact admin UI (Lara green light/dark)
Installcd clients/react-adminnpm install
Developmentnpm run dev (Vite default port 5173)
Production buildnpm run build
Lintnpm run lint

Dependency versions (package.json): react / react-dom ^19.2.4, primereact ^10.9.7, @primeuix/themes ^2.0.3, primeicons ^7.0.0, react-router-dom ^7.14.1, axios ^1.15.0, vite ^8.0.4, typescript ~6.0.2

API base: src/config/modules.tsAPI_BASE_URL = https://localhost:5101/api/v1

Blazor WebAssembly — clients/blazor-admin

PurposeWASM client using Radzen components against the WebAPI
InstallNuGet dependencies; dotnet restore or building the solution is enough
Rundotnet run --project ./clients/blazor-admin/Blazor.Admin.csproj
Publishdotnet publish ./clients/blazor-admin/Blazor.Admin.csproj -c Release

Versions: TargetFramework net10.0; Radzen.Blazor version in Directory.Packages.props (e.g. 6.0.0); Microsoft.AspNetCore.Components.WebAssembly etc. 10.0.6 in the same file.

API base: Services/ApiClient.csBaseUrl = https://localhost:5101/api/v1

For local WASM / HTTPS issues, running clients/blazor-admin-server may be more reliable (see project notes).

Blazor Server (host) — clients/blazor-admin-server

PurposeHost the same Blazor WASM app via ASP.NET Core
Rundotnet run --project ./clients/blazor-admin-server/Blazor.Admin.Server.csproj
URLsProperties/launchSettings.json: e.g. https://localhost:7003, http://localhost:5062 (https profile)

UiPreparation samples

Angular (legacy) — UiPreparation/UI

StatusOlder Material Dashboard sample; prefer clients/angular-admin for new work.
Installcd UiPreparation/UInpm install
Engine requirementpackage.jsonengines: Node ≥ 20.11.1, npm ≥ 10.5.0
Developmentnpm start (ng serve, default http://localhost:4200)
Production buildnpm run build
Package name / versionmaterial-dashboard-angular 2.5.0

Notable dependencies (package.json): @angular/core ^19.2.15, @angular/material ^19.2.19, @angular/cdk ^19.2.19, bootstrap 4.5.2, @ngx-translate/core ^15.0.0, @auth0/angular-jwt ^4.2.0, rxjs ^7.8.2, typescript ~5.5.4, @angular/cli ^19.2.17

API: src/environments/environment.tsgetApiUrl = https://localhost:5101/api/v1

Port 4200 conflicts if you run clients/angular-admin at the same time; stop one or use ng serve --port.

Flutter — UiPreparation/FlutterUi/flutter_devarchitecture

PurposeMobile / multi-platform sample (Bloc, Firebase, etc.)
Installcd UiPreparation/FlutterUi/flutter_devarchitectureflutter pub get
Runflutter run (targets: flutter devicesflutter run -d chrome / -d macos / Android emulator)
SDKpubspec.yamlenvironment.sdk: >=3.4.1 <4.0.0 (comment: tested 3.22.3)
App versionversion 0.1.0

Notable dependencies (pubspec.yaml): flutter_bloc 8.1.6, http 1.3.0, flutter_modular 6.3.4, get_it 8.0.0, intl 0.20.2, Firebase packages (e.g. firebase_core 3.8.1, cloud_firestore 5.5.0), data_table_2 2.5.15, lottie 3.1.2, jwt_decoder 2.0.1


Shared features and theming

  • API: JWT, versioned REST (/api/v1), shared contract for translations / language codes and admin modules.
  • Look & feel (clients/*): Sakai-style shell (emerald primary, slate neutrals). Vue / Angular / React use dark mode via localStorage key devarch.darkMode; Blazor aligns Radzen theme variables to the same palette.
  • NuGet: Directory.Packages.props centralizes package versions.

Version History

VersionDateHighlights
v2.0.02026-06-24Security fixes, API integration tests, React/Angular/Vue E2E tests, Swagger JWT auth
v1.1.02026-06-24Rate limiting, global exception handling, health checks, pagination, response caching
v1.0.02026-04-20Initial release: .NET 10, Vue/Angular/React/Blazor clients, JWT auth, CQRS

Testing

LayerFrameworkRun command
Backend unitNUnitdotnet test
Backend APIWebApplicationFactorydotnet test --filter "WebAPI"
Vue unitVitestcd clients/vue-admin && npx vitest run
React unitVitestcd clients/react-admin && npx vitest run
Angular unitJasminecd clients/angular-admin && npx ng test --watch=false
E2E (Vue/React/Angular)Playwrightcd e2e && npm test

Support this project

If you find DevArchitecture useful, please consider starring this repository.