L'aggiunta di un nuovo metodo (o metodi) alla tua API deve essere eseguita in modo tale da non avere effetti collaterali sull'API esistente. Ancora più importante, qualcuno che continua a utilizzare la vecchia API come se la nuova API non esistesse, non dovrebbe essere influenzato da essa. L'utilizzo della vecchia API non dovrebbe avere effetti secondari inattesi anche sulla nuova API.
Se uno dei metodi esistenti nell'API viene sostituito da quelli nuovi, non rimuoverli immediatamente. Contrassegnali come deprecati e fornisci una spiegazione su cosa invece dovrebbe essere usato. Ciò consente agli utenti del tuo codice di avvertire che le versioni future potrebbero non supportarlo più invece di infrangere il loro codice senza preavviso.
Se le API nuove e vecchie non sono compatibili e non possono convivere senza effetti collaterali indesiderati, separali e documenta che se la nuova API deve essere adottata, la vecchia API deve essere ritirata completamente. Questo è meno desiderabile in quanto ci sarà sempre qualcuno che tenta di usare entrambi e si sente frustrato quando non funziona.
Dato che hai chiesto informazioni su .NET in particolare, potresti voler leggere questo articolo sulla deprecazione in .NET, che collega al ObsoleteAttribute
(utilizzato nell'esempio seguente):
using System;
public sealed class App {
static void Main() {
// The line below causes the compiler to issue a warning:
// 'App.SomeDeprecatedMethod()' is obsolete: 'Do not call this method.'
SomeDeprecatedMethod();
}
// The method below is marked with the ObsoleteAttribute.
// Any code that attempts to call this method will get a warning.
[Obsolete("Do not call this method.")]
private static void SomeDeprecatedMethod() { }
}