2009-07-20 4 views
2

Was ist der einfachste Weg, RPC in .NET zu bekommen? Ich sehe, dass es .NET Remoting und WCF gibt, und laut Wikipedia ist WCF der Nachfolger von .NET Remoting.Einfachster Weg, um schnell RPC mit .NET zu bekommen?

Bis jetzt habe ich nur die Remoting-Sachen ausprobiert, was ziemlich einfach zu sein scheint - ich habe auch noch kein Problem mit der Geschwindigkeit der Anwendung gefunden. Ist .NET-Remoting wirklich der beste Weg, um RPC zum Laufen zu bringen, oder sollte ich in WCF schauen (weil .NET-Remoting dafür eingestellt wird?)? Ich möchte nur die Kommunikation mit bereits bekannten Objekten, die in C# geschrieben sind, also brauche ich keine dieser XML/SOAP/etc. Transport-Format-Zeug. Die Zielanwendung soll über ein Netzwerk verteilt werden und nur mit Instanzen von sich selbst kommunizieren. In diesem Zusammenhang möchte ich mich einfach irgendwo mit einem Objekt verbinden, ohne sich mit Problemen auf Protokollebene herumschlagen zu müssen.

Antwort

3

Sie können WCF mit binärer Formatierung und TCP-Bindung verwenden. Wenn das (noch) nicht schnell genug ist, müssen Sie auf benutzerdefinierte (nicht standardmäßige) Technologien schauen. Für die Kommunikation auf einer Maschine können Sie das IPC-Protokoll verwenden (ähnlich oder basierend auf Named Pipes).

Und in der Tat verschwindet Remoting als eine separate Technik. Es wird von WCF assimiliert.

+0

Named Pipes sind noch schneller, obwohl sie nur Optionen sind, wenn sich die Prozesse auf demselben Computer befinden. (WPF hat auch Bindungen für Named Pipes.) – Noldorin

+0

Ich nahm an, dass es sich um einen anderen Computer handelte, denn lokale RPC WCF unterstützt das IPC-Protokoll, das die gleiche Geschwindigkeit wie Named Pipes bieten sollte. –

+0

Sie sind nicht. Ich habe Tests durchgeführt und WCF ist mindestens um den Faktor 3 langsamer. –

2

Sobald ich irgendwo eine Diskussion gelesen habe, auf CP denke ich, und jemand hat bewiesen, dass WCF mit Pipes (was ermöglicht Ihnen IPC nur auf dem gleichen Rechner) ist viel schneller als .Net Remoting und bei der Verwendung tcp - es ist ein bisschen schneller. Ich kann nicht bestätigen, dass es für alle Fälle gilt, aber Sie können für einige Benchmarks googlen, ich habe wenige gesehen. Wenn Remoting Ihnen alles gibt, was Sie brauchen, können Sie zumindest jetzt bleiben :).

Verwandte Themen