Bonjour,
Pour la création de notre logiciel ERP nous utilisons C# (WPF), Entity Framework (DB First, base SQL Server Pro) ainsi que le framework MVVM Light comme base de travail.
La structure de notre DB est complète, les différentes clés étrangères sont définies pour chaque table. Nos "Models" sont générés par Entity Framework.
J'aurai aimé avoir votre avis sur la meilleure manière de structurer la couche métier, avec un exemple concret. (ce type de cas se rencontrera dans de nombreux exemples)
Exemple : Mouvement de stock.
Le mouvement de stock sera utilisé dans différents modules (entrée en magasin, sortie de magasin, transfert de magasin, inventaire, expéditions, réceptions, ...) mais aura une base commune : il reçoit un paramètre "item" (reprend le code article, le type d'article, et une quantité (qui selon le cas (entrée ou sortie) sera positif ou négatif); il aura pour incidence d'aller modifier certains records (dans la table des stocks), d'en créer d'autre (table de "trace" des mouvements de stock), etc...
Donc il s'agit d'une fonction assez générique qui sera utilisée dans divers modules (Views) et donc exécutée depuis un grand nombre de View Models.
Pour éviter la redondance dans l'écriture, nous préférerions ne pas avoir à redéfinir cette fonction dans chaque View Models qui en verrait l'utilité. (Dans certains cas peut-être devront nous l'implémenter différemment mais dans la majorité des cas elle sera utilisable telle quelle).
Dans le cadre d'une architecture MVVM, où placer ce type de fonctions ?
Merci d'avance pour votre retour,
Partager