Compartir a través de


Nombres de espacios

Nota:

Este contenido se vuelve a imprimir con el permiso de Pearson Education, Inc. de Directrices de diseño de frameworks: Convenciones, expresiones y patrones para bibliotecas reutilizables de .NET, 2ª Edición. Esa edición fue publicada en 2008, y el libro ha sido totalmente revisado en la tercera edición. Parte de la información de esta página puede estar obsoleta.

Al igual que con otras directrices de nomenclatura, el objetivo al asignar nombres a espacios de nombres es crear una claridad suficiente para que el programador use el marco para saber inmediatamente cuál es el contenido del espacio de nombres. La plantilla siguiente especifica la regla general para asignar nombres a espacios de nombres:

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

A continuación, se muestran algunos ejemplos:

Fabrikam.Math Litware.Security

✔️ Prefije los nombres de espacios de nombres con el nombre de una empresa para evitar que los espacios de nombres de diferentes empresas tengan el mismo nombre.

✔️ Use un nombre de producto estable, independiente de la versión, en el segundo nivel de un nombre de espacio de nombres.

❌ NO utilice jerarquías organizativas como base para los nombres en jerarquías de espacios de nombres, ya que los nombres de grupo dentro de las corporaciones tienden a ser efímeros. Organice la jerarquía de espacios de nombres en torno a grupos de tecnologías relacionadas.

✔️ DEBES usar PascalCasing, y separar los componentes del espacio de nombres con puntos (por ejemplo, Microsoft.Office.PowerPoint). Si su marca emplea mayúsculas y minúsculas no tradicionales, debe seguir las mayúsculas y minúsculas definidas por la marca, incluso si se desvía del uso de mayúsculas y minúsculas normales del espacio de nombres.

✔️ CONSIDERE la posibilidad de usar nombres de espacio de nombres plural cuando corresponda.

Por ejemplo, usa System.Collections en lugar de System.Collection. Sin embargo, los nombres de marca y los acrónimos son excepciones a esta regla. Por ejemplo, usa System.IO en lugar de System.IOs.

❌ NO use el mismo nombre para un espacio de nombres y un tipo en ese espacio de nombres.

Por ejemplo, no use Debug como nombre de espacio de nombres y proporcione también una clase denominada Debug en el mismo espacio de nombres. Varios compiladores requieren que dichos tipos estén plenamente calificados.

Espacios de nombres y conflictos de nombres de tipo

❌ NO introduzca nombres de tipo genéricos como Element, Node, Logy Message.

Hay una probabilidad muy alta de que hacerlo provocará conflictos de nombres de tipo en escenarios comunes. Debe calificar los nombres de tipo genéricos (FormElement, XmlNode, EventLog, SoapMessage).

Existen instrucciones específicas para evitar conflictos de nombres de tipo para diferentes categorías de espacios de nombres.

  • Espacios de nombres del modelo de aplicación

    Los espacios de nombres que pertenecen a un único modelo de aplicación se suelen usar juntos, pero casi nunca se usan con espacios de nombres de otros modelos de aplicación. Por ejemplo, el System.Windows.Forms espacio de nombres se emplea muy ocasionalmente junto con el System.Web.UI espacio de nombres. A continuación se muestra una lista de grupos de espacios de nombres conocidos del modelo de aplicación:

    System.Windows* System.Web.UI*

    ❌ NO asigne el mismo nombre a tipos dentro de espacios de nombres en un solo modelo de aplicación.

    Por ejemplo, no agregue un tipo denominado Page al System.Web.UI.Adapters espacio de nombres, ya que el System.Web.UI espacio de nombres ya contiene un tipo denominado Page.

  • Espacios de nombres de infraestructura

    Este grupo contiene espacios de nombres que rara vez se importan durante el desarrollo de aplicaciones comunes. Por ejemplo, .Design namespaces se usan principalmente al desarrollar herramientas de programación. Evitar conflictos con los tipos de estos espacios de nombres no es de importancia crítica.

  • Espacios de nombres principales

    Los espacios de nombres principales incluyen todos los System espacios de nombres, excepto los espacios de nombres de los modelos de aplicación y los espacios de nombres de infraestructura. Los espacios de nombres principales incluyen, entre otros, System, System.IO, System.Xmly System.Net.

    ❌ NO proporcione nombres de tipos que entrarían en conflicto con cualquier tipo en los espacios de nombres Core.

    Por ejemplo, nunca se usa Stream como un nombre de tipo. Entraría en conflicto con System.IO.Stream, un tipo muy usado.

  • Grupos de espacios de nombres de tecnología

    Esta categoría incluye todos los espacios de nombres con los mismos dos primeros nodos de espacio de nombres (<Company>.<Technology>*, como Microsoft.Build.Utilities y Microsoft.Build.Tasks. Es importante que los tipos que pertenecen a una sola tecnología no entren en conflicto entre sí.

    ❌ NO asigne nombres de tipo que entren en conflicto con otros tipos dentro de una sola tecnología.

    ❌ NO introduzca conflictos de nombres de tipo entre tipos en espacios de nombres de tecnología y un espacio de nombres de modelo de aplicación (a menos que la tecnología no esté pensada para usarse con el modelo de aplicación).

© Partes 2005, 2009 de Microsoft Corporation. Todos los derechos reservados.

Reimpreso con permiso de Pearson Education, Inc. de Framework Design Guidelines: Convenciones, Idiomas y Patrones para Bibliotecas .NET Reusables, 2ª Edición por Krzysztof Cwalina y Brad Abrams, publicado el 22 de octubre de 2008 por Addison-Wesley Professional como parte de la Serie Desarrollo de Microsoft Windows.

Consulte también