2011-07-05 17 views
3

私たちのasp.netアプリケーションにはたくさんのappSettingsがあります。それらをデータベースに移動することをお勧めしますか?私は管理している活動を維持し、実行するのが簡単であるという利点を知っています。誰かが何か問題に直面したかどうかを知る必要があります。データベースにアプリケーション設定を保存する

+1

私はあなたのデータベース文字列がappsettingにないことを望みます;)。使用状況によっては、データベースにアクセスするのが遅くなります。 – Peter

+0

@peer私は遅さについてあなたの点に同意しません。あなたはそれについて何か測定しましたか? – Illuminati

+2

最初は遅くなりますが、キャッシュされたときは速やかに処理する必要があります。 –

答えて

1

設定には設定がありませんが、構成の量が膨大なので、別のDBテーブルを維持しています。そこに問題はありません。もちろん、設定情報に関連するクエリーを避けるために、キャッシングを使用する必要があります。

0

app.config/web.config/database/cache/customソリューションを使用して構成値を格納する方法は、すべて有効です。

あなたが実際に選択する方法は、あなた、あなたのチーム、そしてあなたの状況に適したアプリケーションによって異なります。

0

これは、appSettingsがメモリにロードされ、アプリケーションがロードされてからweb.configが更新された場合に再ロードされるため、パフォーマンスが低下することが予想されます。それらをデータベースに格納した場合は、毎回データベースにアクセスする必要があります。

性能差のレベルを示すことはできませんでしたので、問題の可能性があります。

+0

ええ、なぜあなたはキャッシュが正しいのですか? – Illuminati

+0

@Bumble Bee - 許可されていますが、キャッシュエントリを無効にするために何かに頼っていると、設定の更新が遅れます。私の期待は、リロードがより速く、DBからロードするよりも少ないリソースを使用するということです。私は利益があなたの設定に依存すると思う。例えば。多数のサーバーにアプリケーションをインストールしている場合は、管理者の視点から中央のDBに保存する方が簡単です。 – detaylor

+0

Trueですが、このケースでは、Setters内​​で無効化を実装しており、メンテナンス性については正しいです。我々は設定の何百ものように持っているので、appsettingsとしてそれらを持っているのは悪夢だったでしょう。 – Illuminati

1

アプリの設定数を減らし、管理しやすくするためにできることはたくさんあります。それぞれに独自のプラスとマイナスがあります。それらをdbに移動することはメンテナンス性を向上させるのに役立ちます(リサイクルを必要とせずにフロントエンドを構築して監視し調整することができます)。また、キーの値のペアだけでなく、関連性がある場合はカスタムセクションにグループ化し、より適切に文書化することもできます。

dbに入る場合は、それらのキャッシュとキャッシュの管理方法を検討する必要があります。

一般的な答えはありません。あなたの状況によって異なります。

0

Asp.netには、configのカスタムプロバイダを実装するためのメカニズムがあります。私は複数のサーバーが同じ設定を必要とするシナリオのためにこれを調べました。だから、共有設定がうまくいくでしょう。そこには非常に小さな文書しかありませんでした。

また、web.configファイルが監視されているため、アプリケーションの再起動を促すメッセージが表示されます。 DBを使用する場合は、これに代わるメカニズムが必要です。

さらに簡単なのは、カスタム設定セクションを定義することです。

Simon

+0

カスタム設定プロバイダを実装するためのこのマカニズムは何ですか? – Jeremy

+0

これは役立つかもしれません:http://pknopf.com/blog/read-net-configuration-from-a-database –

関連する問題