Когда, если вообще, вы ожидаете, что классы, помеченные как устаревшие, будут удалены из среды .NET?

По мере приближения к четвертому основному выпуску платформы .NET мы, вероятно, увидим увеличение числа классов и методов, помеченных как устаревшие (чтобы указать, что они устарели). Я нашел эту страницу со списком всех устаревших членов. и типы, количество которых сейчас довольно велико. .

Итак, мне было интересно:

  1. Были ли фактически удалены какие-либо члены или типы, помеченные как устаревшие, из какой-либо версии фреймворка? Есть ли элементы, скажем, из .NET 1, которых вообще нет в более поздних версиях?

  2. Существуют ли какие-либо формальные рекомендации, которым следует Microsoft в отношении того, когда элементы будут удалены? Это после X выпусков? Пройденное время? Или, вероятно, устаревшие элементы останутся навсегда?


person Dan Diplo    schedule 23.10.2009    source источник


Ответы (2)


Проблема с удалением устаревшего класса из Framework заключается в том, что он становится критическим изменением для приложений, созданных для Framework, а применение ObsoleteAttribute — нет.

Следовательно, я не ожидаю, что какой-либо из этих классов, помеченных как устаревшие, будет удален в ближайшем будущем, если вообще когда-либо.

person Mike Hofer    schedule 23.10.2009

Самым разумным было бы оставить их там навсегда, чтобы сохранить обратную совместимость.

person Community    schedule 23.10.2009
comment
Однако не уменьшит ли это стимул для людей использовать альтернативы? Я думал, что идея заключалась в том, что если люди хотят использовать эти методы, они должны ориентироваться на более раннюю версию фреймворка. - person Dan Diplo; 23.10.2009
comment
Может быть, но это лучше, чем просто трахнуть их всех сразу. В любом случае, страшные сотни предупреждающих сообщений (устаревших) во время компиляции должны заставить большинство хороших разработчиков обновить свой материал. - person ; 23.10.2009
comment
ObsoleteAttribute — отличный механизм для указания людям на более новый/лучший код без нарушения предыдущего кода. Стимулом для использования неустаревшего кода, по-видимому, будет эффективность/возможности/простота использования по сравнению с устаревшей реализацией. - person nsantorello; 03.02.2012