views:

74

answers:

2

As we approach the 4th major release of the .NET framework we are likely to see an increase in the number of classes and methods marked as obsolete (to indicate they are deprecated). I found this page listing all the obsolete members and types, which is growing quite large now.

So, I was wondering whether:

  1. Have any members or types marked as obsolete have been actually removed from any version of the framework? Are there elements from, say, .NET 1 that are not in later versions at all?

  2. Are there any formal guidelines Microsoft follow as to when elements will be removed? Is this after X number of releases? Elapsed time? Or is it likely deprecated elements will remain in perpetuity?

+2  A: 

The most reasonable way would be to leave them there forever in order to keep backward compatibility.

Developer Art
Wouldn't that lessen the incentive for people to use alternatives, though? I thought the idea was that if people wanted to use these methods they would have to target an earlier version of the framework.
Dan Diplo
It might but it's better than simply screw them all at once. Anyway, scary hundreds of warning messages (deprecated) during compile should compel most good developers to update their stuff.
Developer Art
+2  A: 

The problem with removing an obsolete class from the Framework is that it becomes a breaking change to applications built against the Framework, whereas applying ObsoleteAttribute is not.

Consequently, I don't expect to see any of those classes marked obsolete removed any time in the near future, if ever.

Mike Hofer