2011-01-04 6 views
3

J'ai une application ASP.NET MVC 2 avec des règles métier complexes et j'essaie de décider où mettre une logique spécifique.ASP.NET MVC 2 Où mettre la logique

La logique se produit lors de la création d'enregistrements, en fonction de certains champs de cet enregistrement, d'autres enregistrements doivent être créés. J'utilise actuellement le modèle de référentiel avec un ORM et l'endroit le plus facile à mettre cette logique serait dans ma classe de référentiel, mais je pense que c'est un endroit assez faible pour avoir des règles importantes, je le mettrais directement dans mes classes de modèle partielles qui ont ma validation et mes métadonnées, mais je dois ensuite appeler des méthodes dans mon contrôleur ou dans mon référentiel et cela peut étendre mes connaissances sur l'implémentation à ces couches.

Quels sont vos conseils sur les meilleures pratiques pour moi?

Merci!

Répondre

4

Vous pouvez avoir une couche de service entre le contrôleur et les référentiels. Le référentiel effectue des opérations CRUD simples avec votre modèle. Une méthode de service peut utiliser plusieurs appels de référentiel simples pour composer une opération métier. Cette opération commerciale sera exposée au contrôleur.

+1

Lorsque vous parlez de la couche de service, est-elle implémentée comme un service réel tel que WCF/data services/etc., Ou est-ce simplement une autre couche de code/classes entre les contrôleurs et les référentiels? Si oui, auriez-vous typiquement une classe de service pour chaque entité dans votre modèle? Connaissez-vous de bons exemples utilisant ce modèle? J'ai vu quelques exemples utilisant le modèle de dépôt avec MVC, mais pas avec un calque de service (ou peut-être qu'il était là et je n'ai pas remarqué). – AaronLS

Questions connexes