次の方法で共有


名前空間の名前

更新 : 2007 年 11 月

名前空間用に選択した名前で、名前空間内の型によって使用できる機能を示す必要があります。たとえば、System.Net.Sockets 名前空間に含まれる型を使用すると、開発者がソケットを使用してネットワーク経由で通信できます。

名前空間の名前の一般的な形式は次のとおりです。

<Company>.(<Product>|<Technology>)[.<Feature>][.<Subnamespace>]

たとえば、Microsoft.WindowsMobile.DirectX などです。

企業内のグループ名は変更されることが多いため、名前空間の階層構造での命名基準として組織の階層構造を使用することは避けてください。

名前空間名は長期的に使用する、不変の識別子です。組織が発展する中で、組織にさまざまな変更があっても名前空間名が廃止されることはないようにしてください。

名前空間名および型名の競合

既存の名前と競合する名前空間名や型名を選択した場合、ライブラリ ユーザーは、影響を受ける項目への参照を修飾しなければならなくなります。大部分の開発シナリオでは、このような事態は避けてください。

このセクションに示すガイドラインのいくつかは、次のカテゴリの名前空間に関連します。

  • アプリケーション モデル名前空間

  • インフラストラクチャ名前空間

  • コア名前空間

  • テクノロジ名前空間グループ

アプリケーション モデルの名前空間は、アプリケーションのクラスに固有の機能セットを提供します。たとえば、System.Windows.Forms 名前空間の型は、Windows フォーム クライアント アプリケーションの作成に必要な機能を提供します。System.Web 名前空間の型は、Web ベースのサーバー アプリケーションの作成をサポートします。一般に、同じ 1 つのアプリケーションで、異なるアプリケーション モデルに属する名前空間を使用することはないため、ライブラリを使用する開発者が名前の衝突の影響を受けることはあまりありません。

インフラストラクチャ アプリケーションは特化されたサポートを提供するため、プログラム コードで参照されることはめったにありません。たとえば、*.Designer 名前空間の型は、プログラム開発ツールによって使用されます。*.Permissions 名前空間もインフラストラクチャ名前空間の 1 つです。インフラストラクチャ名前空間の型では、名前の衝突が、ライブラリを使用する開発者に影響する可能性はありません。

コア名前空間は、アプリケーション名前空間とインフラストラクチャ名前空間を除く System.* 名前空間です。SystemSystem.Text は、コア名前空間の例です。コア名前空間の型では、名前の衝突を必ず避ける必要があります。

特定のテクノロジに属する名前空間では、第 1 レベルと第 2 レベルの識別子が同じになります (Company.technology.*)。テクノロジ内での名前の衝突を避ける必要があります。

アプリケーション名前空間のガイドライン

単一のアプリケーション モデル内の名前空間の型に同じ名前を割り当てないでください。

たとえば、Windows フォーム アプリケーションの開発者が使用する特別なコントロールのライブラリを作成する場合、Checkbox という名前の型を導入しないでください。アプリケーション モデルには、この名前を持つ型 (CheckBox) が既に存在するからです。

コア名前空間のガイドライン

コア名前空間の型と競合する型の名前を割り当てないでください。

たとえば、Directory を型名として使用しないでください。この名前を型名として使用すると、Directory 型と競合するからです。

テクノロジ名前空間のガイドライン

テクノロジ名前空間とアプリケーションモデル名前空間に含まれる型の間では型名の競合が起こらないようにしてください。ただし、そのテクノロジをアプリケーション モデルで使用しない場合は除きます。

Portions Copyright 2005 Microsoft Corporation.All rights reserved.

Portions Copyright Addison-Wesley Corporation.All rights reserved.

デザイン ガイドラインの詳細については、2005 年に Addison-Wesley から出版されている Krzysztof Cwalina、Brad Abrams 共著の『Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries』を参照してください。

参照

その他の技術情報

クラス ライブラリ開発のデザイン ガイドライン

名前に関するガイドライン