<configuration><sitecore><settings><setting>
アプリケーション固有の設定を作成するときに、従来の ASP.NET appSettings を Sitecore の設定 (つまり ) より優先する必要がある場合はありますか? たとえば、これらの設定を App_Settings/Include フォルダーにプルできるなど、Sitecore 設定を使用する利点がいくつか考えられますが、ASP.NET appSettings を使用する利点についてはわかりません。
5 に答える
3番目のアプローチをお勧めします。IConfigurationSectionHandler
プロジェクト (またはアセンブリ) に固有の構成ファイルと対応するファイルを作成することを強くお勧めします。これにより、ゴミ捨て場になることを防ぎappSettings
、sitecore/settings
魔法の文字列 (つまり、構成キー) がコードに散らばるのを防ぎます。このアプローチにより、開発者は特定のアセンブリ内のコードの設定がどこにあるかをすばやく特定することもできます (構成ファイルは、アセンブリと同様の名前にする必要があります)。さらに、Slow Cheetah を使用すると、構成変換をファイルに追加できます。
Web アプリケーション プロジェクト自体に非常に固有の設定以外に appSettings を使用するのは好きではありません。例はaspnet:MaxHttpCollectionKeys
、Trayek が述べたように、ClientValidationEnabled
またはUnobtrusiveJavaScriptEnabled
同様に、Sitecore モジュールの設定や Sitecore システムへのその他のカスタマイズを保存する以外の目的で Sitecore 設定を使用することも好きではありません。
あなたが説明するように、Sitecore構成ルートの利点はあると思います。つまり、設定はApp_Settings/Includeで独自の.configファイルに分離できます。web.configの外部に設定を移動することは、configSource属性を介してネイティブにある程度可能ですが、Sitecoreは必要な数のファイルを許可します。このようにして、各コンポーネントの設定を独自のファイルに含めることができます(そしてそのように配布できます)。
もう1つの利点は、Sitecoreの構成パッチメカニズムを利用できることです。コンポーネントがデフォルト設定ファイルをインストールするが、特定の環境で値をオーバーライドする必要がある場合は、2番目のファイルを配置して値をオーバーライドできます。
私たちのプロジェクトでは、アドレス情報を取得するために使用する URL などのグローバル設定を appSettings.config に、Sitecore 固有の設定を Sitecore 設定に持つ傾向があります。
aspnet:MaxHttpCollectionKeys<appsettings>
など、 にのみ追加できる設定があると思いますが、主に好みの問題だと思います(ただし、Sitecore 設定への追加はテストしていません)。
Kevin の不利な点 (少なくとも、私の理解では) は、使用している設定をすぐに確認できないことです。<sitecore>...</sitecore>
web.configのセクション。
appSettings の利点は、どこでもすぐに実行できることと、非常にシンプルなことです。ASP.NET を知っている人なら誰でも、appSettings が何であるかを知っています。Sean Kearney は良いアドバイスを提供していますが、KISS の規則に少し違反しているように感じます。構成設定には既に 2 つの異なるオプションがありますが、なぜ 3 つ目を追加するのでしょうか? 何百もの設定を扱っていない限り、これはまったく不要に思えます。
appSettings を独自のファイルに入れることで、すばやく簡単に管理しやすくすることができます。
また、構成に Sitecore 設定を使用しています。もう 1 つの利点は、プロパティを読み取るための適切なインターフェイスがあることです。
Sitecore.Configuration.Settings.GetBoolSetting("MySettings", false);
私が考えることができる唯一の欠点は、Inlude-folder 内のファイルが実行時にレンダリングされ、web.config の設定がレンダリングされないことです。したがって、何千もの設定がある場合は、それらを web.config に追加することを検討してください。