私は MVC 3 で構築したシステムを持っています。これは現在、システムが AppSettings として web.config に保存されている日付に関連付けられた 7 つの深刻な手順を実行する年次提出サイクルを提供します。ただし、毎年、エンド ユーザーに対応するために、前のステップ間でシステムをロールバックする必要があります。管理者が開発者に連絡しなくてもシステムの状態を制御できるようにしたいと考えています。これを行う最善の方法は何ですか?
管理者が日付を設定できる適切な検証を備えたページを作成する予定です。これらの日付を保存する方法についていくつかのオプションを検討しましたが、どれも正しくないようです。私たちの許可システム全体がこれらの日付を使用し、ページ上のさまざまなテキストは、現在の期間に基づいてオンとオフを切り替えます.
これまでのところ、次の 2 つのオプションを考え出しました。
オプション 1: データベース テーブルを作成する– これが私の最初の考えでした。global.asax の MvcApplication クラスにプロパティを設定し、データベースから取得しました。遅延ローダーを使用して、初めて必要になったときにプロパティを設定できます。ただし、データベースで変更された場合、システムを強制的に「リセット」して日付の変更を読み取る方法がありません。Begin_Request() でこのアクションを実行すると、静的コンテンツであるかどうかに関係なく、Web ブラウザーがサーバー上で開く各ファイルのプロパティを常に開き、プロパティをリセットします。
日付のいずれかが必要になるたびに、データベースから日付を直接取得できますが、データベース呼び出しの繰り返しを減らすために多くの機能をやり直す必要があります。各リクエストの日付をキャッシュして、必要なときにのみ取得したいのですが、
オプション 2: アプリケーションを介して構成ファイルを編集できるようにする – web.config ファイルを分割する方法を調べたので、appSettings だけを含む別のファイルを作成できます。次に、コントローラーのアクションから新しい構成ファイルを更新するだけです。これはうまく機能し、既存の機能を書き直す必要はないと思いますが、コードに悪い設計パターンを導入しているように感じます.