質問

アプリケーションの一部を C# (現在はレガシー VB6 コード) で書き直すことを検討しています。私が始めているモジュールは、さまざまなシステムからデータベースにデータをインポートする役割を果たします。年に 5 ~ 6 回、新しいクライアントから、使用しているシステム用の新しいインポートを作成するよう依頼されます。現時点では、アプリケーションに追加する新しいインポート オプションごとにソフトウェアの新しいバージョンをリリースする必要があります。

書き換えの目的の 1 つは、アプリケーションがプラグインをサポートできるようにすることです。すべての新しいインポートは、ホスト アプリケーションが認識し、エンド ユーザーが操作できるようにする個別のアセンブリになる可能性があります。これにより、新しいアセンブリをディレクトリにドロップするだけでメイン (ホスト) アプリケーションで認識され、使用できるようになるため、作業がある程度簡素化されることが期待されます。

私が苦労している項目の 1 つは、現在サポートされているインポート オプション間の違いに関連しています。場合によっては、実際にユーザーにディレクトリを指定させ、ディレクトリ内のすべてのファイルをシステムに読み込ませることもあります。他の場合には、単一のファイルを指定してその内容をインポートすることを許可します。さらに、一部のインポートにはユーザーが適用する日付範囲制限がありますが、他のインポートには適用されません。

私の質問は、ホスト アプリケーションがプラグインとオプションを簡単に認識できる共通インターフェイスを実装しながら、構築およびサポートするインポート間で柔軟性を持たせる方法でアプリケーションを設計するにはどうすればよいでしょうか。それぞれがユーザーに公開するものですか?

役に立ちましたか?

解決

.NET 3.5 に同梱されているマネージド アドイン フレームワークを確認することをお勧めします。の アドインチーム にいくつかのサンプルとツールを投稿しました CodePlex サイト 同じように..

他のヒント

.Net 3.5 には system.Addin 名前空間があります。

このスレッドには、フレームワークの古いバージョンに関する有益な情報も含まれています。
http://forums.devshed.com/net-development-87/system-plugin-532149.html

理論については、を見てください。 プラグインパターン マーティン・ファウラー著 エンタープライズ アプリケーション アーキテクチャのパターン

興味深い例については、このチュートリアルをご覧ください。 C# を使用したプラグイン アーキテクチャ

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top