共用方式為


.NET 類別庫

類別庫是 .NET 的 共用連結庫 概念。 它們可讓您將有用的功能元件化為多個應用程式可以使用的模組。 它們也可以用作在應用程式啟動時載入不需要或未知的功能的方法。 類別庫會使用 .NET 元件檔案格式來描述。

有三種類型的類別庫可供您使用:

  • 平臺特定 類別庫可以存取指定平臺中的所有 API(例如 Windows 上的 .NET Framework),但只能供以該平臺為目標的應用程式和連結庫使用。
  • 可攜式 程式庫可以存取部分 API,並可由多平臺應用程式和程式庫使用。
  • .NET Standard 類別庫是將平臺特定和可移植庫的概念結合成一個模型,提供兩者的最佳優勢。

平臺特定類別庫

平臺特定連結庫會系結至單一 .NET 平臺(例如 Windows 上的 .NET Framework),因此可能會對已知的執行環境採取重大相依性。 這類環境會公開一組已知的 API(.NET 和 OS API),並維護並公開預期的狀態(例如 Windows 登錄)。

建立平台特定函式庫的開發者可以充分利用底層平台。 連結庫只會在該指定的平臺上執行,而不需要平台檢查或其他形式的條件式程式代碼(多個平臺的模數單一來源程式代碼)。

平臺特定程式庫是 .NET Framework 的主要類型。 即使有其他 .NET 實作出現,平臺特定連結庫仍是主要連結庫類型。

可攜式類別庫

多個 .NET 實作支援可移植程式庫。 不過,它們仍然可以依賴已知的執行環境,然而,該環境是一個由多個具體 .NET 實作的交集生成的合成環境。 公開的 API 和平臺假設是平臺特定連結庫可使用的子集。

當您建立可攜式類別庫時,您會選擇平台組態。 平台設定是您需要支援的平臺集合(例如 .NET Framework 4.5+、Windows Phone 8.0+)。 您選擇支持的平臺越多,能使用的 API 和可做的平臺假設越少,最後只能採用最低的共同標準。 此特性一開始可能會造成混淆,因為人們通常會認為「更多」更好,但發現更多支持的平臺會導致較少的可用 API。

許多連結庫開發人員已從一個來源產生多個平臺特定連結庫(使用條件式編譯指示詞)切換到可攜式連結庫。 數種方法 用於存取可攜式程式庫中的平臺特定功能,而誘捕切換是目前最廣為接受的技術。

.NET Standard 類別庫

.NET Standard 連結庫是平臺特定和可攜式連結庫概念的取代專案。 它們是平台專屬的,這意味著從底層平台顯示所有功能(沒有綜合平台或平台交集)。 它們是可移植的,因為它們可在所有支援平台上運作。

.NET Standard 提供一組程式庫契約 。 .NET 實作必須完全支援每個合約,或完全不支援。 因此,每個實作都支援一組 .NET Standard 合約。 推論是,支援其契約相依性的每個平台上均支援 .NET Standard 類別庫。

.NET Standard 不會公開 .NET Framework 的完整功能(也不是目標),不過,連結庫會公開比可攜式類別庫更多的 API。

下列實作支援 .NET Standard 程式庫:

  • .NET Core
  • .NET Framework
  • 通用 Windows 平臺 (UWP)

如需詳細資訊,請參閱 .NET Standard

Mono 類別庫

Mono 支援類別庫,包括先前所述的三種類型的庫。 Mono 通常被視為 .NET Framework 的跨平台實作。 部分原因是,特定平臺的 .NET Framework 程式庫可以在 Mono 運行時執行,而不需要修改或重新編譯。 這個特性是在建立可攜式類別庫之前就已就緒,因此,在 .NET Framework 與 Mono 之間啟用二進位可移植性是一個明顯的選擇(雖然它只能以一個方向運作)。