私はリポジトリアセンブリを含むアプリケーションを持っています。アプリケーションが最初にインストールされるとき、リポジトリは非常に単純です:ローカルJSONファイルストア。しかし、私はエンド・ユーザーに別のリポジトリー・ストア(SQL、Oracleなど)を使用できるようにしたいと考えています。アプリケーションのリポジトリアセンブリを置き換えるための推奨される方法
アプリケーションのディレクトリにある元のリポジトリDLLを新しいリポジトリDLLに置き換えるだけで簡単ですか?もしそうなら、ユーザーは単純に新しいリポジトリDLLをコピーしてアプリケーションのディレクトリに貼り付け、元のDLLを上書きしますか?これを行うより良い方法はありますか?
私はまた、アプリケーションで使用されるすべてのインターフェイスを含む別のアセンブリをアプリケーションに持っています(これは良い方法ですか)。アプリケーションは、リポジトリアセンブリが必要なすべてのインタフェースを実装していることを確認します。
私はプラグインアーキテクチャ/フレームワークを望んでいないと思います。私はロードされたリポジトリアセンブリのセットから1つを選択する能力を望んでいません。しかし、私は自分のアプリケーションのためのプラグイン戦略を支持する議論に耳を傾けるでしょう。
おかげで、avatがあります。私は、ユーザーがより大きい組織の一部であり、リポジトリのタイプ(SQL、Oracleなど)が組織によって指定されていると仮定しています。したがって、リポジトリDLLは、プログラムがインストールされたときや、すぐ後で使用されるたびに、一度だけ選択されます。したがって、状況は最初のシナリオに最も似ていますが、選択は一度だけ発生します。 – blueshift