随着新的 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
评论