隨著新的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的非並行變量。