ORMを使用する前に、私たちは常にサービス層でオブジェクトキャッシングを実行しました。これにより、キャッシングの実装を変更することなく、異なるデータレイヤー間を切り替えることができました。エンティティフレームワークとNHibernate - キャッシュはまだサービスレイヤの責任ですか?
今日では、エンティティフレームワーク(主にコードが最初)とNHibernateの両方を使用しています。 NHibernateは、いくつかの第2レベルのキャッシュプロバイダが利用可能な、より良いキャッシング機能を備えているようです。
私が直面しているもう1つの問題は、上記のORMの両方に対して、遅延ロードされたプロパティを使用することです。したがって、キャッシュからオブジェクトを取得する場合は、通常、現在のObjectContext/ISessionにオブジェクトを再接続する必要があります。サービスレイヤでは実際にはできないことです。
リポジトリ/データレイヤーでのキャッシュ実装を実際に検討する必要があります。 EFとNHで共通の解決策が見つかるだろうか?
おかげ ベン
こんにちはクレイグ、リンクありがとう。ウディのビデオは本当に私がこれを掴むのを助けました(http://bit.ly/d29jZU)。あなたの経験では、CQRSはWeb/eコマースアプリケーション、特に「古い」(製品情報)、パーソナライズされた(カート、プロファイル)、ライブの可能性が高いビューレベル)データ。 Udiは、問題がある場合にコマンドを渡して非同期応答を発行することについても話しています。これは、通常はWebアプリケーションで実装するのが簡単ではないものです。 –
amazon.comはこのようなものを(「最終的には一貫して」)開拓しました。そう、はい、私はそれが電子商取引でうまくいくと言います。明らかに、あなたは何が陳腐で何ができないのかを選択する必要があります。しかし、ポイントは技術的な配慮ではなく、ビジネスだということです。 –
既存のアプリケーションに追加できるものか、コードの作成を始める前に実際にそのようなアーキテクチャ上の決定を下すべきなのでしょうか?明らかに、httpキャッシングのような機能は、重要な意味を持たずにいつでも追加することができます。 –