Salut,
Je me pose des questions sur la meilleure façon de faire ce que je veux, d'un point de vue conception... Je fais une appli client-serveur (un système de messagerie instantanée, type MSN) qui utilise WCF pour la communication et LINQ pour modéliser la base de données des utilisateurs.
Côté serveur, pas de problème, le DataContext est généré par VS et je peux manipuler mes objets comme je veux.
Maintenant, j'aimerais pouvoir transmettre à un utilisateur connecté des infos sur d'autres utilisateurs. Le plus simple serait donc de simplement envoyer les objets du DataContext, seulement ils contiennent des infos que je ne veux pas transmettre aux utilisateurs. Par exemple, la classe User contient une propriété ContactList, mais je ne veux pas qu'un user A puisse accéder à la contact list d'un utilisateur B.
Donc, je vois 2 options :
1.Contrôler la sérialisation pour ne pas sérialiser les infos qui ne doivent pas être transmises
Avantages : c'est propre, et transparent à l'utilisation
Inconvénients : je ne suis pas sûr que ce soit possible...j'ai bien vu des méthodes OnSerializing, On Deserializing, etc, mais elles sont générées automatiquement par le Designer, et si je les modifie mes modifs sont écrasées par le designer
2. Utiliser une autre classe pour transmettre les données sur un utilisateur
Avantages : c'est simple
Inconvénients : Je dois créer un nouvel objet à chaque fois au lieu d'utiliser celui qui existe déjà. Et c'est pas beauje n'aime pas trop avoir 2 classes qui représentent la même chose...
Quelle est à votre avis la meilleure solution (par forcément une de celles que j'ai décrites...) ?
Pour la solution 1, est-ce qu'il est possible de contourner le problème du designer LINQ qui écrase mes modifs ? (à part en créant le DataContext manuellement bien sûr...)
Merci pour vos lumières![]()
Partager