global.asax で定数を使用することは良い考えですか?
1 に答える
それはいつも、あなたはそのような変数に何を保持していますか?
主な設定 ( READ ONLY ) 変数をweb.config
ファイル内の<appSettings>
領域に保持します。次に例を示します。
<appSettings>
<add key="AmazonS3:CalendarPath"
value="http://mycloud.s3-eu-west-1.amazonaws.com/Calendar/" />
</appSettings>
そのような値にアクセスするには
string calPath = System.Configuration.ConfigurationManager.AppSettings["AmazonS3:CalendarPath"];
ビューまたはコントローラーのいずれかで。
これは、読み取り専用変数を保持するのに最適な場所です。Web アプリケーションがビルドされているかどうか、コンパイルされているか、すべてのソース ファイルを表示しているかに関係なく、コンパイルされたファイルを開かずに、変数を必要なものに簡単に変更できます。それとプロジェクトを再度コンパイルします...多くの手間を省き、穴のアプリケーション設定に特定のダイナミクスを与えます。
一方、アプリケーション全体で変数を保存する読み取り/書き込みの方法が必要な場合は、3 つの方法があり、すべて長所と短所があります。
セッション状態を使用して変数を保存しますこれが最も使用されますが、リクエストがサーバーを変更する可能性があり、ユーザーの続行リクエストを受信した新しいサーバーがセッションを持たないため、Cloud Platforms ではひどいものです
Cookie を使用してユーザー変数を保存する Cookieはユーザーがその場で変更できるため、UI 定義などの小さな変更の設定を保存するためにのみ使用します。
キャッシュ レイヤーを使用して変数を保持するこれは、設定を保存できるだけでなく、ほとんどの場合アクセスするデータの一部を保存できるため、クラウド プラットフォームで最もよく使用されます。
魔女のアプリケーション設定もありglobal.asax
、Classic ASP の時代に非常に使用されていました。それ以来、セッション変数と同じフローを持っているため、それらを使用したことはありません。魔女はメモリに配置されます...アプリケーションプールのリセット、新しいビルドすると、すべてのセッションが失われます。
また、ASP.NET プロジェクトでアプリケーション間で変数を保存するために必要なすべてのオプションをよりよく理解するために検索できる投稿がたくさんあります。