Une chose qui me déroute à propos de DDD est que notre domaine est supposé gérer toute la logique métier et appliquer les invariants. J'ai remarqué que certaines personnes (moi inclus) manipulent certains invariants dans la couche de présentation (c'est-à-dire WebForms, Views, etc.) avec javascript. Ceci est principalement fait pour améliorer les performances afin que le serveur ne soit pas touché pour chaque requête qui peut être invalide.DDD: Script côté client pour imposer les invariants
Même si cette approche peut être bénéfique sur le plan des performances, elle viole les principes DDD. Que faire si les règles métier sont modifiées? De cette façon, nous n'avons pas de domaine riche où toutes les règles métier sont capturées. En cas de changement, nous devons changer le domaine ainsi que la couche de présentation.
Quelqu'un at-il déjà rencontré cette situation?
Je voudrais savoir ce que vous en pensez.
Cheers,
Mosh
Je sais sur les fonctionnalités de validation dans ASP.NET MVC 2. Cependant, ce que je fais référence ici est des règles de validation plus complexes. Comme: Si une case est cochée, et qu'aucun élément n'est ajouté à la liste Ensuite, affichez un message. Il est plus que la validation des champs d'entrée contre null, ou plage de données, etc – Mosh
Si vous voulez que votre code soit SEC et résoudre la validation de modèle complexe côté client, je suggère que vous autorisez vos entités à des états non valides, et demandez-leur de signaler ce qui est invalide (j'utilise souvent une collection BrokenRule). Ensuite, votre Controller/Presenter/ViewModel utilise ces informations pour mettre à jour la vue en conséquence. –