22

これは些細な質問のように聞こえるかもしれませんが、Webを簡単に調べたところ、app.config基本的に、アプリケーションのアプリケーションキー/データのペアを格納するための古いメカニズムであることがわかりました。

私が知りたいのは、私たち(.NET開発者として)app.configSettings file

-私たちがそれらを適切に使用できるように、誰かが両方にいくつかの長所と短所を提供できますか?

再度、感謝します

4

2 に答える 2

29

デスクトップアプリケーション用のApp.configおよびWebアプリケーション用のWeb.configは、.NET構成システムの一部です。主に、アプリケーションに関する.NETFramework設定を制御するために使用されます。これらは、アセンブリのバージョンの置換(セクション<assemblyBinding>)、. NET Frameworkバージョンの置換(<startup>)などの構成設定です(完全なapp.configスキーマについてはmsdnを参照してください)。1つのセクションはカスタム設定専用です。アプリケーション開発者の(<appSettings>)。カスタムセクションを作成する可能性もあります。したがって、設定を保存する必要がある場合は、app.configに便乗するか、独自の個別の構成ファイルを作成できます。

app.configを使用することの長所と短所は次のとおりです。

  1. Pro:.NETには、appSettingsセクションから設定を読み取るための標準APIがすでに存在します。いくつかの構成設定のみが必要な場合は、独自のクラスを開発してテストして構成ファイルを読み取るよりも、このすぐに使用できるAPIを使用する方がはるかに簡単です。また、app.configファイルはすでにVSプロジェクトに含まれています。

  2. Pro:machine.config/app.configの標準階層があります。マシン全体で設定してオーバーライドしたり、個々のアプリケーションに対してそのままにしておくことができるような設定を計画している場合は、app.configを使用する必要があります。

  3. Pro / Con:App.configは実行時にキャッシュされます。アプリケーションの実行中に更新が予想される場合は、構成ファイルの特定のセクションの更新を具体的に要求する必要があります。web.configの場合、ファイル内で何かが変更されると、Webアプリが自動的に再起動されます。これはとても便利です。

  4. 短所:app.configは、.exeファイルと同じディレクトリに保存されます。通常、C:\ProgramFilesのサブフォルダーにあります。このディレクトリは、Windows7では書き込みからさらに保護されています。そこに書き込むには、Administratorsグループのメンバーである必要があり、コントロールパネルのUAC(ユーザーアクセス制御)レベルが0に設定されていない場合(通常はそうではありません)、OSからc:\への書き込みを確認するように求められます。プログラムファイル。そのため、管理者権限を持たないユーザーは、app.configの構成を変更できません。プログラムで設定を変更する場合も同様です。アプリケーションがWindows7の管理者ユーザーの下で実行されていない場合、app.configを書き込もうとすると例外が発生します。通常、独自の構成ファイルはC:\ ProgramData \またはc:\Usersサブフォルダーに移動します。 (Windows 7の場合)。これらの場所は、ユーザーやプログラムによる書き込みに適しています。

  5. 短所:ユーザーがapp.configファイルを編集して誤って破損した場合、アプリケーション全体が不明瞭なエラーメッセージで起動しません。別の設定ファイルが破損している場合は、より詳細なエラーメッセージを表示できます。

結論:app.configは、より簡単な(より高速な開発)アプローチを提供し、ほとんどの場合、読み取り専用設定に適しています。カスタム設定ファイルを使用すると、ファイルの保存場所、検証/エラー処理、スキーマの柔軟性が向上しますが、開発中により多くの作業が必要になります。

于 2012-10-27T15:33:22.543 に答える
2

逆に言えば、設定ファイル(または元々呼び出されていたiniファイル)は、Windows 95より前のアプリケーション設定(キー/値のペア)を保持するために使用されていたメカニズムでした。Windows95のリリースでは、アプリケーション設定をWindowsレジストリに移動しました(レジストリを台無しにすると、Windowsを起動できなくなる可能性があるため、問題が発生しました)。

.configファイルは.Netで機能し始めました。XML形式では、単純なキーと値のペアよりも動的で複雑な設定構成が可能です。

最新のuser/settingsファイルは、.configファイルのXML拡張子です(特定の条件下で.configの特定の設定を上書きできる設定)。

于 2012-10-27T13:21:25.240 に答える