2009-05-21 10 views
3

私は何かアドバイスをしています。.Net .Net Remotingを使用しないでリモート処理する?

私は、次の例があります。

Appication1.exe は - マイリスト

Application2.exe オブジェクト持っています - マイリストにアクセスし、それはアプリケーション2から作成されたかのようにオブジェクトと対話する必要があります。

.NET Remoting(つまり2.0)またはWCFまたは別のテクノロジスタックを使用する必要がありますか?これをサポートするために利用できるフレームワークは何ですか?それぞれの長所と短所は何ですか?

これは「ヘルパー」アプリケーションのほうが多く、開発チーム外の人は使用しないことに注意してください。

答えて

0

私は共鳴可能な選択は、.NETリモーティングを使用することだと思います。 Application2のWebサービスを呼び出すには、Application1でWebサービスを起動する必要があります。唯一の実際の欠点は、 "MyList"にMarshalByRefObjectというマークを付ける必要があることです。 MSDNによると、Remotingは現在WCFを支持するlegecyものです(.NET 3.0)。しかし、私が知る限り、Remotingは、アプリ内でのコミュニケーションのための町で唯一のゲームです。

+0

"MyList"もシリアライズ可能ではないはずですか?またはそれが住んでいるクラス/オブジェクト? – IAbstract

1

言うことは難しいです。 WCFは確かに可能性です。 App2にデータ転送を(プッシュモデルまたはプルモデルのいずれかで)サポートするには、両方のアプリケーションを制御してApp1を変更する必要があります。オンデマンドのデータ交換が必ずしも必要でない場合は、データ転送の方法としてデータベースを考えることができます。 App1がすでにデータをデータベースに書き込んでいる場合。その後、そこから必要なデータをApp2に取り込ませることができます。また、交換が頻繁に起こらない場合は、ファイルシステムを使用することもできます。リストをシリアライズし、App2でそれをつかみなさい。 (私は、あなたが開発ツールをすでに存在しているものに引っ掛けようとしているように思えるので、それだけを示唆している)。

Remotingは、実装と展開の難しい問題を抱えている古いテクノロジです。 WCFははるかにクリーンで簡単に実装できます。したがって、2つの間にあれば、私は間違いなくリモート処理にWCFを推奨します。

8

あなたのアプリケーションの詳細を知らなくても難しいですが、このシナリオでは私は個人的にWCFを使用しません。 WCFは非常に重いパイプラインを持ち、セットアップと使用にかなりの労力を要します。そのAPIはWebサービスに重点を置いています。あなたの場合は過剰なようです。マイクロソフトは、WCFはリモーティングをもうサポートしたくないのでリモート処理を置き換えると主張していますが、両方を使用していると、WCFは同種のアプリケーション内でデータを移動するためのリモーティングほど良くないと言えるでしょう。

しかし、1つのアプリケーションから別のアプリケーションにデータを移動する方法は数多くあり、いずれも長所と短所があります。これらのすべての方法の完全な議論は、このコメントの範囲を超えています。あなたの使用シナリオに関する詳細を追加できますか?このリストにはどのような種類のデータがあるのか​​、どれくらい大きいのか、どこから来たのか、どのような変更が行われているのか、App 1は変更を見なければならないのですか?App 2は、完了しました。

3

私はアプリケーション1がプロダクションアプリケーションであり、アプリケーション2が開発専用ヘルパーアプリケーションであると仮定しています。この場合、アプリケーション2のサポートに関連するアプリケーション1の追加オーバーヘッドを最小限に抑えるか、またはなくす必要があります。非常に重いWCFはオプションとして削除する必要があります。リモート処理でもオーバーヘッドが発生します。

オブジェクトをシリアル化することができます。おそらくXMLはこれに適していますか?

完全に答えるには、この質問の変数が多すぎます。アプリケーション1とアプリケーション2に関する詳細情報を提供できますか?彼らはどこで走るのですか?興味のあるオブジェクトを頻繁に変更しますか?彼らはどのように状態を保存していますか?

+0

RemotingまたはWCFのオーバーヘッドなしでリストにアクセスする最も論理的な方法と思われるので、これを投票しています。 app1はリストをXmlまたはBinaryフォーマッタにシリアライズします。 – IAbstract

関連する問題