2009-11-19 4 views
2

Voici le scénario:WCF WPF et des objets Domaine

  1. Il y a quelques domaines objets
  2. Il y a des services WCF exposant les services aux entreprises qui interagissent avec ces domaines objets
  3. Il y a une application WPF qui est l'interface utilisateur, qui appelle les services WCF

Une installation assez commune que j'aurais pensé. Je pense utiliser des DTO entre le service WCF et l'application WPF. Il y aurait un mappeur pour mapper entre les objets de domaine et le DTO sur la couche de service WCF. Vous recevez ensuite cet objet DTO sur le client et le mappez ensuite au ViewModel utilisé par l'application WPF.

Cela vous semble-t-il raisonnable?

Merci

Répondre

2

Comme cela devrait être fait dans mon livre. Vous n'utilisez pas d'entités de domaine dans votre couche d'interface utilisateur.

Regardez dans AutoMapper pour faciliter le mappage d'avant en arrière.

+1

Le ViewModel ne contient pas d'entités de domaine? Par exemple, une entité de domaine client serait sur le serveur et le client car il contiendrait une validation commune? –

+0

Je ne l'ai jamais fait. Si la validation est la même, j'ai mis cela en dehors des entités de domaine dans un validateur séparé. La seule chose que je partage entre mon client et mon serveur sont les contrats wcf. Vous gagnez en flexibilité sur le serveur et le client de cette façon. Si toutefois vous ne prévoyez pas que votre application client change sans le serveur et ne pensez pas que d'autres clients sont imaginables, vous pouvez partager les entités de domaine avec votre client, mais alors pourquoi utiliser les entités de domaine dans votre viewmodel. Je ne préconise pas cette route, a eu trop de mauvaises expériences. – BennyM

+1

Alors, comment voulez-vous effectuer quelque chose comme la validation alors? Ainsi, vous avez une entité de domaine qui a une sorte de validation des règles métier. Vous voulez que cela s'exécute sur le client et le serveur. N'exposeriez-vous pas cette entité de domaine sur le client et le serveur pour utiliser la même validation et donc maintenir la cohérence? Merci –

Questions connexes