余計なネームスペース

大分操作にも慣れ、私にとって道具になったはずのVisual Studio 2005だが、それでも気に入らない点がいくつかある。今回の内容もそんな気に入らない挙動の一つ。

Visual Studio 2005、言語はC#を使い、新規で"HogeApplication"という名前でプロジェクトを作成すると、基準のネームスペースはプロジェクト名と同名となる。従って、このプロジェクト配下にコンテキストメニューから「追加」->「クラス」を選んだ場合、以下のようにクラスが生成されるだろう。

HogeApplication
 |
 +--- Class1.cs

using System;
using System.Collections.Generic;
using System.Text;

namespace HogeApplication
{
    class Class1
    {
    }
}

全く問題は無いし不満も無い。
今度は、例えばJavaではよくそうしているように、ソースコードを整理するための場所としてプロジェクト配下にフォルダ"src"を作り、この下にクラスを配置することにする。この状態でフォルダ"src"からコンテキストメニューでクラスを新規に作ると、なんと以下のようなクラスが生成されてしまうのだ。

HogeApplication
 |
 +-- src
      |
      +---- Class1.cs

using System;
using System.Collections.Generic;
using System.Text;

namespace HogeApplication.src
{
    class Class1
    {
    }
}

srcはソースを配置するフォルダであり、ネームスペースの一部では無いはずなのだが、Visual Studio 2005はこれをネームスペースと判断し、勝手にHogeApplication.srcというネームスペースを出力してしまうのである。
.NETのネームスペースはJavaのパッケージとは違い、ディレクトリの物理的な構造には関連しない、論理的な構造なのだから、この場合、srcというネームスペースは全く以って不要だと思うのだ。