J'écris une application ASP.NET MVC en utilisant NHibernate comme ORM. J'ai un peu de mal avec la conception et j'aimerais avoir un avis.
Ma question est donc la suivante : où dois-je placer ma logique d'entreprise/de validation (par exemple, l'adresse électronique doit comporter un @, le mot de passe doit comporter 8 caractères, etc...) ?
Donc, ce qui a le plus de sens :
- Le mettre sur les objets de domaine eux-mêmes, probablement dans les setters de propriété ?
- Introduire une couche de service au-dessus de ma couche de domaine et y placer des validateurs pour chaque objet de domaine ?
- Gérez deux ensembles d'objets de domaine. Une série muette pour NHibernate, et une autre série intelligente pour la logique métier (et une sorte de couche d'adaptation entre les deux).
Je pense que mon principal souci est de placer toute la validation sur les objets de domaine utilisés par NHibernate. Il semble inefficace d'avoir des contrôles de validation inutiles chaque fois que je retire des objets de la base de données. Pour être clair, je pense que c'est une préoccupation réelle puisque cette application sera très exigeante (pensez à des millions de lignes dans certaines tables).
Mise à jour : J'ai supprimé une ligne avec des informations incorrectes concernant NHibernate.