アプリケーションの一部を C# (現在は従来の VB6 コード) で書き直すことを検討しています。私が始めているモジュールは、さまざまなシステムからデータベースにデータをインポートする役割を担っています。年に 5 ~ 6 回、新しいクライアントから、使用しているシステムの新しいインポートを作成するよう依頼されます。現在、これには、アプリケーションに追加する新しいインポート オプションごとに、ソフトウェアの新しいバージョンをリリースする必要があります。
書き換えの目標の 1 つは、アプリケーションがプラグインをサポートするようにすることです。すべての新しいインポートは、ホスト アプリケーションが認識し、エンド ユーザーが操作できる個別のアセンブリになる可能性があります。これにより、新しいアセンブリをディレクトリにドロップするだけで、メイン (ホスト) アプリケーションによって認識されて使用されるようになるため、作業がある程度簡素化されることが期待されます。
私が苦労している項目の 1 つは、現在サポートされているインポート オプションの違いに関連しています。場合によっては、実際にユーザーにディレクトリを指定させ、ディレクトリ内のすべてのファイルをシステムに読み込ませます。それ以外の場合は、単一のファイルを指定してその内容をインポートできます。さらに、一部のインポートには、ユーザーが適用する日付範囲制限がありますが、他のインポートには適用されません。
私の質問は、ホスト アプリケーションがプラグインとオプションを簡単に認識できるようにする共通のインターフェイスを実装すると同時に、ビルドおよびサポートするインポート間である程度の柔軟性を可能にする方法でアプリケーションを設計するにはどうすればよいかということです。それぞれがユーザーに公開することは?