User.Config といえば、開発環境と実行環境の差分を切り替えるのに
有効な技のひとつだったのですが、.NET Framework 2.0では、
考え方が変わってきているようですね。


Visual Studio .NET 2003(.NET Framework 1.x)
分散アプリケーションの構築  
Visual Studio .NET と Visual SourceSafe を使用したチーム開発 - 依存関係の管理
ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.TECHART.v10.ja/jpdnbda/htm/tdlg_ch4.htm

動的 URL とユーザー構成ファイルの使用方法

XML Web サービス参照の URL Behavior プロパティを dynamic に設定して、開発環境および実稼動環境の両方で最大の柔軟性を発揮するようにします。アプリケーション構成ファイルで XML Web サービスの実稼動 URLを設定して、開発とテストを目的としたユーザー構成ファイルを作成します。ユーザー構成ファイルが存在しない場合は、アプリケーション構成ファイルが使用されることになります。

ユーザー構成ファイルで XML Web サービスの URL を指定するには

  1. file="user.config" 属性を、メイン アプリケーション構成ファイルの appSettings 要素に追加します。これにより、アプリケーション構成ファイルが appSettings セクションの情報にアクセスするときに、ランタイムが指定したユーザー構成ファイルに自動的にリダイレクトされます。ユーザー構成ファイルが見当たらない場合は、メイン アプリケーション構成ファイルの設定が代用され、ランタイム エラーは生成されません。
    <configuration>
     <appSettings file="user.config">
       <add key="ClientApplication.SomeServer.SomeService"
            value="http://ProdWeb/myXmlWebService/Service1.asmx"/>
     </appSettings>
    </configuration>
      

    上記の例では、 ClientApplication.SomeServer.SomeService が XML Web サービス プロキシ クラスのフルパス名です。 ClientApplication.SomeServer が名前空間で、SomeService がプロキシ クラス名です。

  2. 次のコードで示すように、 (同一のフォルダにアプリケーション構成ファイルとして格納される) User.config ファイルを作成し、 XML Web サービスの URL を識別する key と value のペアを含む appSettings エントリを追加します。この例では、URL がローカルの Web サーバーを参照することに注意してください。また、User.config ファイルには <configuration> 要素がなくなっています。
    <appSettings>
       <add key="ClientApplication.SomeServer.SomeService"
            value="http://localhost/myXmlWebService/Service1.asmx"/>
    </appSettings>
      
  3. User.config を VSS にチェックインしないでください。この方法では、各開発者 (および、テスト チーム) は特定の URL に各自の User.config ファイルのエントリを使用して明示的にバインドできます。メイン アプリケーション構成ファイルは、実稼動 XML Web サービスのアドレスを保持する必要があります。この URL は User.config ファイルが存在しない場合に使用されます。

    ヒント: 既定により、ユーザー構成ファイルは自動的に VSS に追加されます。追加されないようにするには、ソリューション エクスプローラ内に表示されているプロジェクトを右クリックして [プロジェクトから削除] をクリックします。その後ソリューション エクスプローラ内でファイルを参照するには、ソリューション エクスプローラの最上部にある [すべてのファイルを表示] アイコンをクリックします。

重要    ユーザー構成ファイルを使用する Web アプリケーションの場合、ファイルを少しでも変更すると、 Web アプリケーションの自動再利用が行われなくなります。これは Web.config の場合にのみ発生します。その結果、ユーザー構成ファイルのすべての変更をアプリケーションはすぐに参照しません。手動で Web アプリケーションを停止して再起動する必要があります。これが、実稼動環境の設定に Web.config ファイルを使用し、開発とテスト環境の設定にのみ User.config ファイルを使用する、もう 1 つの理由です。

Visual Studio 2005 (.NET Framework 2.0)

Windows フォームのプログラミング 
アプリケーション設定の概要
http://msdn2.microsoft.com/ja-jp/library/k4s6c3a0(d=ide).aspx

設定は、XML フラグメントとして構成ファイルに格納されます。アプリケーション スコープ設定は <application.Settings> 要素によって表され、一般に、app.exe.config 内に配置されます。app はメイン実行可能ファイルの名前です。ユーザー スコープ設定は <userSettings> 要素によって表され、user.config に配置されます。user は、現在、アプリケーションを実行しているユーザーのユーザー名です。app.exe.config ファイルは、アプリケーションと一緒に配置する必要があります。アプリケーションがそのユーザーの設定を最初に保存する際に、設定アーキテクチャによって、要求に応じて user.config ファイルが作成されます。app.exe.config 内に <userSettings> ブロックを定義して、ユーザー スコープ設定に既定値を設定することもできます。

Visual Studio 
アプリケーション設定
http://msdn2.microsoft.com/ja-jp/library/a65txexh(d=ide).aspx

プロジェクト システムは、アプリケーション設定を 2 つの XML ファイルに保存します。1 つは、デザイン時に最初のアプリケーション設定を作成したときに作成される app.config ファイルで、もう 1 つは、アプリケーションを実行するユーザーが実行時にユーザー設定の値を変更したときに作成される user.config ファイルです。アプリケーションが明示的にメソッドを呼び出さない限り、ユーザー設定の変更はディスクに書き込まれないことに注意してください。


user.config という キーワードが別の意味合いをもって使われているのでややこしいのですが、
ま、それはいいとして、

Visual Studio 2005 で、以前のように、開発環境、実行環境の切り替えを行いたい場合の
ベストプラクティスが不明です・・・。

<appSettings > を VS2005 手書きすることはできますし、インテリセンスもでますが、
これをつかってしまうと、ConfigrationManagerクラスの恩恵からはずれてしまうような。

うーむ。。
みなさまは、どうされていますでしょうか?