Добавление нового метода (или методов) в ваш API должно быть сделано таким образом, чтобы он не имел никаких побочных эффектов для существующего API. Самое главное, что тот, кто продолжает использовать старый API, как если бы новый API не существовал, не должен им подвергаться. Использование старого API также не должно иметь неожиданных побочных эффектов для нового API.
Если какой-либо из существующих в API методов заменяется новыми, не удаляйте их сразу. Отметьте их как устаревшие и объясните, что следует использовать вместо них. Это дает пользователям вашего кода предупреждение о том, что будущие версии могут больше не поддерживать его, вместо того, чтобы нарушать их код без предупреждения.
Если новый и старый API несовместимы и не могут существовать вместе без нежелательных побочных эффектов, разделите их и задокументируйте, что если новый API должен быть принят, старый API должен быть полностью удален. Это менее желательно, так как всегда найдется кто-то, кто попытается использовать оба и разочароваться, когда это не сработает.
Поскольку вы спрашивали о .NET конкретно, вы можете прочитать эту статью об устаревании в .NET, которая ссылается на ObsoleteAttribute
(используется в следующем примере):
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() { }
}