20

2つの違いは何ですか?

4

1 に答える 1

49

(Visual Studioに関連して).NETについて話しているとすると、ルート名前空間は、VisualStudioプロジェクトで作成する各クラスがその一部になるものです。また、プロジェクトフォルダ内にクラスを作成するときに自動的に割り当てられるサブ名前空間のベースでもあります。

したがって、ACMECorp.Bombsの基本名前空間を使用すると、すべてのクラスがACMECorp.Bombs名前空間の一部になるため、クラスGravityBombのフルネームはACMECorp.Bombs.GravityBombになります。GuidedBombsというプロジェクトフォルダーに作成されたFlyingBombというクラスは、フルタイプ名がACMECorp.Bombs.GuidedBombs.FlyingBombになります。

アセンブリ名は、コードが実行可能ファイルまたはライブラリなどとしてコンパイルされるコンパイル済みファイルの名前です。

これに関して私がよく目にする質問は、アセンブリ名がルート名前空間と同じであり、プロジェクト名とも同じである必要があるかどうかです(これもVisual Studioで)。以前は、Visual Studioのデフォルトと同じように、プロジェクト名をアセンブリ名と同じにし、ルート名前空間と同じにする必要があると考えていました。ただし、主要なリファクタリングと名前の変更を行う必要がある場合、特にソース管理を使用している場合(プロジェクトフォルダーの名前の変更を開始する必要があるため)、これは問題になる可能性があります。

私の提案は、あなたのプロジェクト名は単にプロジェクトの内容を説明する名前であるということです。アセンブリ名は、テクノロジ領​​域とコンポーネントの説明、または会社名とテクノロジ領​​域(好みに応じて)で構成する必要があります。ルート名前空間は、Microsoftの命名基準で説明されているとおりにする必要があります。

プロジェクト:生体認証デバイスアクセス

アセンブリ:BiometricFramework.DeviceAccess.dll

名前空間:ACME.BiometricFramework.DeviceAccess

あなたのためのいくつかの参考資料:

http://blogs.msdn.com/brada/archive/2003/04/19/49992.aspx

http://msdn.microsoft.com/en-us/library/ms229026.aspx

http://msdn.microsoft.com/en-us/library/ms229048.aspx

于 2008-11-24T13:33:29.523 に答える