微軟將不再把.NET Framework API 移植到.NET Core 3.0
微軟方面表示,通過.NET Core 3.0,他們現在已具備輕鬆移植現代workload所需的所有技術,無論是桌面應用、移動應用、控制台應用,網站還是雲服務。為此,他們計劃將不再把.NET Framework上已有的技術移植到.NET Core 3.0,並考慮使用MIT協議來開源不打算移植到.NET Core 3.0的.NET Framework代碼庫。
當然不移植API 並不是說我們在使用新技術方面沒有任何機會,只是這些技術不會在.NET Framework 代碼庫中出現。
下面我們來看看 .NET Core 和.NET Framework 的發展歷程。
從.NET Core 1.0開始,它只有一個非常小的API集合,其中僅包含大約1.8萬個.NET Framework API。通過 .NET Standard 2.0,微軟試圖在.NET Framework, .NET Core和Xamarin之間共享代碼,因此.NET Core 2.0提供了大約3.8萬個.NET Frameworks API。此外,微軟還構建了兼容性套件包—— Windows Compatibility Pack,而該套件包又讓.NET Core增加了大約2.1萬個.NET Framework API。至此,前後大約有6萬個API移植到了.NET Core。
而在最新發布的 .NET Core 3.0 中,微軟又增加了WPF和WinForm,因此將.NET Framework API移植到.NET Core的總數超過了12萬,比.NET Framework API總數量的一半還多。
這裡還需要指出的是,微軟特意強調他們在.NET Core 中添加了大約6.2 萬個.NET Framework 中沒有的API,因此如果僅比較API 的總數,那麼.NET Core 的API 數量約佔.NET Framework API 的80%。
微軟表示.NET 的未來將基於.NET Core,在Build 2019 大會上,微軟宣布AppDomains、遠程處理、Web Forms、WCF server 以及Windows Workflow 都不會移植到.NET Core。目前也不再計劃將任何.NET Framework 技術移植到.NET Core 上。前面提到微軟會開源不打算移植到.NET Core 3.0 的.NET Framework 代碼庫,希望藉此為社區創造更多OSS 項目盡一份力量。