随着新的CLR和Base Class Library的引入,微软趁机做了些“家务事”。虽然真正被移除的不多,但我们还是看到了微软列出的长长的废弃类型与成员列表。
有些被废弃的特性是显而易见的。比如说,现在不可能再去捕获ExecutionEngineException了,这样代码也就没有理由这么做了。其他被废弃的特性反映了CLR工作方式的变化,最能说明这一点的就是Code Access Security和Evidence对象了。
XmlDataDocument类(开发者可以使用该类以XML DOM对象的方式处理DataSet对象)已被废弃。虽然很少会在实际开发中使用到该功能,但我们依然可以通过DataSet.WriteXml和更易于使用的XDocument类实现这个功能。在Data命名空间下也有一些类被废弃了,如OracleClient下的OracleCommand和OracleConnection。微软推荐开发者使用第三方实现。
在Web端,微软完全放弃了对ASP.NET的移动支持。取而代之的是推荐开发者使用ASP.NET MVC。Scott Hanselman曾在MIX2009上做过关于该技术的演讲,题目是“Mobile Web Sites with ASP.NET MVC and the Mobile Browser Definition File”。Mobile Browser Definition File是微软运作的一个开源项目,用于分类和以编程的方式公开所有主流移动设备的功能。
最后想说的是有些方法从一开始就被标记为废弃的。比如GroupJoin的this并行变量是针对特定目的创建的,我们不应该使用它。推测来看,这么做是防止开发者不小心使用了基于IEnumerable的非并行变量。
查看英文原文:Obsolete Features in .NET 4