C # Nomi di Namespace con suffisso di versione

5

In documenti Microsoft ufficiali :

✓ DO use a stable, version-independent product name at the second level of a namespace name.

Ma in sorgente di riferimento , i seguenti spazi dei nomi terminano con la versione:

Microsoft.Build.Tasks.v4.0
Microsoft.Build.Utilities.v4.0
Microsoft.Build.Utilities.v3.5

Quindi Microsoft sta violando le proprie linee guida? È consigliabile aggiungere il suffisso della versione allo spazio dei nomi API / SDK?

    
posta Jawad Al Shaikh 04.04.2018 - 08:46
fonte

2 risposte

8

Quando i documenti menzionano il secondo livello, si riferiscono alla sezione dello spazio dei nomi indicata come (<Product>|<Technology>) . Il prodotto o la tecnologia dovrebbero essere indipendenti dalla versione.

Quindi no, tecnicamente Microsoft non sta violando le proprie linee guida, tuttavia è probabile che l'uso di versioni in spazi dei nomi non sia una grande idea. Il modo corretto per aggiornare la libreria è deprecare metodi e classi che non saranno disponibili nella prossima versione della libreria, con un chiaro riferimento a una sostituzione da utilizzare invece nella documentazione e / o nel codice stesso come commento .

    
risposta data 04.04.2018 - 09:10
fonte
2

Sembra un po 'strano e non è aggiornabile senza problemi. D'altra parte, offre a Microsoft più libertà di spostare le cose o persino di applicare una riprogettazione completa per qualsiasi versione successiva.

Se dipende dal dominio del problema se un approccio o l'altro è appropriato. In questo caso sembra intelligente. Il tuo ambiente di costruzione è molto legato alla tecnologia o persino alla moda. Se escono con un nuovo modello di implementazione, sarà necessario apportare modifiche sostanziali agli strumenti di compilazione. Sarebbe fondamentalmente un nuovo prodotto. E sarebbe impensabile che tu potessi o vorresti anche usare i tuoi vecchi strumenti di costruzione. Non si adattano più, l'obiettivo sarebbe nuove applicazioni che si adattano al nuovo modello di utilizzo.

Potresti considerare non tanto un aggiornamento della versione, quanto una nuova generazione che dovrebbe essere separata dalla precedente.

    
risposta data 04.04.2018 - 20:40
fonte

Leggi altre domande sui tag