5

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

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

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

私の質問は、ホスト アプリケーションがプラグインとオプションを簡単に認識できるようにする共通のインターフェイスを実装すると同時に、ビルドおよびサポートするインポート間である程度の柔軟性を可能にする方法でアプリケーションを設計するにはどうすればよいかということです。それぞれがユーザーに公開することは?

4

3 に答える 3

3

.NET 3.5 に同梱されている Managed Add-In Framework を確認することをお勧めします。アドイン チームは、いくつかのサンプルとツールをCodePlex サイトにも投稿しています。

于 2008-09-05T16:59:46.497 に答える
1

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

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

于 2008-09-05T17:00:11.190 に答える
1

理論については、martin fowlers Patterns of Enterprise Application Architectureのプラグイン パターンを参照してください。

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

于 2008-09-05T17:02:11.107 に答える