Agregar un nuevo método (o métodos) a su API debe hacerse de tal manera que no tenga ningún efecto secundario en la API existente. Lo que es más importante, alguien que continúe usando la antigua API como si la nueva API no existiera, no debería verse afectada por ella. Usar la API anterior no debería tener efectos secundarios inesperados en la nueva API.
Si alguno de los métodos existentes en la API es reemplazado por los nuevos, no los elimine de inmediato. Márquelos como obsoletos y proporcione una explicación de lo que debe usarse en su lugar. Eso les advierte a los usuarios de su código que futuras versiones ya no lo admitirán en lugar de romper su código sin previo aviso.
Si las API nuevas y antiguas son incompatibles y no pueden vivir juntas sin efectos secundarios no deseados, sepárelas y documente que si se va a adoptar la nueva API, la antigua API debe retirarse por completo. Esto es menos deseable ya que siempre habrá alguien que intente usar ambos y se sienta frustrado cuando no funciona.
Dado que usted preguntó acerca de .NET específicamente, es posible que desee leer este artículo sobre desuso en .NET, que se vincula a ObsoleteAttribute
(utilizado en el siguiente ejemplo):
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() { }
}