微軟在部落格宣布不再更新.NET Standard函式庫,而.NET 5將成為取代.NET Standard定位的產品,可用於開發Windows桌面應用程式、跨平臺行動應用程式、控制臺應用程式,以及雲端服務和網站,.NET 5以上版本將會繼續支援.NET Standard 2.1和更之前的版本。

微軟為了更良好地反應.NET 5的定位,因此更新了目標框架名稱(TFM),net5.0適用於在各平臺執行的程式碼,合併並替代了netcoreapp和netstandard名稱,net5.0僅會包含可以跨平臺運作的技術,而net5.0-windows或是之後的net6.0-android和net6.0-ios,微軟提到,這些TFM代表特定作業系統的.NET 5功能,其中不只包含了net5.0,還有專屬於該作業系統的功能。

.NET Standard的出現,是為了要提供.NET統一跨平臺基礎函式庫,讓開發者可以撰寫在任何平臺執行的函式庫,但微軟提到,.NET Standard存在3個問題,包括版本更新緩慢,所以開發者無法快速使用到各平臺新功能,再來是.NET Standard版本與.NET實作版本對應複雜,需要複雜的表格才能解釋其對應關係,另外,因為.NET Standard包含了特定平臺功能,因此沒辦法利用靜態驗證,檢查程式碼的可移植性。

因此微軟決定以.NET 5來解決這些問題,.NET 5將會是統一功能和API的單一產品,.NET 5以及未來的版本,將會支援.NET Standard 2.1以及更早版本,因此開發者可以不需要更新現有程式,但是當開發者想要使用額外的Runtime功能、語言功能以及API,則可以選擇將.NET Standard升級使用.NET 5。

至於新程式碼要選擇哪一個版本的函式庫,微軟表示,這取決於開發應用程式元件,還是可重用函式庫。當開發者使用函式庫將應用程式分解成多個元件,則使用的函式庫版本,便為元件中最低支援的版本,而當開發者要開發上傳到NuGet的可重用函式庫,便需要顧慮可用的功能集,.NET Standard 2.0是.NET Standard版本中,最高還支援.NET Framework的版本,其提供龐大的功能集,覆蓋範圍廣。

綜合以上條件,微軟建議開發者,不要使用.NET Standard 1.x,因為會帶來許多麻煩,當開發者不需要支援.NET Framework,就可以直接使用.NET Standard 2.1或.NET 5,通常大部分的程式碼都可以直上.NET 5,而要建立廣泛支援的函式庫,只要同時支援.NET Standard 2.0以及.NET 5,就能提供最完整的覆蓋,.NET Standard 2.0可以觸及最大的支援範圍,而.NET 5可以確保開發者能用到最新的平臺功能。


Advertisement

更多 iThome相關內容