2012-03-26 12 views
0

プラグインを読み込むことができるアプリケーションを作成する必要があります。私はPRISM 4のドキュメントを読みました。私はフレームワークの "Region"概念が好きです。しかし、すべてのモジュールが最初のAppDomainに読み込まれますが、サードパーティのプラグインがアプリケーション全体をクラッシュさせることなくクラッシュできるアプリケーションを構築する必要があります(複数のアプリドメインが最高のソリューションだと思います)。その話題ですか? MVVMの上に自分自身を構築する必要がありますか? PRISM 4は私が探しているツールですか?独自のAppDomainのWPFモジュール/プラグイン - フレームワークサポート?

おかげで、私の知る限り宜しく

答えて

1

を、人気のMVVMフレームワーク(プリズム、カリバーン、カルシウムなど)のいずれもが、同じように重要なのは、クロスのAppDomainメッセージングをクロスAppDomainのモジュールのライフサイクルをサポートし、箱から出してください。これは、それがそれらのいずれかをカスタマイズすることは不可能ではありません、言った:モジュールは、おそらくいくつかの設定オプションの 基づき、異なるのAppDomainにロードすることを可能に

  • メッセージが異なるappdomainにシリアル化されるように、メッセージングコンポーネント(たとえば、Prismのイベントアグリゲータ)用のリモートプロキシを作成します。 1について

は、Prism4もそうハードされていないDLLをロードし、異なるアプリケーションドメインに、それらのエントリポイントをinitalising、そのブートストラップ、モジュールカタログおよびサービスロケータコンポーネント上の複数の拡張ポイントを可能にします。イベントアグリゲータのリモートプロキシを作成するのは少し複雑です。

クロスプロセスと同じappdomain内で動作する別のメッセージブローカーを作成することに私は個人的に頼っていましたが、私は最初から書かなければなりませんでした。

+0

メッセージプロトコルとしてIPCを使用しましたか? WPFとMAFを使用するのは難しいですか? – damike

+0

私はプロセス間メモリマッピングファイルを使用しました。読取り/書込みアクセスを同期化し、最後に書き込まれたバイト(4または8バイト)のインデックスを格納する専用メモリ領域を維持するには、もう少しコーディングが必要です。 –

+0

WPFとMEFを使用する:それほど難しくありません。 PrismとCaliburnの両方がMEFとの統合を提供します。 [MEFContrib](http://mefcontrib.codeplex.com/)は目立つ努力です。 Google "Caliburn Micro MEF"を使用して、Caliburnで類似のプロジェクトを手に入れる。 –

関連する問題