3 votes

Renvoi des classes de mapping NHibernate depuis les services WCF

J'ai un serveur qui gère l'accès à la base de données et un client qui consomme l'information. La communication entre le client et le serveur se fait par le biais d'un service WCF.

Lorsque le POCO NHibernate est renvoyé par le service, tous les objets du graphe d'objets sont-ils sérialisés ? Si oui, existe-t-il un moyen de le modifier ?

J'envisage également de ne pas renvoyer le POCO de NHibernate et de renvoyer un objet contenant uniquement les informations essentielles.

Que faites-vous dans ces cas-là ?

6voto

yfeldblum Points 42613

Utilisez des objets de transfert de données pour déplacer les données du serveur vers le client. Les objets de votre entreprise (modèle de domaine) ne doivent pas nécessairement être exposés en dehors du noyau de l'application, mais doivent être considérés comme un actif protégé.

Vous pouvez utiliser AutoMapper pour automatiser la traduction d'objets commerciaux en objets de transfert de données.

0voto

Andy White Points 36586

Ouais, vous voulez probablement un DTO pour ça. Il est généralement considéré comme préférable de ne pas transmettre vos objets de données au monde extérieur, mais transmettre des objets Hibernate directement à partir d'un service peut donner lieu à un comportement bizarre, en particulier si vous avez des collections chargées paresseusement.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X