Files

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 IModule contract voor module-initialisatie.
  • Definieer IAvailabilityService contract.
  • 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: ...