1. ホーム
  2. .net

[解決済み] .NET Remotingは本当に非推奨なのか?

2023-02-11 02:06:47

質問

誰もが、.NET RemotingがWCFに取って代わられると言っていますが、それがどの程度正確なのか疑問です。Remotingが非推奨になるという公式な情報を見たことがありませんし、WCFよりもRemotingの方が理にかなっているシナリオがあるのは確かなようです。フレームワークのバージョン4.0でも、Remoting関連のオブジェクトやメソッドが非推奨になったことはありません。また、3.5と4.0のフレームワークのSystem.AddInはRemotingを使用していると私は理解しています。

どなたか、反対の公式見解をお持ちの方はいらっしゃいますか?

記事の中に .NETでの通信オプションの選択 (その記事の最新版である 3.0 の場合) には、次のように書かれています。

8 アプリケーション領域をまたがる通信

同じプロセス内の異なるアプリケーションドメインのオブジェクト間の通信をサポートする必要がある場合、.NETリモーティングを使用する必要があります。

WCF は確かにアプリケーション ドメインの境界を越えて使用できるため、もちろんこれは正確ではありませんが、そのシナリオに対する公式の推奨事項を示しているのでしょうか。

更新: Clemens Vasters (Remoting と WCF を所有するチームにいた人) にこの質問を送りました。

Clemens、あなたがリモーティングとWCFの両方を所有するチームにいることは理解していますが、私はソースに行く必要があると思ういくつかの質問があります。

まず、リモーティングがなくなるかどうかについての質問があります。具体的には、プロセス内のクロス ドメイン通信に広範囲に渡ってリモートを使用する、かなり大規模なアプリケーションを持っており、このリモートの使用はレガシーと見なされるのか疑問に思っています。もしそうなら、AppDomain.CreateInstance とその仲間は何か他のものに置き換えられるのでしょうか?

これが彼の返事です。

<ブロッククオート

Remoting は .Net Framework の一部であり、そのため無くなることはないでしょう。COM は Windows NT 3.5/Windows 95 以来 Windows に搭載されていますが、消えてはいませんし、これもすぐになくなるとは思えません。

とはいえ、Remotingに行く開発投資はごくわずかです。WCF は Remoting の後継であり、マネージド コードの COM/DCOM に取って代わります。

プロセス内、ドメイン間の通信では、RemotingはCLRのネイティブな通信方法です。

プロセス内の通信では、RemotingはCLRのネイティブな通信方法です。大きなデータや短時間に非常に多くのメッセージを送信するパフォーマンス上の問題がある場合、WCFとNetNamedPipeBindingを真剣に検討する必要があります。

どのように解決するのですか?

レガシー技術と呼ぶ方が正しい表現です。

http://msdn.microsoft.com/en-us/library/72x4h507%28VS.85%29.aspx

<ブロッククオート

このトピックは、レガシー技術に特化したものです。 技術に特有のものです。 既存のアプリケーションとの後方互換性のために保持されている 新規開発には推奨されません。 新規開発には推奨されません。分散型 アプリケーションは、現在 分散アプリケーションは、Windows Communication WCF)を使用して開発する必要があります。

更新: WCFは、インター/イントラ/プロセス/インター/イントラ/アプリドメインを区別しません。WCF で単一マシン通信を使用する場合は、名前付きパイプを使用します。これを使用すると、事実上すべての現実的なシナリオで良好なパフォーマンスが得られるはずです。

さまざまな分散通信技術の性能比較については を参照してください。 .