ASP.NET MVC4 Web アプリがあり、アプリの初回起動時にいくつかのコードを実行したいと考えています。このコードは基本的に、データベースから大量のデータをロードしてキャッシュに保存するため、今後のリクエストでキャッシュからデータを検索できます。
このコードを配置する正しい場所はどこですか? コード行を Global.asax に追加するだけでよいですか、それともアプリの起動後にコードを呼び出すためのベスト プラクティスはありますか?
Global.asax.cs:Application_Start()
ルートの登録などを行うのと同じ場所。
これはまさにキャッシュを初期化する場所でもあります。また、各 Application_BeginRequest() のキャッシュ有効期限をチェックして、更新が必要かどうかを確認します。
Application_Start
Global.asaxにコードを配置できます。
または、静的メンバーで型を使用することもできますLazy
。これは、最初に呼び出されたときにのみ初期化されます (アプリケーションが実行されている限りメモリに残ります)。これには、アプリケーションの起動が不必要に遅くならないという利点があります。
たとえば、この例はコンパイル済みの Regex 用ですが、データの読み込みでも実行できます。
public static Lazy<Regex> LibraryTagsRegex =
new Lazy<Regex>(() => new Regex(@"^library/tagged/(?<Tags>.+)", RegexOptions.Compiled));