通常、サイトのパフォーマンスを向上させたい場合に使用cache
します。データベース呼び出しの削減、ファイルシステム上のファイルへのアクセス、外部サービスの呼び出しなどです。
Scenario 1
:データベースに保存されているすべての製品を一覧表示するページを持つアプリケーションがあるとします。ユーザーは製品リストのフィルタリング機能を必要としています(たとえば、ebayやamazonなど)。また、製品リストページの使用頻度と比較して、製品リストおよび製品機能がほとんど変更されていないことも知られています。
Solution 1
:ここではcache
、データベース呼び出しを減らすために使用できます。製品リストと製品機能をcache
メモリにフィルタリングを実行し、冗長なデータベース呼び出しを回避するために配置します。Cache
製品リストまたは機能が変更されるたびに無効にする必要があります。このソリューションは、メモリ消費の処理がパフォーマンスの向上よりも安くなるまでは問題ありません。
優れたリソースとして、 ASP.NETキャッシング:テクニックとベストプラクティスのMSDNの記事を読むことをお勧めします。
通常、profile
具体的なユーザーに固有のデータを保存し、ユーザーがシステムにログインするたびに利用できるようにする必要があります。
Scenario 2
:と同じアプリケーションを使用していると考えてください。Scenario 1
ただし、ユーザーがフィルター設定(お気に入りのフィルターのリストの種類)を保存する機能を提供する必要があります。
Solution 2
:一種のfilter-stateクラスを作成し、それをuserに格納できますprofile
。その結果、ユーザーはフィルターパラメーターを何度も指定する必要がなくなり、ユーザーがログインするたびにこれらの設定を利用できるようになります。
Session
すべてのWebページからアクセスでき、次回ユーザーがログインするときに必要とならないユーザー固有の情報を格納するために使用されます。
Scenario 3
:一部のeコマースアプリケーションがあり、マーケティング担当者がサイトで何が起こっているかをリアルタイムで確認したいとします。つまり、特定のユーザーがログイン中にアクセスしたページを確認します。このシナリオを選択したユーザーのアクティビティスナップショットと見なします。 。
Solution 3:
ここでsession
は、ユーザーがアクセスしたURLをログに記録し、マーケティング担当者向けのレポートを生成するために使用できます。
状態管理については、別のMSDN記事ASP.NET状態管理の概要を参照することもできます。
asp.netアプリケーションの状態を管理しているオブジェクト間の違いを強調するもう1つの良い答え。
これが少しお役に立てば幸いです。