Nomes de namespaces
O nome escolhido para um namespace deve indicar a funcionalidade disponibilizada por tipos no namespace. Por exemplo, o System.Net.Sockets namespace contém tipos que permitem aos desenvolvedores usar soquetes para se comunicar através de redes.
O formato geral para o nome do namespace é o seguinte:
<Company>.(<Product>|<Technology>)[.<Feature>][.<Subnamespace>]
Por exemplo, Microsoft.WindowsMobile.DirectX.
Os espaços de nomes com um nome de empresa para impedir que os espaços para nomes de diferentes empresas tenham o mesmo nome e o prefixo de prefixo.
Use um nome de produto estável, independente de versão no segundo nível de um nome de namespace.
Não use hierarquias organizacionais como base para nomes de hierarquias de namespace, porque os nomes de grupo dentro de empresas tendem a ser curta duração.
O nome do namespace é um identificador de vida longa e inalterável. À medida que evoluem as organizações, as alterações não devem tomar o nome do namespace obsoleto.
Use Pascal casing e componentes de namespace separado por pontos (por exemplo, Microsoft.Office.PowerPoint). Se a sua marca emprega não tradicional de maiúsculas e minúsculas, você deve seguir o casing definido pela sua marca, mesmo se desviar-se de maiúsculas e minúsculas do namespace normal.
Considere o uso de nomes de espaço para nome no plural onde for apropriado. Por exemplo, use System. Collections em vez de System.Collection. Os nomes de marca e acrônimos são exceções a essa regra, entretanto. Por exemplo, use System. IO, em vez de System.IOs.
Não use o mesmo nome para um espaço para nome e um tipo de namespace. Por exemplo, não usar a depuração para um nome de namespace e também fornecer uma classe chamada Debug no mesmo namespace. Alguns compiladores exigem tais tipos de ser totalmente qualificado.
Namespaces e conflitos de nome de tipo
Se você escolher um nome de namespace ou tipo que está em conflito com um nome existente, os usuários da biblioteca terá que qualificar as referências para os itens afetados. Isso não deve ser o caso na maioria dos cenários de desenvolvimento.
Algumas das diretrizes apresentadas nesta seção são relevantes para as seguintes categorias de namespaces:
Namespaces de modelo de aplicativo
Namespaces de infra-estrutura
Namespaces básicos
Grupos de namespace de tecnologia
Os namespaces em um modelo de aplicativo fornecem o conjunto de funcionalidades específicas para uma classe de aplicativos. Por exemplo, os tipos no System.Windows.Forms namespaces fornecem a funcionalidade necessária para Windows forms de escrever aplicativos do cliente. Os tipos de System.Web namespaces suporte à gravação de aplicativos de servidor baseado em Web. Em geral, namespaces a partir de modelos diferentes de aplicativos não são usados no mesmo aplicativo, portanto, os conflitos de nome são menos probabilidade de afetar os desenvolvedores usando sua biblioteca.
Os aplicativos de infra-estrutura fornecem suporte especializado e raramente são referenciados no código do programa. Por exemplo, os tipos no *.Designer namespaces são usados por ferramentas de desenvolvimento do programa. O *.Permissions namespaces são outro exemplo de infra-estrutura de namespaces. Os conflitos de nome com tipos em namespaces de infra-estrutura provavelmente não afetam os desenvolvedores usando sua biblioteca.
Os namespaces básicos são o System.* namespaces (excluindo os namespaces de aplicativos e infra-estrutura). Systeme System.Text são exemplos de namespaces do núcleo. Você deve fazer todos os esforços para evitar conflitos de nomes com tipos nos namespaces core.
Os namespaces que pertencem a uma determinada tecnologia terão o mesmo primeiro e segundo nível identificadores (Company.technology.*). Você deve evitar conflitos de nome dentro de uma tecnologia.
Diretrizes de Namespace gerais
Não apresente nomes de tipo genérico, como o elemento, nó, Log e mensagem. Há uma probabilidade muito alta, que ele levaria para digitar os conflitos de nome em cenários comuns. Você deve qualificar os nomes de tipo genérico (FormElement, log de eventos de XmlNode, SoapMessage).
Diretrizes de Namespace do aplicativo
Não atribua o mesmo nome para tipos em namespaces dentro de um modelo único aplicativo.
Por exemplo, se você estivesse escrevendo uma biblioteca de controles especiais a serem usados por desenvolvedores de aplicativos do Windows forms, você não deve apresentar um tipo chamado Checkbox porque já existe um tipo com este nome para o modelo de aplicativo (CheckBox).
Diretrizes de Namespace do núcleo
Não dê nomes de tipos que estaria em conflito com qualquer tipo dos namespaces básicos.
Por exemplo, não use Directory como um tipo de nome porque isso estaria em conflito com o Directory tipo.
Diretrizes de Namespace de tecnologia
Não atribua nomes de tipo estaria em conflito com outros tipos de uma única tecnologia.
Não apresente conflitos de nome de tipo entre tipos em namespaces de tecnologia e um namespace do modelo de aplicativo (a menos que a tecnologia não se destina a ser usado com o modelo de aplicativo).
Portions Copyright 2005 Microsoft Corporation. Todos os direitos reservados.
Portions Copyright Addison-Wesley Corporation. Todos os direitos reservados.
Para obter mais informações sobre as diretrizes de design, consulte a "diretrizes de Design do Framework: Convenções, idiomas e padrões de reutilizável.Bibliotecas de rede" catálogo por Krzysztof Cwalina e Brad Abrams, publicado pela Addison-Wesley, 2005.
Consulte também
Outros recursos
Diretrizes de Design para desenvolvimento bibliotecas de classe