Je termine une réécriture d'un outil de gestion de projet en utilisant ASP.NET MVC, LINQ2QL et le modèle de conception de référentiel. À peu près en suivant l'exemple de NerdDinner.Où placer la logique métier * advanced * dans le projet ASP.NET MVC/Linq2Sql?
J'ai une classe appelée Task qui a une liste d'enfants de TaskStages. Par souci de cet exemple, les étapes sont prêtes, en développement et terminées. Je garde une trace de l'étape actuelle sur la tâche, mais chaque fois que la scène change, je veux écrire un enregistrement historique dans la table de l'étape de la tâche.
Je me bats sur où mettre cette fonctionnalité et maintenir la testabilité. Est-ce que ça va dans le contrôleur? Dépôt? ou la classe partielle?
S'il s'agit d'un problème de conception, faites-le moi savoir!
Je suis vraiment en train d'essayer de garder l'application mince, donc si je n'avais pas besoin de créer un * real * des objets métier comme je le voudrais. Afin de le tester correctement, je suppose que je devrais le mettre dans le contrôleur ... non? – mattruma
Je me demandais si je pouvais simplement ajouter une méthode update() au dépôt, je pourrais alors faire mes vérifications là-bas? – mattruma
Le Repo ne devrait pas vraiment être pour la logique métier - uniquement l'accès aux données. Mettez-le dans le contrôleur si vous devez. Doit aimer Justin je suggérerais une autre couche d'abstraction: les objets de domaine et une couche de Service. Ce n'est pas une quantité énorme de travail et vous récolterez les récompenses immédiatement. –