2011-05-10 7 views
2

J'ai écrit une classe RPC simple qui me permet de sérialiser et d'envoyer des données binaires entre une application de bureau .net et une application serveur .net. En un mot, un client peut envoyer:Personnalisé RPC vs WCF vs .NET Remoting

Dim Message as new TCPMessage 
Message.Handler = "NewUser" 
Message.AddField("FirstName", "Paul") 
Message.AddField("Photo", PhotoBytes) 
Message.Send() 

et le serveur se reconstituer les données sur l'autre extrémité:

Public Sub NewUser (Message As TCPMessage) 
    Dim FirstName as string = Message.GetString("FirstName") 
    Dim Photo() as Bytes = Message.GetBytes("Photo") 
    ... 
End Sub 

Tout cela fonctionne bien pour ce que je fais en ce moment - il semble assez léger et performant.

Ce que je voudrais savoir est, quels sont les avantages/inconvénients de faire cela à travers .NET Remoting/WCF? Je ne connais pas grand-chose à ces technologies, mais il semblerait qu'elles soient beaucoup plus flexibles, avec la possibilité qu'elles soient aussi moins performantes et présentent une courbe d'apprentissage considérable. Sur les critères de performance, d'apprentissage et en gardant à l'esprit que personne d'autre ne maintiendra le code, devrais-je continuer à créer de petites applications internes en utilisant mon schéma de bricolage, ou abandonner ASAP pour Remoting/WCF? Edit: La performance est la clé, les applications client recevront régulièrement des jeux de données de ~ 200 000 lignes (oui, il est absolument nécessaire de recevoir autant de données). Tout fonctionne sur le réseau local uniquement.

+0

Je n'ai absolument aucune donnée à l'appui, mais WCF offre beaucoup de profondeur tout en réussissant à être très léger. Je serais surpris s'il y a une différence de performance significative. –

+0

Merci, c'était vraiment seulement une supposition que WCF serait plus lent. Je ferai quelques tests de performance une fois que j'en aurai appris plus sur la WCF. – Satellite

+0

Avez-vous finalement utilisé WCF? tous les tests de performance, Merci –

Répondre

1

Tout d'abord, .Net Remoting est maintenant dépréciée en faveur de la WCF, voir Does WCF really replace .NET Remoting?

WCF est rapide et relativement léger. Le principal avantage de WCF est qu'il est si configurable. En effectuant à peu près uniquement les changements de configuration, vous pouvez modifier le format de sérilisation, le protocole de transport, le mécanisme d'authentification, la fonctionnalité QOS (fiabilité/sécurité/évolutivité). C'est aussi suffisamment extensible que si elle ne fournit pas ce dont vous avez besoin, vous pouvez l'ajouter vous-même. Enfin, il extrait le code de l'application du code de communication.

J'utiliserais certainement WCF pour de nouveaux projets. Est-ce que je changerais une application existante d'une solution stable, performante et personnalisée? Cela dépend de l'ampleur du changement, des inconvénients de la solution existante et des avantages potentiels que pourrait apporter la solution.