目前 .NET Core 3.0 擁有的 API 總數約為 .NET Framework API 的 80%,剩下尚未從 .NET Framework 移植到 .NET Core 的 API,微軟考慮以開源的形式發布。
微軟方面表示,通過 .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 項目盡一份力量。
[admin
]