3.2 KiB
Application Design Plan — SlpModularCms.Api
Stap 1: Analyse & Voorbereiding
- Requirements en User Stories analyseren op component-grenzen.
- Architecturale stijl (Clean Architecture) vertalen naar componenten.
Stap 2: Ontwerp van Componenten & Verantwoordelijkheden
- Core Framework Component: Verantwoordelijk voor module-registratie, gedeelde interfaces en cross-cutting concerns.
- Identity Module: Gebruikersbeheer, authenticatie en de hiërarchische RBAC logica.
- Availability Module: De stub implementatie voor beschikbaarheidscontrole.
- Web API Shell: Het startpunt dat alles samenbrengt en Swagger host.
- Genereer
aidlc-docs/inception/application-design/components.md.
Stap 3: Interface & Method Design
- Definieer
IModulecontract voor module-initialisatie. - Definieer
IAvailabilityServicecontract. - Definieer Identity services (bijv.
IUserService,IAuthService). - Genereer
aidlc-docs/inception/application-design/component-methods.md.
Stap 4: Service Orchestratie & Dependency Mapping
- Ontwerp het mechanisme voor het laden van modules (Dependency Injection patronen).
- Map de afhankelijkheden tussen Core, Modules en de API Shell.
- Genereer
aidlc-docs/inception/application-design/services.md. - Genereer
aidlc-docs/inception/application-design/component-dependency.md.
Stap 5: Consolidatie
- Genereer
aidlc-docs/inception/application-design/application-design.md. - Valideer op consistentie met de hiërarchische rollen (RBAC) en modulaire eisen.
Vragen voor Application Design
Beantwoord de volgende vragen om het ontwerp te verfijnen. Vul je keuze in na de [Answer]: tag.
Vraag 1: Module Loading Strategie
Hoe moeten modules technisch geladen worden door het raamwerk? A) Statische referentie: Modules zijn project-referenties in de API Shell (.csproj references). B) Dynamisch laden: Modules worden als DLL's uit een folder geladen bij opstarten. C) Hybride: Statische referentie voor core modules, dynamisch voor optionele modules. X) Anders: ...
Vraag 2: Identity Locatie
Wordt Identity gezien als een kernonderdeel van het framework of als een uitwisselbare module? A) Kernonderdeel (Core): Altijd aanwezig, diep geïntegreerd. B) Module: Een aparte .csproj die optioneel/vervangbaar is. X) Anders: ...
Vraag 3: Clean Architecture Diepte
Welke project-structuur heeft de voorkeur voor de modules? A) Eenvoudig: Eén project per module met interne folderstructuur (API, Logic, Data). B) Volledige Clean Architecture: Meerdere projecten per module (bijv. Identity.Domain, Identity.Application, Identity.Infrastructure). C) API-First: Modules bevatten alleen Controllers en Application logica, maken gebruik van gedeelde Core Data laag. X) Anders: ...
Vraag 4: RBAC Implementatie
Hoe moet de hiërarchische RBAC (Owner > Admin > User) technisch worden afgedwongen?
A) ASP.NET Core Policies: Gebruik maken van AuthorizationPolicy die de hiërarchie controleert.
B) Custom Middleware: Een interceptor die bij elk request de rollen en hiërarchie valideert.
C) Service-level checks: De logica wordt handmatig in de services aangeroepen voor elke actie.
X) Anders: ...