Je viens de commencer à apprendre WCF, et je viens d'un arrière-plan total non-web.Empêche la WCF d'exposer toute ma classe?
J'ai construit une application de bureau à 3 niveaux, qui compile en un exe, qui s'exécute localement.
Maintenant, je veux déplacer toute la couche logique métier vers un serveur centrique, et faire de l'interface graphique une application cliente. Pour autant que je comprenne, WCF devrait être ma solution, car en effet, il m'a aidé à réaliser ce que je voulais.
Je mange pour exécuter des fonctions à distance, ce qui est la base de ce dont j'ai besoin.
Mon problème maintenant, c'est que je ne comprends pas très bien l'architecture .
Par exemple, l'un de mes services renvoie un type de données (classe) à partir de ma couche Business Logics.
Cette classe devient automatiquement disponible pour le client via le mécanisme WCF.
Mais le problème est que cette classe contient des méthodes que je ne veux absolument pas exposer au client.
Par exemple, une méthode Save (sauvegarde dans la base de données). De plus, parfois je ne veux même pas permettre au client de changer toutes les propriétés de la classe, puisque cette classe pourrait être envoyée à l'un de mes services.
Je ne souhaite pas valider de nouveau l'instance de classe dans le service.
Que dois-je faire? Dois-je construire une autre couche, une version restreinte de la logique métier, que j'expose au client? Ou est-il possible d'exposer seulement une partie de ma classe au client, sans restreindre le serveur lui-même?
Je sais que c'est une question fondamentale, mais honnêtement, j'ai beaucoup cherché avant de demander ici. Mon problème est que je ne sais pas trop quoi chercher.
Ma deuxième question est alors, avez-vous des recommandations pour toute ressource qui peut m'expliquer cette architecture ...?
Je pense que vous serez mieux servis en extrayant une couche d'objet de transfert de données. C'est une approche plus flexible, et plus portable si vous avez besoin de quitter wcf. – Candide