[解決済み] .NET Remotingは本当に非推奨なのか?
質問
誰もが、.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 で単一マシン通信を使用する場合は、名前付きパイプを使用します。これを使用すると、事実上すべての現実的なシナリオで良好なパフォーマンスが得られるはずです。
さまざまな分散通信技術の性能比較については を参照してください。 .
関連
-
[解決済み】XAMLにSystem.Stringを埋め込む
-
[解決済み] VB.NETでプログラムパスを取得する?
-
[解決済み] スマートクライアント・ソフトウェアファクトリーの体験談
-
[解決済み] .NET Framework 4 マルチターゲティングパックがアンインストールできない
-
[解決済み] WinSCP 応答待ちタイムアウト
-
[解決済み] .NETでのdecimal, float, doubleの違い?
-
[解決済み] メソッドを廃止または非推奨としてマークする方法は?
-
[解決済み] .Any() vs .Count() > 0のどちらのメソッドがより良いパフォーマンスを発揮しますか?
-
[解決済み] MemoryStreamから文字列を取得する方法は?
-
[解決済み] Microsoft.ACE.OLEDB.12.0' プロバイダがローカルマシンに登録されていません。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】警告。同じ依存アセンブリの異なるバージョン間で競合が見つかりました。
-
[解決済み] ServicePointManagerは、*スキームのプロキシをサポートしていません[closed]。
-
[解決済み] app.configのマッピングがないアセンブリのapp.configの再マッピングを考慮する。
-
[解決済み] 到達不能なホストに対してソケット操作を行おうとした
-
[解決済み] DockPanelを空きスペースいっぱいに表示させる方法
-
[解決済み] "SSL/TLSセキュアチャネルの信頼関係を当局と確立できませんでした "の解決方法
-
[解決済み] Powershell v3 Invoke-WebRequest HTTPSエラー
-
[解決済み] 文字列から数字を抽出する正規表現
-
[解決済み] Microsoft.ACE.OLEDB.12.0' プロバイダがローカルマシンに登録されていません。
-
[解決済み] プライベートメソッドのユニットテストはどのように行うのですか?