Condividi tramite


Nomi di spazi dei nomi

Il nome assegnato a uno spazio dei nomi dovrebbe indicare la funzionalità resa disponibile dai tipi in tale spazio. Lo spazio dei nomi System.Net.Sockets, ad esempio, contiene tipi che consentono agli sviluppatori di utilizzare socket per comunicare attraverso le reti.

Di seguito è riportato il formato generale per il nome di uno spazio dei nomi:

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

Ad esempio Microsoft.WindowsMobile.DirectX.

Aggiungere come prefisso il nome della società per evitare che spazi dei nomi di società differenti abbiano lo stesso nome con lo stesso prefisso.

Utilizzare un nome di prodotto stabile e indipendente dalla versione al secondo livello di un nome di spazio dei nomi.

Non basarsi sulle gerarchie organizzative per l'assegnazione dei nomi nelle gerarchie degli spazi dei nomi perché i nomi dei gruppi all'interno di una società cambiano di frequente.

Il nome di uno spazio dei nomi è un identificatore durevole e non modificabile. Non dovrebbe diventare obsoleto in seguito all'evoluzione dell'organizzazione.

Utilizzare la convenzione di denominazione Pascal e separare con punti i componenti dello spazio dei nomi, ad esempio Microsoft.Office.PowerPoint. Se nel marchio viene utilizzata una combinazione di maiuscole e minuscole non tradizionale, seguire la combinazione definita nel marchio, anche se non conforme con quella normalmente adottata per gli spazi dei nomi.

Valutare l'opportunità di utilizzare un nome plurale per uno spazio dei nomi. Utilizzare ad esempio System.Collections anziché System.Collection. I marchi e gli acronimi costituiscono un'eccezione alla regola. Utilizzare ad esempio System.IO anziché System.IOs.

Non utilizzare lo stesso nome per uno spazio dei nomi e un tipo incluso in tale spazio. È ad esempio necessario evitare di utilizzare Debug come nome di uno spazio dei nomi e contemporaneamente fornire una classe denominata Debug nello stesso spazio dei nomi. In diversi compilatori è necessario che a questi tipi sia assegnato un nome completo.

Conflitti tra nomi di tipi e spazi dei nomi

Se si sceglie un nome di tipo o spazio dei nomi che è in conflitto con uno già esistente, gli utenti della libreria dovranno definire riferimenti completi agli elementi in questione. Nella maggior parte degli scenari di sviluppo, questo problema non dovrebbe verificarsi.

Alcune delle linee guida presentate in questa sezione sono rilevanti per le seguenti categorie di spazi dei nomi:

  • Spazi dei nomi del modello di applicazione

  • Spazi dei nomi dell'infrastruttura

  • Spazi dei nomi del componente di base

  • Gruppi di spazi dei nomi delle tecnologie

Gli spazi dei nomi in un modello di applicazione forniscono l'insieme di funzionalità specifiche per una classe di applicazioni. Ad esempio, i tipi negli spazi dei nomi System.Windows.Forms forniscono le funzionalità necessarie per la scrittura di applicazioni client Windows Form. I tipi negli spazi dei nomi System.Web supportano la scrittura di applicazioni server basate sul Web. In genere, in un'applicazione non vengono utilizzati spazi dei nomi definiti per modelli di applicazione differenti. Di conseguenza, i conflitti di nomi non dovrebbero normalmente interessare gli sviluppatori che utilizzano una determinata libreria.

Le applicazioni dell'infrastruttura forniscono in genere supporto specializzato e solo raramente sono presenti riferimenti a tali applicazioni nel codice di un programma. Ad esempio, i tipi negli spazi dei nomi *.Designer vengono utilizzati dagli strumenti per lo sviluppo di programmi. Gli spazi dei nomi *.Permissions costituiscono un altro esempio di spazi dei nomi dell'infrastruttura. I conflitti di nomi con i tipi negli spazi dei nomi dell'infrastruttura non dovrebbero normalmente interessare gli sviluppatori che utilizzano una determinata libreria.

Gli spazi dei nomi del componente di base sono quelli che iniziano con System.* (esclusi gli spazi dei nomi dell'applicazione e dell'infrastruttura). System e System.Text costituiscono esempi di spazi dei nomi del componente di base. È necessario prestare la massima attenzione a evitare conflitti di nomi con i tipi negli spazi dei nomi del componente di base.

Gli spazi dei nomi appartenenti a una determinata tecnologia hanno gli stessi identificatori di primo e secondo livello (Company.technology.*). Si consiglia di evitare conflitti di nomi nell'ambito di una stessa tecnologia.

Linee guida generali per gli spazi dei nomi

Non introdurre nomi di tipi generici quali Element, Node, Log e Message. Esiste in genere un'alta probabilità che si verifichino conflitti tra nomi di tipi. Per questi nomi si consiglia di specificare un qualificatore, ad esempio FormElement, XmlNode, EventLog e SoapMessage.

Linee guida per gli spazi dei nomi del modello di applicazione

Non assegnare lo stesso nome ai tipi negli spazi dei nomi inclusi in uno stesso modello di applicazione.

Se ad esempio si scrive una libreria di controlli speciali destinata agli sviluppatori di applicazioni Windows Form, si consiglia di non introdurre un tipo denominato Checkbox poiché un tipo con questo nome esiste già per il modello di applicazione (CheckBox).

Linee guida per gli spazi dei nomi del componente di base

Non specificare nomi di tipo che possono essere in conflitto con qualsiasi tipo negli spazi dei nomi del componente di base.

Ad esempio, non utilizzare Directory come nome di tipo poiché si verificherebbe un conflitto con il tipo Directory.

Linee guida per gli spazi dei nomi delle tecnologie

Non specificare nomi di tipo che possono essere in conflitto con altri tipi all'interno di una determinata tecnologia.

Non introdurre conflitti di nomi tra tipi negli spazi dei nomi di una tecnologia e uno spazio dei nomi di un modello di applicazione, a meno che la tecnologia non sia destinata all'utilizzo con tale modello.

Portions Copyright 2005 Microsoft Corporation. Tutti i diritti riservati.

Portions Copyright Addison-Wesley Corporation. Tutti i diritti riservati.

Per ulteriori informazioni sulle linee guida di progettazione, vedere “le linee guida di progettazione di Framework: Idiomi convenzioni, e modelli per libro raccolte riutilizzabili .NET„ di Krzysztof Cwalina e brad Abrams, emessi da Addison-Wesley, 2005.

Vedere anche

Altre risorse

Linee guida di progettazione per lo sviluppo di librerie di classi

Linee guida per i nomi