Sdílet prostřednictvím


Názvy oborů názvů

Poznámka:

Tento obsah je znovu vytištěn oprávněním Pearson Education, Inc. z Framework Design Guidelines: Conventions, Idioms a Patterns for Reusable .NET Libraries, 2. vydání. Tato edice byla publikována v roce 2008 a kniha byla od té doby plně upravena ve třetím vydání. Některé informace na této stránce můžou být zastaralé.

Stejně jako u jiných pokynů pro pojmenování je cílem vytváření názvů obory názvů pro programátora, který používá architekturu, aby okamžitě věděl, co bude obsah oboru názvů pravděpodobně. Následující šablona určuje obecné pravidlo pro pojmenování oborů názvů:

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

Následují příklady:

Fabrikam.Math Litware.Security

✔️ Názvy oborů názvů předpony DO s názvem společnosti, aby se zabránilo tomu, že obory názvů z různých společností mají stejný název.

✔️ Použijte stabilní název produktu nezávislý na verzi na druhé úrovni názvu oboru názvů.

❌ Nepoužívejte organizační hierarchie jako základ pro názvy v hierarchiích oborů názvů, protože názvy skupin v rámci společností mají tendenci být krátkodobé. Uspořádejte hierarchii oborů názvů kolem skupin souvisejících technologií.

✔️ Používejte PascalCasing a samostatné součásti oboru názvů s tečkami (např Microsoft.Office.PowerPoint. ). Pokud vaše značka využívá nestandardní velikost písmen, měli byste postupovat podle písmen definovaných vaší značkou, a to i v případě, že se liší od normálního velikostí písmen oboru názvů.

✔️ ZVAŽTE použití názvů v množném čísle, kde je to vhodné.

Například místo System.Collections .System.Collection Názvy značek a zkratky jsou však výjimkou tohoto pravidla. Například místo System.IO .System.IOs

❌ NEPOUŽÍVEJTE stejný název pro obor názvů a typ v daném oboru názvů.

Nepoužívejte Debug například jako název oboru názvů a pak také zadejte třídu pojmenovanou Debug ve stejném oboru názvů. Několik kompilátorů vyžaduje, aby tyto typy byly plně kvalifikované.

Konflikty názvů a názvů typů

❌ NEZAVÁDĚT obecné názvy typů, jako Elementje , Node, Loga Message.

Existuje velmi vysoká pravděpodobnost, že to povede ke konfliktům názvů typů ve běžných scénářích. Měli byste kvalifikovat obecné názvy typů (FormElement, XmlNode, EventLog, SoapMessage).

Existují konkrétní pokyny pro zabránění konfliktům názvů typů pro různé kategorie oborů názvů.

  • Obory názvů aplikačního modelu

    Obory názvů patřící do jednoho aplikačního modelu se velmi často používají společně, ale téměř nikdy se nepoužívají s obory názvů jiných aplikačních modelů. Obor názvů se například System.Windows.Forms velmi zřídka používá společně s oborem System.Web.UI názvů. Následuje seznam známých skupin oborů názvů modelu aplikace:

    System.Windows* System.Web.UI*

    ❌ Nedejte stejný název typům v oborech názvů v rámci jednoho aplikačního modelu.

    Například nepřidávejte typ pojmenovaný Page do System.Web.UI.Adapters oboru názvů, protože System.Web.UI obor názvů již obsahuje typ s názvem Page.

  • Obory názvů infrastruktury

    Tato skupina obsahuje obory názvů, které se při vývoji běžných aplikací zřídka importují. Obory názvů se například .Design používají hlavně při vývoji programovacích nástrojů. Zabránění konfliktům s typy v těchto oborech názvů není důležité.

  • Základní obory názvů

    Základní obory názvů zahrnují všechny System obory názvů kromě oborů názvů aplikačních modelů a oborů názvů Infrastruktury. Mezi základní obory názvů patří mimo jiné System, , System.IO, System.Xml, a System.Net.

    ❌ NEPOUŽÍVEJTE názvy typů, které by byly v konfliktu s jakýmkoli typem v oborech názvů Core.

    Například nikdy nepoužívejte Stream jako název typu. Byl by v konfliktu s velmi často používaným typem System.IO.Stream.

  • Skupiny oborů názvů technologie

    Tato kategorie zahrnuje všechny obory názvů se stejnými prvními dvěma uzly (<Company>.<Technology>*oboru názvů ), například Microsoft.Build.Utilities a Microsoft.Build.Tasks. Je důležité, aby typy patřící do jedné technologie nebyly v konfliktu mezi sebou.

    ❌ NEPŘIŘAZUJTE názvy typů, které by byly v konfliktu s jinými typy v rámci jedné technologie.

    ❌ NEZAVÁDĚT konflikty názvů typů mezi typy v technologických oborech názvů a oborem názvů aplikačního modelu (pokud tato technologie není určena k použití s aplikačním modelem).

© Části 2005, 2009 Microsoft Corporation. Všechna práva vyhrazena.

Reprinted by permission of Pearson Education, Inc. from Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries, 2nd Edition by Krzysztof Cwalina and Brad Abrams, published Oct 22, 2008 by Addison-Wesley Professional v rámci Microsoft Windows Development Series.

Viz také