Share via


Nombres de espacios de nombres

Actualización: noviembre 2007

El nombre elegido para un espacio de nombres debería indicar la funcionalidad que proporcionan los tipos incluidos en el espacio de nombres. Por ejemplo, el espacio de nombres System.Net.Sockets contiene tipos que permiten a los desarrolladores utilizar sockets para realizar comunicaciones a través de las redes.

El formato general para un nombre de espacio de nombres es como se explica a continuación:

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

Por ejemplo, Microsoft.WindowsMobile.DirectX.

No utilice las jerarquías de organización como base para los nombres usados en jerarquías de espacios de nombres, ya que los nombres de grupo dentro de las corporaciones tienen tendencia a que su duración sea limitada.

El nombre de los espacios de nombres es un identificador de larga duración que no varía. Con la evolución de las organizaciones, los cambios no deberían hacer que quedara obsoleto el nombre del espacio de nombres.

Conflictos de espacios de nombres y nombres de tipos

Si elige un nombre de espacio de nombres o de tipo que está en conflicto con un nombre existente, los usuarios de la biblioteca deberán utilizar referencias completas a los elementos afectados. Éste no debería ser el caso en la mayoría de los escenarios de desarrollo.

Algunas de las instrucciones presentadas en esta sección son pertinentes para las siguientes categorías de espacios de nombres:

  • Espacios de nombres de modelo de aplicación

  • Espacios de nombres de infraestructura

  • Espacios de nombres básicos

  • Grupos de espacios de nombres de tecnología

Los espacios de nombres de un modelo de aplicación proporcionan el conjunto de funcionalidad específico para una clase de aplicaciones. Por ejemplo, los tipos incluidos en los espacios de nombres System.Windows.Forms proporcionan la funcionalidad necesaria para escribir aplicaciones cliente de formularios Windows Forms. Los tipos incluidos en los espacios de nombres System.Web admiten la escritura de aplicaciones de servidor basadas en Web. En general, en la misma aplicación no se utilizan espacios de nombres de distintos modelos de aplicación, por lo que es menos probable que los desarrolladores que usan su biblioteca se vean afectados por conflictos de nombres.

Las aplicaciones de la infraestructura proporcionan compatibilidad especializada y raramente se hace referencia a ellas en el código de los programas. Por ejemplo, las herramientas de desarrollo de programas utilizan los tipos incluidos en los espacios de nombres *.Designer. Los espacios de nombres *.Permissions son otro ejemplo de espacios de nombres de la infraestructura. No es probable que los conflictos de nombres con los tipos de los espacios de nombres de la infraestructura afecten a los desarrolladores que utilizan su biblioteca.

Los espacios de nombres básicos son los espacios de nombres System.* (excepto los espacios de nombres de la aplicación y de la infraestructura). System y System.Text son ejemplos de espacios de nombres básicos. Debería hacer todo lo posible para evitar conflictos de nombres con los tipos incluidos en los espacios de nombres básicos.

Los espacios de nombres pertenecientes a una tecnología determinada tendrán los mismos identificadores de primer y segundo nivel (Company.technology.*). Debe evitar la existencia conflictos de nombres dentro de una tecnología.

Instrucciones para los espacios de nombres de la aplicación

No asigne el mismo nombre a los tipos incluidos en espacios de nombres dentro de un único modelo de aplicación.

Por ejemplo, si estuviera escribiendo una biblioteca de controles especiales para que la utilizaran desarrolladores de aplicaciones de Windows Forms, no debería introducir un tipo denominado Checkbox porque ya existe un tipo con este nombre para el modelo de aplicaciones (CheckBox).

Instrucciones para el espacio de nombres básico

No proporcione nombres de tipos que entrarían en conflicto con los de cualquier tipo de los espacios de nombres básicos.

Por ejemplo, no utilice Directory como nombre de tipo porque entraría en conflicto con el tipo Directory.

Instrucciones para el espacio de nombres de tecnología

No introduzca conflictos de nombres de tipos entre los tipos incluidos en los 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 ser usada con el modelo de aplicaciones).

Portions Copyright 2005 Microsoft Corporation. Reservados todos los derechos.

Portions Copyright Addison-Wesley Corporation. Reservados todos los derechos.

Para obtener más información sobre las directrices de diseño, consulte el libro titulado "Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries" de Krzysztof Cwalina y Brad Abrams, publicado por Addison-Wesley, 2005.

Vea también

Otros recursos

Instrucciones de diseño para desarrollar bibliotecas de clases

Instrucciones de nomenclatura