Richtlijnen voor keuze van implementatie binnen Dataverse met architecturale beslisprincipes.
Binnen het Dataverse / Dynamics 365 platform zijn er meerdere manieren om business logica te implementeren.
De belangrijkste opties zijn:
Het maken van de juiste keuze bepaalt direct:
π Deze pagina is het architecturale beslisframework voor het kiezen van de juiste implementatietechniek.
π UI bepaalt gedrag, Process stuurt flow, Domain bepaalt waarheid
π Kies altijd op basis van runtime context, dataconsistentie en lifecycle impact
Niet op basis van wat het snelst of eenvoudigst te implementeren is.
π UI bepaalt gedrag
π Process stuurt flow
π Domain bepaalt waarheid
Gebruik deze volgorde als standaard beslisroute:
π Start zo hoog mogelijk, maar verplaats naar beneden wanneer noodzakelijk
| Optie | Runtime | Laag | Doel |
|---|---|---|---|
| Business Rules | Client / Dataverse | UI | Declaratieve validatie en veldgedrag |
| JavaScript | Client (browser) | UI | Interactieve UX logica |
| PCF Control | Client (browser) | UI | Custom UI componenten |
| Cloud Flow | Power Platform runtime | Process | Automatisering & integratie |
| Plugin | Dataverse server pipeline | Domain | Transactionele business logica |
| Custom API | Dataverse server | Domain API | Herbruikbare business operaties |
π Domain layer is leidend voor dataconsistentie en businesslogica
Business rules zijn de veiligste en meest onderhoudbare vorm van UI-logica.
π Gebruik voor simpel, declaratief en UI-gedreven gedrag
JavaScript is UI-only en niet betrouwbaar als business enforcement layer
π Gebruik alleen voor UX en interactie
PCF Controls zijn custom frontend componenten die meer flexibiliteit bieden dan standaard UI.
π Gebruik voor geavanceerde en herbruikbare UI componenten
Flows zijn proces- en integratielaag, geen domain layer. Flows orchestreren logica, maar definiΓ«ren deze niet.
π Gebruik voor automation en integratie
Plugins draaien in de Dataverse transaction pipeline
π Gebruik voor core business rules en domain enforcement
Custom APIs zijn domain operations als service
π Gebruik voor herbruikbare business operaties
| Vraag | Keuze |
|---|---|
| Is het UI-configuratie of veldgedrag? | Business Rule |
| Is het UX-interactie of standaard UI gedrag? | Business Rule / JavaScript |
| Is een geavanceerde of herbruikbare UI component nodig? | PCF Control |
| Is het proces of integratie? | Cloud Flow |
| Is het transactioneel of performance-kritisch? | Plugin |
| Moet het herbruikbaar zijn als operatie? | Custom API |
π Plugin wint bij:
π Business Rule wint tenzij:
π Custom API wint bij:
β Start zo hoog mogelijk in de stack
β Verplaats logica alleen omlaag als nodig
β Houd domain logic in plugins/APIs
β Houd UI logic in Business Rules/JS
β Houd flows beperkt tot proces & integratie
Bij het ontwerpen van oplossingen binnen het Power Platform (of in het algemeen) geldt een belangrijke vuistregel: plaats logica op de juiste plek in de architectuur, afhankelijk van het doel en de verantwoordelijkheid.
π UI = declaratief
De user interface beschrijft wat de gebruiker ziet en hoe de applicatie zich visueel gedraagt.
Gebruik hier eenvoudige, declaratieve logica (zoals Power Fx) voor zichtbaarheid, validatie en interactie.
De UI bevat geen complexe businesslogica, maar richt zich op presentatie en gebruikerservaring.
π Process = orchestration
De proceslaag (bijvoorbeeld Power Automate) stuurt de volgorde van acties aan.
Hier wordt bepaald welke stappen worden uitgevoerd, in welke volgorde en onder welke voorwaarden.
Deze laag orkestreert systemen, maar bevat bij voorkeur geen complexe businessregels.
π Domain = enforcement
De domeinlaag is verantwoordelijk voor de kern van de businesslogica.
Hier worden regels afgedwongen, zoals validaties, berekeningen en constraints.
Deze logica moet altijd gelden, ongeacht of de actie via UI, API of integratie wordt gestart.
π API = reuse
De API-laag maakt functionaliteit herbruikbaar en toegankelijk.
Door logica via APIs beschikbaar te stellen, kan deze consistent worden gebruikt door meerdere consumers (UI, processen, externe systemen).
Dit voorkomt duplicatie en verhoogt onderhoudbaarheid.
π‘ Samenvatting:
Plaats logica zo laag mogelijk in de architectuur.
Hoe dichter bij de domain layer, hoe beter de consistentie, herbruikbaarheid en beheersbaarheid van je oplossing.
De keuze van implementatietechniek bepaalt:
π Door een consistente decision hierarchy te volgen ontstaat een uniform, schaalbaar en controleerbaar Dataverse architecture model.