2009-07-20 11 views
2

.NETでRPCを取得する最も簡単な方法は何ですか? .NET RemotingとWCFがあり、Wikipediaによれば、WCFは.NET Remotingの後継製品です。.NETで高速RPCを取得する最も簡単な方法は?

これまでのところ、私は遠隔操作のものを試していましたが、これはかなりシンプルに思えます。これまでのところ、アプリケーションの速度に問題はありませんでした。 .NET Remotingは本当にRPCを動作させる最善の方法ですか、それともWCFを調べるべきですか(.NET Remotingはそれに合わせて廃止される予定ですか?)私は、C#で書かれた既知のオブジェクトとの通信しか必要ないので、このXML/SOAP /などは必要ありません。トランスポート形式のもの。ターゲットアプリケーションは、ネットワーク経由で配布されるものであり、それ自体のインスタンスとだけ通信します。このコンテキストでは、プロトコルレベルの問題に対処することなく、どこかのオブジェクトに接続したいだけです。

答えて

3

バイナリ形式とTCPバインディングでWCFを使用できます。それでも(まだ)高速ではない場合は、カスタム(非標準)技術を見なければなりません。 1台のマシンで通信する場合は、IPCプロトコル(名前付きパイプに似ています)を使用できます。

実際、Remotingは別のテクニックとして姿を消しています。それはWCFによって同化されています。

+0

名前付きパイプは、プロセスが同じマシン上にある場合にのみオプションですが、さらに高速です。 (WPFも名前付きパイプのバインディングを持っています。) – Noldorin

+0

ローカルRPC WCFが名前付きパイプと同じ速度を提供するIPCプロトコルをサポートしているため、別のコンピュータに接続していると想定しました。 –

+0

彼らはそうではありません。私はテストを実行しましたが、WCFは少なくとも3倍遅くなっています。 –

2

私はCPのどこかでディスカッションを読んだことがあります。パイプを使ってWCFを使って(同じマシンでのみIPCを使うことができる)ということを誰かが証明していたら、.Net Remotingとtcp - それは少し速いです。私はそれがすべての事実に当てはまることを確認することはできませんが、いくつかのベンチマークについてはGoogleを使用することができます。私のオピオオンでは、リモーティングが必要なものすべてを提供するならば、少なくとも今のところそれに固執することができます:)。