複数のクライアント用のアプリケーションを作成していますが、各クライアントの実装には類似点と相違点があります。UI には Win Forms と WPF、ORM には Entity Framework を組み合わせて使用しています。私が必要としているのは、可能な限り共有コンポーネントを再利用できる機能です。
重要な問題の 1 つは、1 つのクライアントのデータベースが oracle であり、もう 1 つのクライアントが MS Sql であることです。現在、コンパイル時に要素を変更するだけで、両方が機能しています。これは、データ プロジェクトがわずかに異なるだけで、ほぼ同一のプロジェクトを 2 セット用意する必要があることを意味します。1 つの UI でバグが見つかった場合は、他のソリューションを開いてそこでも編集する必要があります。
以前のプロジェクトで Ninject を使用しましたが、UI が直接呼び出すのではなく、特定のプロジェクト/クラスを UI に挿入して、データ プロジェクトの制御を何らかの方法で反転することは可能かもしれません。
私が理解できないように見える問題は、プロジェクト全体を注入する方法です。db.Customers.ToList();
UIで言って、注入したデータ プロジェクトから顧客を返すことができるようにしたいと考えています。両方のクライアントのデータベース モデルは、現時点では同じですが、将来変更される可能性があります。
これらのリソースを共有容量で使用できるパターンがあるはずです。
ありがとう