### 存储.NET 应用程序到定制的 XML .config 文件中

在决定分布基于.Net 框架的应用程序之前，要决定怎样管理公共程序的设置。要提高代码的重用率和应用程序的互用性，所有的应用程序 – WEB, Windows, Web 服务，Windows 服务都要使用应用配置文件作为公共的方法来管理以应用为中心的信息。
系统配置 vs. 应用配置
当.NET 的公共语言运行库（CLR）执行应用程序的时候，它会使用一系列的 XML 配置文件来设置运行环境的基本属性。举例说，如果执行 WEB 应用程序，那么 CLR 就会询问 WEB.config 文件来确定以下的设置，包括认证模式（Forms, Windows,或者没有）,认证的用户，会话状态设置（InProc, StateServer, or SQL），以及其他关键设置。
和上面一样，Machine.config 系统文件提供整个网站的 ASP.NET 配置设定，并设置用于 ASP.NET 应用的 Web.config 中的基础设定。Security.config 和 EnterpriseSec.config 定义系统范围内的安全和代码权限设置，它应用于 Windows 应用程序。
如果应用程序需要运行在相同的运行环境中，默认的设置就可以满足需求并运行良好。但是，如果需要特定配置提供给基于应用的应用程序，可以将这些信息存储到特定的由 CLR 认可的文件，并由应用程序来调用。
存储应用配置信息
.NET 应用的信息存储在应用执行的目录下，以.config 作为文件扩展名。应用程序的全文件名可以作为配置文件的前缀名：
applicationname.exe.config
<也可以通过使用 SYSTEM.CONFIGURATION 命名空间程序化的从 XML.config 文件取得应用程序设定。下面的应用程序配置文件样例显示了应用程序中存储的连接字符串。
<configuration>
<appSettings>
<add key="ConnectionString" value="Provider=SQLOLEDB.1;..."/>
</appSettings>
</configuration>
将应用程序配置信息存储到外部文件更新应用程序的属性而不用重新编译整个程序。比如，假设正在开发基于 SQL 数据库的应用程序，如果将连接信息写入程序内部。当数据库转移到另外的服务器上，就需要重新编译并且重新分发程序来适应这个改变。如果使用.config 文件，要做的事情仅仅是在.config 文件中改动 ConnectionString 键。
要更有效的使用.config 文件，需要为该应用程序创建键名和值的标准定义，该定义将作为整个开发团队的标准，这就允许在同一项目工作的开发者使用同一个项目设定。这个标准在分发应用程序并交付生产时也非常有用。一旦标准化.config 设置，运作组就会知道当公共应用程序配置相关问题发生时哪里是首先应该进行检查和排错的。