Nomes de namespaces
O nome escolhido para um espaço para nome deve indicar a funcionalidade disponibilizada pelos tipos no namespace. Por exemplo, a System.Net.Sockets namespace contém tipos que permitem aos desenvolvedores usar soquetes para se comunicar através de redes.
O formato geral para um nome de namespace é o seguinte:
<Company>.(<Product>|<Technology>)[.<Feature>][.<Subnamespace>]
Por exemplo, Microsoft.WindowsMobile.DirectX.
Prefixo namespace nomes com um nome de empresa para evitar namespace s de diferentes empresas tenham o mesmo nome e o 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 sistema autônomo base para nomes em namespace hierarquias, sistema autônomo nomes de agrupar em empresas tendem a ser curta duração.
O nome do namespace é um identificador de vida longa e inalterado. Que sistema autônomo organizações se desenvolva, sistema autônomo alterações não verifique o nome do namespace obsoleto.
Usar Pascal casing e separar namespace componentes com pontos (por exemplo, Microsoft.Office.PowerPoint).Se sua marca empregar nontraditional maiúsculas e minúsculas, você deve seguir o uso de maiúsculas e minúsculas definido pela sua marca, mesmo que ele diverge da diferenciação de maiúsculas e minúsculas do namespace normal.
Considere o uso do plural namespace nomes onde for apropriado.Por exemplo, use o sistema.Collections em vez de sistema.coleção.Acrônimos e nomes de marca são exceções a essa regra, entretanto.Por exemplo, use sistema.IO em vez de sistema.IOs.
Não use o mesmo nome para um espaço para nome e um tipo de espaço para nomes.Por exemplo, não usar a depurar para um nome de namespace e também fornecer uma classe chamada depurar no mesmo espaço para nome.Alguns compiladores exigem tais tipos a serem 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 espaços para nome:
Namespaces de modelo de aplicativo
Namespaces de infra-estrutura
Namespaces de núcleo
Tecnologia de namespace grupos
Os espaços para nome em um modelo de aplicativo fornecem o conjunto de funcionalidades específicas a uma classe de aplicativos. Por exemplo, os tipos no System.Windows.Forms namespaces fornecem a funcionalidade necessária para escrever aplicativos clientes de formulários do Windows. Os tipos no System.Web namespaces suporte à gravação de aplicativos de servidor com base na Web. Em geral, espaços para nomes 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 que usam a biblioteca.
Aplicativos de infra-estrutura fornecem suporte especializado e raramente são referenciados no código de programa. Por exemplo, os tipos no *. Designer espaços para nome são usados por ferramentas de desenvolvimento do programa. The *.Permissions espaços para nome são outro exemplo de infra-estrutura de espaços para nome. Os conflitos de nome com tipos em namespaces de infra-estrutura provavelmente afetam os desenvolvedores usando sua biblioteca.
Os namespaces básicos são o System.* namespaces (exceto os espaços para nomes de aplicativos e infra-estrutura). System e System.Text são exemplos de espaços para nome principal. Verifique todos os esforços para evitar conflitos de nome com tipos nos namespaces básicos.
Os namespaces que pertencem a uma tecnologia específica terá os mesmos primeiro e o segundo nível identificadores (Company.technology.*). Você deve evitar conflitos de nome dentro de uma tecnologia.
Diretrizes de Namespace Geral
Não apresente sistema autônomo nomes de tipo genérico sistema autônomo elemento, nó, log e mensagens.Há muito alta probabilidade levaria digitar conflitos de nome em cenários comuns.Você deve qualificar os nomes de tipo genérico (FormElement, XmlNode EventLog, SoapMessage).
Diretrizes de Namespace do aplicativo
Não oferecem o mesmo nome de tipos em namespaces em um modelo único aplicativo.
Por exemplo, se você estivesse escrevendo uma biblioteca de controles especiais a serem usados por desenvolvedores de aplicativos de formulários do Windows, você não deve introduzir um tipo chamado Checkbox porque um tipo com este nome já existe para o (modelo de aplicativoCheckBox).
Diretrizes de Namespace do núcleo
Não forneça nomes de tipos que estaria em conflito com qualquer tipo nos namespaces básicos.
Por exemplo, não use Directory sistema autônomo um tipo de nome porque isso estaria em conflito com o Directory Digite.
Tecnologia de Namespace diretrizes
Não atribua nomes de tipo estaria em conflito com outros tipos de dentro de uma única tecnologia.
Não apresente conflitos de nome de tipo entre tipos em namespaces de tecnologia e um espaço para nome de modelo de aplicativo (a menos que a tecnologia não se destina a ser usado com o modelo de aplicativo).
Partes direitos autorais 2005 Microsoft Corporation. Todos os direitos reservados.
Partes direitos autorais Addison-Wesley Corporation. Todos os direitos reservados.
Para obter mais informações sobre diretrizes de design, consulte a "diretrizes de design do estrutura: Catálogo de convenções, idiomas e padrões para bibliotecas do .NET reutilizável"Krzysztof Cwalina e Brad Abrams, publicado pela Addison-Wesley, 2005.
Consulte também
Outros recursos
Diretrizes de Design para desenvolvimento bibliotecas de classe