2010-04-07 2 views
0

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

Répondre

0

Un cadre qui prend en charge SEC, et à la fois la validation côté serveur et le client, est ASP.NET MVC 2.

Cela se fait en générant JavaScript à partir des règles de modèle cela est envoyé au client.

Vous pouvez en lire davantage ici: http://weblogs.asp.net/scottgu/archive/2010/01/15/asp-net-mvc-2-model-validation.aspx

+0

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

+0

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. –

Questions connexes