couplage de DTO entre les couches dans une architecture microservice
Bonjour
Je ne suis pas un expert danc aillez une indulgence à l'égard de mon questionnement si je dis une bêtise.
J'ai un projet Asp.net core (.Net 5) et j'ai une architecture Winform pour le Frontend, et le backend { couche service (contrôleurs Web API), couche application (logique) "dll", couche domaine"dll", couche Repository (persistance) "dll" }
L'utilisateur envoie une DTO vers l'api et ceci ce traduit automatiquement vers une DTO local dans le contrôleur et ceci se fait d'une manière transparente "mapping json via le middleware"
Maintenant mon contrôleur envoie cette DTO local vers la couche application via le pattern Mediator et une conversion manuelle via Automapper se fait dans cette couche vers un model du Domain pour être persisté dans la bdd ensuite via la couche repository.
Il y à donc une dépendance entre la couche service et la couche Application et un couplage pour pouvoir utiliser le model DTO passé en argument et ceci me laisse perplexe.
Donc est ce que c'est tolérable ce couplage ? si oui bon bah je laisse comme ça.
Si non j'aurai aimé un moyen de faire le parse automatiquement comme le fait le backend (contrôleur via le middleware) sans pour autant que le type sois référencé.
Si comme si j'aimerai faire passer une DTO vers une autre application sans pour autant que le type sois référencé dans l'autre coté. :lol:
Il y à la possibilité de le convertir en json, ceci va résoudre le problème mais je ne suis pas fan et j'aimerai un autre moyen SI ça existe.
Il y à une autre possibilité d'utiliser un model dans le Domaine qui est partagé entre tous les couche comme ça tous le monde est content mais bon j'aimerai aussi éviter cette dépendances et aussi des fois j'utiliser des version minimal du model original donc je dois limité les propriété et ne sois pas tous exposés "surtout lors de la lecture j'utilise le model original, pour l'écriture j'utilise un model spécifique limité "sans le id, dateDeCreation, dateDedition" (CQRS)
Peut être qu'il y à un paterne qui résous ce problème.
Merci d'avance