Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Annotazioni
Questo contenuto viene ristampato con il permesso di Pearson Education, Inc. da Framework Design Guidelines: Conventions, Idioms e Pattern per Librerie .NET Riutilizzabili, 2a Edizione. Tale edizione è stata pubblicata nel 2008 e il libro è stato completamente rivisto nella terza edizione. Alcune informazioni in questa pagina potrebbero non essere aggiornate.
Come per altre linee guida per la denominazione, l'obiettivo nel denominare i namespace è creare sufficiente chiarezza per il programmatore che usa il framework, in modo da conoscere immediatamente il probabile contenuto del namespace. Il modello seguente specifica la norma generale di denominazione dei namespace.
<Company>.(<Product>|<Technology>)[.<Feature>][.<Subnamespace>]
Di seguito sono illustrati alcuni esempi:
Fabrikam.Math
Litware.Security
✔️ Prefissare i nomi dello spazio dei nomi con un nome della società per impedire che spazi dei nomi di aziende diverse abbiano lo stesso nome.
✔️ UTILIZZARE un nome di prodotto stabile e indipendente dalla versione al secondo livello di un nome dello spazio dei nomi.
❌ NON utilizzare gerarchie organizzative come base per i nomi nelle gerarchie dei namespace, poiché i nomi dei gruppi all'interno delle aziende tendono a essere di breve durata. Organizzare la gerarchia degli spazi dei nomi in base ai gruppi di tecnologie correlate.
✔️ DO usa PascalCasing e separa i componenti dello spazio dei nomi con punti (ad esempio, Microsoft.Office.PowerPoint). Se il tuo marchio usa una combinazione non tradizionale di maiuscole e minuscole, dovresti seguire le regole definite dal tuo marchio, anche se differiscono dal normale uso di maiuscole e minuscole nello spazio dei nomi.
✔️ PRENDERE IN CONSIDERAZIONE l'uso di nomi di namespace plurali dove appropriato.
Ad esempio, usare System.Collections anziché System.Collection. I nomi dei marchi e gli acronimi sono tuttavia eccezioni a questa regola. Ad esempio, usare System.IO anziché System.IOs.
❌ NON usare lo stesso nome per uno spazio dei nomi e un tipo in tale spazio dei nomi.
Ad esempio, non usare Debug come nome dello spazio dei nomi e quindi specificare anche una classe denominata Debug nello stesso spazio dei nomi. Diversi compilatori richiedono che tali tipi siano completamente qualificati.
Spazi dei nomi e conflitti di nomi di tipo
❌ NON introdurre nomi di tipo generico come Element, Node, Log e Message.
Esiste una probabilità molto elevata che in questo modo si verifichino conflitti di nomi di tipo in scenari comuni. È necessario qualificare i nomi dei tipi generici (FormElement, XmlNode, EventLog, SoapMessage).
Esistono linee guida specifiche per evitare conflitti di nomi di tipo per diverse categorie di spazi dei nomi.
Nomi dello spazio del modello di applicazione
Gli spazi dei nomi appartenenti a un singolo modello di applicazione vengono spesso usati insieme, ma non vengono quasi mai usati con spazi dei nomi di altri modelli di applicazione. Ad esempio, lo spazio dei nomi System.Windows.Forms è usato molto raramente insieme allo spazio dei nomi System.Web.UI. Di seguito è riportato un elenco di gruppi di namespace noti del modello di applicazione.
System.Windows*System.Web.UI*❌ NON assegnare lo stesso nome ai tipi nei namespace di un singolo modello di applicazione.
Ad esempio, non aggiungere un tipo denominato
Pageallo System.Web.UI.Adapters spazio dei nomi, perché lo System.Web.UI spazio dei nomi contiene già un tipo denominatoPage.Spazi dei nomi dell'infrastruttura
Questo gruppo contiene spazi dei nomi che vengono raramente importati durante lo sviluppo di applicazioni di uso comune. Ad esempio,
.Designi namespace sono principalmente utilizzati durante lo sviluppo di strumenti di programmazione. Evitare conflitti con i tipi in questi namespace non è essenziale.Spazi dei nomi principali
Gli spazi dei nomi principali includono tutti gli spazi dei nomi
System, esclusi gli spazi dei nomi dei modelli dell'applicazione e gli spazi dei nomi dell'infrastruttura. Gli spazi dei nomi principali includono, tra gli altri,System,System.IO,System.XmleSystem.Net.❌ NON assegnare nomi di tipi che sarebbero in conflitto con qualsiasi tipo nei namespace Core.
Ad esempio, non usare
Streammai come nome di tipo. Sarebbe in conflitto con System.IO.Stream, un tipo molto comunemente usato.Gruppi namespace tecnologici
Questa categoria include tutti gli spazi dei nomi con gli stessi primi due nodi dello spazio dei nomi
(<Company>.<Technology>*, ad esempioMicrosoft.Build.UtilitieseMicrosoft.Build.Tasks. È importante che i tipi appartenenti a una singola tecnologia non siano in conflitto tra loro.❌ NON assegnare nomi di tipo in conflitto con altri tipi all'interno di una singola tecnologia.
❌ NON introdurre conflitti tra tipi negli spazi dei nomi della tecnologia e quelli di un modello di applicazione (a meno che la tecnologia non sia pensata per essere usata con il modello di applicazione).
© Porzioni 2005, 2009 Microsoft Corporation. Tutti i diritti riservati.
Ristampato dall'autorizzazione di Pearson Education, Inc. da Framework Design Guidelines: Conventions, Idioms e Patterns for Reusable .NET Libraries, 2nd Edition di Krzysztof Cwalina e Brad Abrams, pubblicato il 22 ottobre 2008 da Addison-Wesley Professional come parte della Serie di sviluppo di Microsoft Windows.