最も一般的な開発シナリオ用に再利用可能なコンポーネントを作成しようとしています。
ドメインオブジェクトとデータオブジェクト(dc-serializable)をドメインオブジェクトにカプセル化するための汎用プレゼンテーション層を作成しました。また、すべてのdomainobject-instancesを参照したままにするある種のdomainstate/contextもあります。ドメインオブジェクトには、オンデマンドで最初にアクセスされたときにデータソースから入力される特別なコレクションがあるという考え方です。正確には「DDD」ではないと思いますが、うまくいくようです...
とにかく、今私はdatacontextとdatasource-partで立ち往生しています。私は、データを保存し、データソースと対話する方法について多くのことを考えてきました。zipファイル、sql-server、sql-lite-files、entity framework、nhibernate、linqtosql、mongodbなどのxmlで、何を使用するかを決めることができません。データソースとデータコンテキストの両方を抽象化し、代わりに各アプリケーションで何を使用するかを決定する必要があるようです。重要なことは、特定のフレームワークにハードな依存関係を埋め込まないことです。
データコンテキストとデータソースを抽象化しても、既存のあらゆる種類のフレームワークでうまく機能し、簡単に機能するのは現実的ですか?私はこれを間違って考えていますか?これは行き止まりですか?
私が必要としているのは(私が思うに)、特定の基準に一致するオブジェクトのデータコンテキストをクエリできるようにするためのドメイン状態だけです。オブジェクトグラフ全体を処理できるのか、個々のデータオブジェクトのみを処理できるのか、具体的なタイプではなく一部の汎用オブジェクトのみを処理できるのか、リクエストごとに複製する必要があるのかはわかりません。これについて考え始めると、とても混乱します...
ああ
アップデート:
DataContext / DatabaseContext(たとえば、EntityFramework)は、オブジェクトをメモリにキャッシュし、クエリを実行し、データソースとの間でデータをフェッチおよび保存し、型指定されたオブジェクトをコンシューマーに返すためのモジュール/レイヤーとして表示されます。これは正しいですか?
リポジトリパターン(DDD)と私のDataContextの違いは何ですか?
アップデート2:
基本的に、これは私のモデルです(良いか悪いか?):
DataSource-> DataContext / DataObject-> DomainState / DomainObject-> Presenter