主要功能
.NET Standard應當被視作一種用於描述“至少在API接口方面需要選擇哪一具體的實現,例如.NET Core、Mono、Xamarin或.NET 4.6”的規範。換句話說,.NET Standard本身並非一種實現,而是由.NET底層平台實現的。例如他認為,.NET Core實現了當前版本的.NET Standard 1.6版,而他認為.NET Core 1.2將非常接近.NET Standard 2.0,使其成為.NET Standard 1.6的超集 。
從實現的角度來看,.NET Standard採取了與傳統.NET略微不同的方法。實際上.NET Standard針對每個特定平台的實現還提供了可充當類型轉發器(Type forwarder)的.NET Standard DLL。應用程式只需要引用類型提供程式(Type provider)DLL,即可將引用轉發給能提供所需實現的相應程式集(Assembly)。相比.NET程式集,這種做法提供了類似的用戶體驗,但在實施者(Implementer)方面有很大不同,因為它們可以分別提供獨立的程式包,而非像.NET運行時程式包那樣提供一個單一的整體 。
.NET Standard 可實現以下重要情境:
•為要實現的所有 .NET 平台定義一組統一的、與工作負荷無關的 BCL API。
•使開發人員能夠通過同一組 API 生成可在各種 .NET 運行時中使用的、可移植的庫。
•減少並有望消除由於 .NET API 方面的原因而對共享原始碼的條件性編譯(僅適用於 OS API)。
•各種 .NET 運行時實現的是特定版本 .NET Standard 。 每個 .NET 運行時版本將會公布它所支持的最高 .NET Standard 版本,這種聲明意味著它也支持以前的版本。 例如,.NET Framework 4.6 實現 .NET Standard 1.3。也就是說,它會公開在 .NET Standard 版本 1.0 到 1.3 中定義的所有 API。 同樣,.NET Framework 4.6.1 實現 .NET Standard 1.5,而 .NET Core 1.0 則實現 .NET Standard 1.6。
平台支持
下表列出了 .NET Standard 的所有版本及其支持的平台 :
Standard | 1.0 | 1.1 | 1.2 | 1.3 | 1.4 | 1.5 | 1.6 | 2.0 |
.NET 核心 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 2.0 |
.NET framework(包含工具 1.0) | 4.5 | 4.5 | 4.5.1 | 4.6 | 4.6.1 | 4.6.2 | vNext | 4.6.1 |
.NET framework(包含工具 2.0) | 4.5 | 4.5 | 4.5.1 | 4.6 | 4.6.1 | 4.6.1 | 4.6.1 | 4.6.1 |
Mono | 4.6 | 4.6 | 4.6 | 4.6 | 4.6 | 4.6 | 4.6 | vNext |
Xamarin.iOS | 10.0 | 10.0 | 10.0 | 10.0 | 10.0 | 10.0 | 10.0 | vNext |
Xamarin.Android | 7.0 | 7.0 | 7.0 | 7.0 | 7.0 | 7.0 | 7.0 | vNext |
通用 Windows 平台 | 10.0 | 10.0 | 10.0 | 10.0 | 10.0 | vNext | vNext | vNext |
Windows | 8.0 | 8.0 | 8.1 | |||||
Windows Phone | 8.1 | 8.1 | 8.1 | |||||
Windows Phone Silverlight | 8.0 |
產品發布
微軟在本月早些時候召開的 Build 2017 開發者大會上的披露的 XAML Standard 和 .NET Standard 2.0,現已正式發布。新工具旨在為開發者們帶來“基於同一標準的跨平台 XAML 語言結構”(基於 UWP 和 Xamarin.Forms),以及基於社區反饋帶來基於 .NET 的精選大集,用戶們有望在“2017年晚些時候”接觸到 Xamarin.Forms 和 UWP 加持的 XAML 標準套用。