.net framework Устаревшие методы — когда их уберут?

Мне было поручено перекомпилировать приложение с .net 1.1 на .net 4.0.

Мне сказали не вносить никаких изменений в код, однако со всеми изменениями в версиях фреймворка я не хочу оставлять методы, помеченные как устаревшие.

На веб-сайте Microsoft указано, что устаревшие методы оставлены для обратной совместимости с предыдущей версией фреймворка, а также как предупреждение о том, что в будущем они будут удалены — мой вопрос «Когда они будут удалены?»


person Ben    schedule 05.01.2012    source источник
comment
Я не думаю, что вы получите что-то лучше, чем всякий раз, когда MS захочет.   -  person CodesInChaos    schedule 05.01.2012


Ответы (3)


Нет установленных временных рамок, когда конкретный метод Obsolete будет удален. Как правило, процесс удаления метода выглядит следующим образом.

  • Отметьте метод как Deprecated в основной версии.
  • Отметьте метод как Obsolete в будущем основном выпуске.
  • Удалите метод в будущем основном выпуске

Учитывая, что существует только 4 основных выпуска .Net, 4.0 действительно является первой версией, в которой метод может быть удален с помощью этого процесса. Я не знаю навскидку, сколько методов было фактически удалено из BCL, но я подозреваю, что их число невелико.

person JaredPar    schedule 05.01.2012
comment
Это было моей заботой. Я надеялся, что есть план поэтапного отказа от функциональности, которая устарела в 2.0 (устарела 3.0, удалена 4.0). Однако он все еще работает в версии 4.0, поэтому я продолжаю его использовать, поскольку клиент не хочет изменений в коде. Мой аргумент, что он будет удален в какой-то момент, но я не знаю, когда, довольно слаб. Я знаю, что его нужно удалить и перекодировать, но бизнес не хочет меняться. Я опасаюсь, так как 4.5 не за горами, если я оставлю функциональность, а она будет удалена в 4.5, проект подготовки к будущему мгновенно станет провальным. - person Ben; 06.01.2012
comment
@Ben Я бы сказал, что очень маловероятно, что каждый API будет удален в точечном выпуске. Это было бы слишком серьезным изменением. Я бы ожидал, что он будет удален только в основном выпуске (но опять же, не я устанавливаю правила :)). - person JaredPar; 06.01.2012
comment
я загрузил предварительные версии Dev 4.5, и все функции, которые я показал как устаревшие, все еще присутствуют и работают - так что, по крайней мере, я в безопасности на пару лет :-) - person Ben; 06.01.2012

Это зависит от MS, но я думаю, что никогда, если они не сломаны.

MS уделяет большое внимание обратной совместимости.

person Nick Butler    schedule 05.01.2012

Я не думаю, что это известно или опубликовано заранее, это просто предупреждение о том, что они могут исчезнуть в будущем выпуске.

person Myles McDonnell    schedule 05.01.2012