ASP.NET の仕組みに関連する質問があり、説明するために最善を尽くします。
アプリに 4 層アーキテクチャがあります
- Web (ASP.NET Web アプリケーション)
- ビジネス (クラス ライブラリ)
- 汎用 CRUD 層 ** (クラス ライブラリ)
- データ (クラス ライブラリ)
私のこの一般的な CRUD レイヤーは、リフレクションを使用してオブジェクトのプロパティを設定および読み取りますが、PropertyInfo を使用するとかなりコストがかかるため、これらのアイテムをキャッシュする必要があることを読みました。
シナリオは次のとおりです。
Fred と Jim の 2 人がサイトにアクセスします。Fred は Customer を作成し、それが Generic CRUD レイヤーを呼び出して、Customer クラスのプロパティ情報を System.RuntimeCache 内にキャッシュします。Jim は数秒後に Customer も作成します。
私の質問は、Fred と Jim の両方からの 2 つの要求によって、プロパティ情報の取得が 2 回トリガーされることになりますか? それとも、ASP.NET は 2 回目にキャッシュから取得しますか? つまり、Jim の要求は、プロパティ情報がキャッシュ経由で取得されるため、より高速になりますか?
私の考えでは、私の CRUD はクラス ライブラリであり、System.Web.Cache にアクセスできないため、プロパティ情報はすべてのセッション/ユーザー間でキャッシュされませんか?