热门问题
时间线
聊天
视角
.NET標準
維基媒體列表條目 来自维基百科,自由的百科全书
Remove ads
.NET標準(英語:.NET Standard),原稱為.NET平台標準(英語:.NET Platform Standard)是微軟為跨平台所規劃的.NET Framework相關平台於系統之間的相依性標準,在此標準之下,能確保標準的應用程式介面與物件能夠跨平台使用[註 1]。.NET平台標準是以參考組件的方式存在[註 2],其本身並沒有任何實作,真正的實作是由平台擁有者所進行[註 3],而使用者端使用簡單的NuGet版本戳記即可獲得正確的平台版本[註 4]。

歷史
.NET Framework長期以來一直是微軟視窗平台上的特色與標準,它也成功的實作跨微軟視窗平台的應用程式介面,但最為人詬病的一點是它無法跨出微軟視窗平台,雖然有Mono這樣的Framework可跨平台,但是Mono畢竟不是官方實作,在.NET相容性上也無法達到百分之百相容,而在微軟以.NET Core與ASP.NET Core投入真正跨平台的架構與框架開發時,勢必要面臨這個問題。
.NET平台標準的基礎是.NET Framework上的可攜式類別庫[註 5],但為它賦與了更標準的作法以及更容易識別的版本戳記。
.NET平台標準的原理如下所示[1]:
- 平台擁有者自詳細的.NET平台標準版本中實作參考組件。
- 平台擁有者可能會自詳細的.NET平台標準版本實作參考組件的子集[註 6]。
- 任何.NET平台標準參考組件中的API表層變更都會影響版本。
- 低版本的組件總是會相容於高版本。
運作方式
.NET平台標準由微軟提供參考組件,目前的參考組件置於微軟的CoreFX儲存庫[2],每一個定義的命名空間與類別都有一個ref資料夾,裡面即是預設的實作碼,所有參與.NET平台標準的實作者都必須要實作這些屬性與方法,才能相容於.NET平台標準,而CoreFX也有提供實作碼,供實作的參考之用,在大多數的情況,各平台的差異性並不高。
當函式庫已實作成.NET平台標準相容的函式庫後,使用者端就可以使用目標平台別稱(Target Platform Moniker,TPM)來加入其參考,其命名規則是portable-a+b+c+d+...,portable表示它是可攜式的類別庫,a, b, c, d則是要支援的平台別:[3]
Remove ads
版本
.NET平台標準使用netstandard來代表一個平台的標準,使用者端直接使用netstandard來獲取平台的功能,目前各平台對應的.NET平台標準有[1][4][5][6]:
.NET平台標準的版本戳記為netstandardx.y,其中x表示主版號y表示副版號,例如netstandard10 = .NET Standard 1.0、netstandard1.5 = .NET Standard 1.5。
對應於可攜式的版本
.NET平台標準對應到之前的可攜式類別庫的版本戳記,若使用者端需要特別針對特定的平台版本進行對應時,可以使用import的功能匯入(這是供.NET Core應用程式的功能)。
針對Mono以及Xamarin等平台,平台標準的起始為1.4(版本戳記為netstandard1.4)[3]
Remove ads
支援工具
目前可使用netstandard版本別稱的平台僅有.NET Core以及ASP.NET Core,但未來會擴及其他工具。
下列工具為預定支援 netstadard 版本別稱的工具[5]:
- Visual Studio 2022
- Visual Studio 2019
- Visual Studio 2017(版本 15.3 或更高版本)
- Visual Studio 2015(必須加入NuGet擴充套件)。
- Visual Studio 2013(必須加入NuGet擴充套件)。
- Visual Studio 2012(必須加入NuGet擴充套件)。
- NuGet CLI(指令列介面) 3.x
- NuGet CLI 2.x
- .NET CLI
- Xamarin Studio
注釋
參考資料
外部連結
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads