2010-07-02 6 views
9

Je peux comprendre que WCF est en général meilleur que Remoting, mais les deux me semblent assez différents. MS faire cette jolie image pour montrer à quel point WCF est (ou peut-être comment les pauvres les autres techs sont seulement cocher une seule case chacun): alt text http://i.msdn.microsoft.com/dynimg/IC371617.jpgEst-ce que WCF remplace vraiment .NET Remoting?

Mais, WCF est centrée autour de SOA et je ne pense pas qu'il soit correct supposons que chaque application en réseau veut pour exposer des services.

Dans mon cas, je cherche des moyens de répliquer des objets entre deux instances d'une application serveur sur différents PC. WCF semble juste donner une version moderne de COM ... obtenir un objet et appeler des méthodes et il appelle magiquement la version sur l'autre PC. Mais Remoting semblait faire quelque chose de tout à fait différent et je ne comprends pas pourquoi il était obsolète sans être remplacé par une technologie similaire.

Alors, est-ce que MS affirme même que Remoting est mort? Ou sont-ils encore en charge, reconnaissant qu'il a sa place aux côtés de WCF?

+0

Voir http://stackoverflow.com/questions/1294494/is-net-remoting-really-deprecated, Aussi - il est assez facile de lancer un point de terminaison WCF dans votre application, et d'envoyer des objets dans les deux sens. – nos

+0

Je ne dis pas que c'est une copie exacte, à cause de la description spécifique de votre situation. Mais (comme les nôtres posté ci-dessus) cette question traite si obsolète est obsolète http://stackoverflow.com/questions/1294494/is-net-remoting-really-deprecated – MarkJ

+0

@nos, pour envoyer des objets dans les deux sens, vous avez toujours besoin d'une API cependant, comme newForumPos (ForumPost), etc ... vous devez écrire du code pour transférer les objets ou leurs champs plutôt que de le faire de façon automagique comme le fonctionne XSTM (http://xstm.net/) –

Répondre

6

Il remplace vraiment .Net Remoting. Vous pouvez utiliser un formateur binaire avec un canal TCP et obtenir la même expérience que l'accès distant.

Pour votre cas, l'accès distant ne semble pas vraiment être le bon choix. Si vous voulez répliquer des objets, comme en faire des copies dans un emplacement différent, vous voulez les sérialiser et les envoyer en tant que paquet (un "message" dans le jargon WCF) à charger dans un type (peut être le même tapez dans le même assembly, mais déployé sur un serveur différent) sur le point de terminaison distant. C'est là que WCF excelle. Remoting vous donnerait une connexion à un objet "live" d'un point de terminaison à l'autre.

+0

Peut-être que je me méprends sur la communication à distance ... est-ce que je répète des objets ou conserve une copie de serveur qui est accessible à distance? –

+0

@John: ni non plus - WCF consiste à envoyer des messages sérialisés - des messages qui ne sont que des données, pas de comportement/code/méthodes. À cet égard, oui, WCF ne peut pas remplacer REMT puisque ce n'est pas vraiment un type de technologie «remote control objects» –

+3

@John - avec .Net Remoting, c'est le dernier: vous accédez à distance à un état d'objet, et seulement marshal des appels du point final -to-endpoint. Si vous voulez envoyer l'objet réel, ce que vous recherchez est davantage orienté service, ce qui sérialise l'état de l'objet et l'envoie en tant que message d'un point de terminaison à l'autre. WCF peut faire les deux, mais il est plus naturel d'envoyer des messages. La raison en est que nous avons appris, via DCOM, que l'accès transparent à l'état de l'objet à travers les frontières est une mauvaise conception. – codekaizen