Diese Anwendung ist ein modulares Benutzerverwaltungssystem, bestehend aus einem Blazor WebAssembly Frontend und einer ASP.NET Core WebAPI. Ziel ist es, Benutzer zu suchen, in Tabs zu öffnen und Detailinformationen anzuzeigen.
Technologie-Stack
- .NET 9 (C#)
- Blazor WebAssembly (Client)
- ASP.NET Core WebAPI (Server)
- Architektur: Repository Pattern (Entkopplung von Logik und Datenquelle)
Die Anwendung folgt einer klaren Schichtung ("Clean Architecture Light"), sodass die Datenquelle später problemlos austauschbar ist (z. B. JSON → Microsoft Graph).
graph LR
Frontend[Blazor WebApp] -- HTTP GET --> API[WebAPI Controller]
API -- ruft auf --> Interface[IUserService]
Interface -- implementiert von --> Service[FileUserService]
Service -- liest --> JSON[users.json]
Diese Bibliothek wird sowohl vom Frontend als auch vom Backend genutzt, um Typsicherheit zu gewährleisten.
- Zentrales Datenmodell
Idist einstring, um GUIDs aus Azure AD / Microsoft Graph zu unterstützen- Enthält u. a.:
- IdentificationNumber
- Faculty
- Role
- Department
Definiert den Vertrag für den Datenzugriff:
SearchAsync(string term)– Sucht BenutzerGetByIdAsync(string id)– Lädt einen Benutzer anhand der ID
Die WebAPI stellt die Daten bereit und ist vollständig von der Datenquelle entkoppelt.
- Konfiguration von CORS (Zugriff aus Blazor)
- Dependency Injection für den aktiven User-Service
- REST-Endpunkte:
GET api/user?term=...GET api/user/{id}
- Nutzt ausschließlich
IUserService
- FileUserService: Liest Benutzerdaten aus
users.json - GraphUserService: Vorbereitung für Microsoft Graph Integration
- Mock-Datenbank für Entwicklungs- und Testzwecke
Das Benutzerinterface läuft vollständig im Browser.
- Globaler Anwendungszustand
- Verwaltung offener Tabs
- Persistenz via
localStorage - Maximal 8 offene Tabs (ältester wird automatisch geschlossen)
- Suchleiste mit Live-Suche über die API
- Anzeige und Verwaltung offener Tabs
- Anzeige von Benutzerdetails
- Dynamisches Nachladen bei Tab-Wechsel (
OnParametersSetAsync)