Megosztás a következőn keresztül:


Névterek nevei

Feljegyzés

Ezt a tartalmat a Pearson Education, Inc. engedélyével nyomtatjuk újra a Framework Design Guidelines: Conventions, Idioms és Patterns for Reusable .NET Libraries, 2nd Edition engedélyével. Ezt a kiadást 2008-ban adták ki, és a könyvet azóta teljesen átdolgozták a harmadik kiadásban. Előfordulhat, hogy az oldalon található információk némelyike elavult.

Más elnevezési irányelvekhez hasonlóan a névterek elnevezésének célja, hogy a programozó a keretrendszer használatával egyértelművé teszi a névtér tartalmát. Az alábbi sablon a névterek elnevezésének általános szabályát adja meg:

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

Az alábbi parancsok példák:

Fabrikam.Math Litware.Security

✔️ DO előtag névtérnevek cégnévvel, hogy megakadályozzák, hogy a különböző vállalatok névterei azonos nevet viseljenek.

✔️ A DO egy stabil, verziófüggetlen terméknevet használ a névtérnév második szintjén.

❌ NE használjon szervezeti hierarchiákat a névtérhierarchiákban szereplő nevek alapjául, mivel a vállalatokon belüli csoportnevek általában rövid élettartamúak. Rendszerezheti a névterek hierarchiáját a kapcsolódó technológiák csoportjai köré.

✔️ DO használja a PascalCasingot, és különítse el a névtér összetevőit pontokkal (pl. Microsoft.Office.PowerPoint). Ha a márka nem hagyományos burkolatot használ, akkor a márka által meghatározott burkolatot kell követnie, még akkor is, ha eltér a normál névtérháztól.

✔️ Fontolja meg a többes névtérnevek használatát, ha szükséges.

Például használja ahelyett, hogy System.CollectionsSystem.Collection. A szabály alól azonban kivételt képeznek a márkanevek és a betűszók. Például használja ahelyett, hogy System.IOSystem.IOs.

❌ NE használja ugyanazt a nevet egy névtérhez és egy típushoz az adott névtérben.

Ne használjon Debug például névtérnévként, és adjon meg egy osztályt Debug is ugyanabban a névtérben. Számos fordító megköveteli, hogy az ilyen típusok teljes mértékben minősítettek legyenek.

Névterek és típusnévütközések

❌ NE vezessen be általános típusneveket, például Element, Node, Logés Message.

Nagyon nagy a valószínűsége annak, hogy ez a gyakori forgatókönyvekben típusnévütközésekhez vezet. Az általános típusneveknek (FormElement, XmlNode, , EventLog) SoapMessagekell megfeleltetnie.

A névterek különböző kategóriái esetében a típusnévütközések elkerülésére külön irányelvek vonatkoznak.

  • Alkalmazásmodell-névterek

    Az egyetlen alkalmazásmodellhez tartozó névtereket gyakran használják együtt, de szinte soha nem használják őket más alkalmazásmodellek névtereivel. A névteret például System.Windows.Forms nagyon ritkán használják a System.Web.UI névtérrel együtt. Az alábbi lista jól ismert alkalmazásmodell-névtércsoportokat tartalmaz:

    System.Windows* System.Web.UI*

    ❌ NE adja meg ugyanazt a nevet az egyetlen alkalmazásmodell névtereinek típusainak.

    Például ne adjon hozzá névtérhez elnevezett PageSystem.Web.UI.Adapters típust, mert a System.Web.UI névtér már tartalmaz egy elnevezett Pagetípust.

  • Infrastruktúra-névterek

    Ez a csoport olyan névtereket tartalmaz, amelyeket ritkán importálnak a közös alkalmazások fejlesztése során. A névtereket például .Design főként programozási eszközök fejlesztésekor használják. Az ilyen névterek típusaival való ütközések elkerülése nem kritikus fontosságú.

  • Alapvető névterek

    Az alapvető névterek tartalmazzák az összes System névteret, kivéve az alkalmazásmodellek és az infrastruktúra-névterek névtereit. Az alapvető névterek közé tartoznak többek között a System, System.IO, System.Xmlés System.Neta .

    ❌ NE adjon olyan típusneveket, amelyek ütköznének a Core névterekben lévő bármely típussal.

    Például soha ne használjon Stream típusnévként. Ez ütközne egy nagyon gyakran használt típussal System.IO.Stream.

  • Technológiai névtércsoportok

    Ez a kategória tartalmazza az összes névteret ugyanazzal az első két névtércsomóponttal (<Company>.<Technology>*, például Microsoft.Build.Utilities és Microsoft.Build.Tasks. Fontos, hogy az egyetlen technológiához tartozó típusok ne ütközjenek egymással.

    ❌ NE rendeljen olyan típusneveket, amelyek ütköznének más, egyetlen technológián belüli típussal.

    ❌ NE vezessen be típusnévütközéseket a technológiai névterek típusai és az alkalmazásmodellek névterei között (kivéve, ha a technológiát nem az alkalmazásmodellhez kívánják használni).

© Részletek 2005, 2009 Microsoft Corporation. Minden jog fenntartva.

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 22, 2008 by Addison-Wesley Professional, a Microsoft Windows Development Series részeként.

Lásd még