.NET 字彙表

本詞彙的主要目標是要說明在 .NET 檔中經常出現之所選詞彙和縮寫的意義。

AOT

預先編譯器。

此編譯器類似於 JIT,也會將 IL 轉譯成機器碼。 相較於 JIT 編譯,AOT 編譯會在執行應用程式之前發生,而且通常會在不同的電腦上執行。 因為 AOT 工具鏈不會在執行時間編譯,所以不需要將編譯花費的時間降到最低。 這表示它們可以花更多的時間在最佳化。 由於 AOT 的內容是整個應用程式,因此 AOT 編譯器也會執行跨模組連結和整個程式分析,這表示會追蹤所有參考並產生單一可執行檔。

請參閱 CoreRT.NET Native

應用程式模型

工作負載特定的 API。 以下是一些範例:

  • ASP.NET
  • ASP.NET Web API
  • Entity Framework (EF)
  • Windows Presentation Foundation (WPF)
  • Windows Communication Foundation (WCF)
  • Windows Workflow Foundation (WF)
  • Windows Forms (WinForms)

ASP.NET

隨附于 .NET Framework 的原始 ASP.NET 實,也稱為 ASP.NET 4.x。

有時 ASP.NET 是指同時參考原始 ASP.NET 和 ASP.NET Core 的傘詞彙。 該詞彙在任何指定的執行個體中所代表的意義取決於內容。 當您想要清楚指出您未使用 ASP.NET 來表示這兩個執行時,請參閱 ASP.NET 4.x。

請參閱 ASP.NET 文件

ASP.NET Core

ASP.NET 的跨平臺、高效能、開放原始碼的執行。

請參閱 ASP.NET Core 文件

組件

.dll.exe檔案,該檔案可以包含可由應用程式或其他元件呼叫的 api 集合。

一個組件可以包含介面、類別、結構、列舉和委派等類型。 專案的 bin 資料夾中的組件有時稱為「二進位檔」。 另請參閱程式庫

B C L

基類庫。

組成 System. * (的一組程式庫,以及有限範圍的 Microsoft. * ) 命名空間。 BCL 是 ASP.NET Core 等較高層級的應用程式架構建置所在之較低層級的一般目的架構。

.Net 5 (的 BCL 原始程式碼 和 .Net Core) 和更新版本 都包含在 .net 運行時間存放庫中。 這些 BCL api 大部分也都可在 .NET Framework 中使用,因此您可以將此原始程式碼視為 .NET Framework BCL 原始程式碼的分支。

下列詞彙通常會參考 BCL 所指的相同 Api 集合:

CLR

Common Language Runtime。

確切的意義取決於內容。 Common Language Runtime 通常是指.NET Framework的執行時間,或是.net 5 (和 .net Core) 和更新版本的執行時間。

CLR 會處理記憶體配置和管理。 CLR 也是虛擬機器,不僅可執行應用程式,也會使用 JIT 編譯器來即時產生和編譯器代碼。

.NET Framework 的 CLR 實作為僅 Windows。

適用于 .net 5 和更新版本的 CLR 實 (也稱為核心 CLR) 是從與 .NET Framework CLR 相同的程式碼基底所建立。 原始的 CLR 是 Silverlight 的執行時間,其設計目的是要在多個平臺上執行,特別是 Windows 和 OS X。它仍然是一種跨平臺的執行時間,現在包含許多 Linux 發行版本的支援。

另請參閱 運行時間。

核心 CLR

適用于 .net 5 (和 .Net Core) 和更新版本的 Common Language Runtime。

請參閱 CLR

CoreRT

相較于 CLR,CoreRT 不是虛擬機器,這表示它不包含可即時產生和執行程式碼的功能,因為它不包含 JIT。 不過,它確實包含 GC ,以及執行時間類型識別 (RTTI) 和反映的能力。 不過,其型別系統已設計成不需要反映的中繼資料。 不需要中繼資料可讓 AOT 工具鏈連結到多餘的中繼資料, (更重要的是) 識別應用程式未使用的程式碼。 CoreRT 正在開發中。

請參閱 CoreRT 和.Net 執行時間實驗室簡介

跨平台

開發和執行應用程式的能力,可用於多個不同的作業系統(例如 Linux、Windows 和 iOS),而不需要特別針對每個作業系統進行重寫。 這可讓您在不同平臺上的應用程式之間重複使用程式碼和一致性。

請參閱 platform

生態系統

用來建置及執行適用於指定技術之應用程式的所有執行階段軟體、開發工具和社群資源。

「.NET 生態系統」一詞與「.NET 堆疊」等類似詞彙的不同之處在於,前者包含協力廠商應用程式和程式庫。 以下是用於句子中的範例:

  • .NET Standard 背後的動機是在 .net 生態系統中建立更高的一致性。」

架構

一般而言,一組功能齊全的 API 可加快開發和部署以特定技術為基礎的應用程式。 ASP.NET Core 和 Windows Forms 即為此一般意義的應用程式架構範例。 單字架構和連結 通常是使用同義。

"Framework" 這個字在下列詞彙中有不同的意義:

有時「架構」是指 .net 的實。 例如,一篇文章可能會呼叫 .NET 5 + a framework。

framework 程式庫

意義取決於內容。 可能參考 .Net 5 的 framework 程式庫 (和 .Net Core) 和更新版本,在此情況下,它會參考 BCL 所參考的相同程式庫。 它也可以參考ASP.NET Core framework 程式庫,該程式庫是以 BCL 為依據,並為 web 應用程式提供額外的 api。

GC

記憶體回收行程。

記憶體回收行程是自動記憶體管理的實作。 GC 會釋放不再使用之物件所佔用的記憶體。

請參閱記憶體回收

IL

中繼語言。

較高階的 .NET 語言 (例如 C#) 可向下編譯成硬體無從驗證的指令集,稱為中繼語言 (IL)。 IL 有時稱為 MSIL (Microsoft IL) 或 CIL (Common IL)。

JIT

Just-in-Time 編譯器。

此編譯器類似於 AOT,會將 IL 轉譯成處理器了解的機器碼。 不同於 AOT,JIT 編譯會視需要發生,而且會在必須執行程式碼的相同電腦上執行。 由於 JIT 編譯會在應用程式執行期間發生,因此編譯時間會是執行階段的一部分。 因此,JIT 編譯器必須在最佳化程式碼所花費的時間與結果程式碼可能省下的時間之間取得平衡。 但 JIT 知道實際硬體,因此開發人員不需要提供不同的實作。

.NET 實作

.NET 的執行包括:

  • 一或多個執行階段。 範例: CLRCoreRT
  • .NET Standard 的類別庫,可執行版本的且可能包含其他 Api。 範例: .NET Framework和 .net 5 的BCLs (和 .net Core) 和更新版本
  • (選擇性) 一或多個應用程式架構。 範例: ASP.NET、Windows Forms 和 WPF 包含在 .NET Framework 和 .net 5 + 中。
  • (選擇性) 開發工具。 某些開發工具可在多個實作之間共用。

.NET 實作的範例:

如需詳細資訊,請參閱 .net執行。

圖書館

可由應用程式或其他程式庫呼叫的 API 集合。 .NET 程式庫是由一或多個組件組成。

程式庫和架構等字在使用時通常同義。

Mono

Mono 是一個開放原始碼、跨平臺.net 執行,主要是在需要小型執行時間時使用。 它是在 Android、Mac、iOS、tvOS 和 watchOS 上提供 Xamarin 應用程式的執行時間,主要著重于需要少量資源的應用程式。

它支援目前發行的所有 .NET Standard 版本。

在過去,Mono 實作較大型的 .NET Framework API,並模擬 UNIX 上最熱門的其中一些功能。 它有時可用來執行依賴這些 UNIX 功能的 .NET 應用程式。

Mono 通常與 即時編譯器搭配使用,但也提供完整的 靜態編譯器 (預先編譯) ,可在 iOS 等平臺上使用。

請參閱 Mono 檔

.NET

例如,第一項意義是在「.NET 的執行」或「.NET 開發平臺」等片語中。第二個意義是用於 .NET SDK.net CLI等名稱。

.NET 一律是完全大寫的,絕對不會是 ".Net"。

請參閱 .net 檔

.NET 5 +

版本號碼之後的加號表示「和更新版本」。請參閱 .net 5 和更新版本

.NET 5 和更新版本

.NET 的跨平臺、高效能、開放原始碼的實作為。 也稱為 .NET 5 +。 包括 Common Language Runtime (CLR) 、 (CoreRTAOT執行時間、開發) 、基類庫 (BCL) 和.net SDK

此 .NET 實作為較早的版本,稱為 .Net Core。 .NET 5 是 .NET Core 3.1 之後的下一版。 已略過第4版,以避免使用較舊的實作為(稱為.NET Framework)來混淆這項較新的 .net 執行。 .NET Framework 目前的版本為4.8。

請參閱 .net 檔集。

.NET CLI

適用于開發 .net 5 (和 .Net Core) 和更新版本之應用程式和程式庫的跨平臺工具鏈。 也稱為 .NET Core CLI。

請參閱 .NET CLI

.NET Core

請參閱 .net 5 和更新版本

.NET Framework

僅在 Windows 上執行的.net 執行。 包括 Common Language Runtime (CLR) 、基類庫 (BCL) 和應用程式架構程式庫(例如ASP.NET、Windows Forms 和 WPF)。

請參閱 .NET Framework 指南

.NET Native

產生原生程式碼提前 (AOT) 的編譯器工具鏈,而非即時 (JIT) 。

編譯會在開發人員的電腦上發生,其運作方式類似於 C++ 編譯器和連結器。 它會移除未使用的程式碼,並花更多時間在最佳化。 它會從程式庫擷取程式碼,並將其合併成可執行檔。 結果會是代表整個應用程式的單一模組。

UWP 是 .NET Native 支援的應用程式架構。

請參閱.NET Native 檔

.NET SDK

一組程式庫和工具,可讓開發人員建立 .net 5 (和 .Net Core) 和更新版本的 .net 應用程式和程式庫。 也稱為 .NET Core SDK。

包含用來建立應用程式的 .NET CLI 、用來建立和執行應用程式的 .net 程式庫和執行時間,以及 dotnet 可執行檔 (dotnet.exe 執行 CLI 命令和執行應用程式的) 。

請參閱 .NET SDK 總覽

.NET Standard

.NET Api 的正式規格,可在每個 .net 執行中使用。

.NET Standard 規格有時稱為「程式庫」。 由於程式庫不只包含規格 (介面),還包含 API 實作,因此將 .NET Standard 稱為「程式庫」會造成誤導。

請參閱 .NET Standard

NGEN

原生 (映像) 產生。

您可以將這項技術視為持續性 JIT 編譯器。 它通常會在執行程式碼的電腦上編譯程式碼,但編譯通常會發生在安裝期間。

套件

NuGet 套件(或只是封裝)是一個.zip檔案,其中包含一或多個相同名稱的元件,以及其他中繼資料,例如作者名稱。

.zip檔案的副檔名為nupkg ,而且可能包含.dll檔案和.xml檔案等資產,可搭配多個目標 framework和版本使用。 安裝於應用程式或程式庫時,會根據應用程式或程式庫所指定的目標 Framework 來選取適當的資產。 定義介面的資產位於 ref 資料夾中,而定義實作的資產則位於 lib 資料夾中。

平台

作業系統及其執行所在的硬體,例如 Windows、macOS、Linux、iOS 和 Android。

以下是用於句子中的範例:

  • 「.NET Core 是 .NET 的跨平台實作。」
  • 「PCL 設定檔代表 Microsoft 平臺,而 .NET Standard 與平臺無關」。

舊版 .NET 檔有時會使用 ".NET platform" 來表示 .NET 或 .NET stack的執行,包括所有的實作為。 這兩種使用方式通常會與主要 (作業系統/硬體) 含意混淆,因此我們會嘗試避免這些使用方式。

「平臺」在「開發人員平臺」一詞中有不同的意義,這是指提供建立和執行應用程式之工具和程式庫的軟體。 .NET 是一種跨平臺的開放原始碼開發人員平臺,可用於建立許多不同類型的應用程式。

POCO

POCO (或單純舊的類別/CLR 物件)是僅包含公用屬性或欄位的 .net 資料結構。 POCO 不應包含任何其他成員,例如:

  • methods
  • 活動
  • 委派

這些物件主要是用來做為資料傳輸物件 (Dto) 。 純粹 POCO 不會繼承另一個物件,也不會執行介面。 Poco 通常用於序列化。

執行階段

一般情況下,受管理程式的執行環境。 OS 是執行階段環境的一部分,但不是 .NET 執行階段的一部分。 以下是 .NET 執行時間的一些範例:

  • Common Language Runtime (CLR)
  • .NET Native (適用於 UWP)
  • Mono 執行階段

「執行時間」一詞在某些內容中有不同的意義:

  • .Net 5 下載頁面上的.net 運行時間。

    您可以下載.net 運行時間或其他執行時間,例如ASP.NET Core 運行時間。 此使用方式中的 運行 時間是一組必須安裝在電腦上的元件,以便在電腦上執行與 framework 相依 的應用程式。 .NET 執行時間包含可提供BCLCLR和 .net共用架構

  • .NET 執行時間程式庫

    參考 BCL 所參考的相同程式庫。 不過,其他執行時間(例如 ASP.NET Core 執行時間)會有不同的共用架構,以及在 BCL 上建立的其他程式庫。

  • (RID) 的執行時間識別碼

    這裡的運行時程表示 .net 應用程式執行所在的作業系統平臺和 CPU 架構,例如:

  • 有時會使用 "runtime" 來瞭解 .net 的執行,如下列範例所示:

    • 「不同的 .NET 執行階段會實作特定版本的 .NET Standard。 … 每個 .NET 執行階段版本會宣佈它所支援的最高 .NET Standard 版本...」
    • 「希望在多個執行時間上執行的程式庫應以此架構為目標。」 (指的是 .NET Standard)

共用架構

意義取決於內容。 .Net 共用架構是指.net 運行時間中包含的程式庫。 在此情況下,適用于 .Net 5 的 共用架構 (和 .net Core) 和更新版本 會參考 BCL 所參考的相同程式庫。

還有其他共用架構。 ASP.NET Core 共用架構是指包含在ASP.NET Core 運行時間中的程式庫,其中包含 BCL 加上 web apps 使用的其他 api。

針對與 framework 相依的應用程式,共用架構包含在執行應用程式之電腦上的資料夾中所安裝之元件的程式庫。 針對獨立式 應用程式,共用架構元件會隨附于應用程式。

如需詳細資訊,請參閱 .Net Core 基本專案的深入探討,第2部分:共用架構

堆疊

可搭配使用以建置及執行應用程式的一組程式設計技術。

「.NET stack」指的是 .NET Standard 和所有的 .NET 執行。 「一個 .NET 堆疊」一詞可能是指 .NET 的一項實作。

Target Framework - 目標 Framework

.NET 應用程式或程式庫依賴的 API 集合。

應用程式或程式庫可以將目標設為某個版本的 .NET Standard (例如 .NET Standard 2.0) ,這是一組標準化的 api,適用于所有 .net執行。 應用程式或程式庫也可以將目標設為某個版本的特定 .NET 實作;在此情況下,它可以存取實作特定的 API。 例如,以 Xamarin.iOS 為目標的應用程式可以存取 Xamarin 提供的 iOS API 包裝函式。

針對某些目標架構 (例如, .NET Framework) 可用的 api 是由 .net 部署安裝在系統上的元件所定義,其中可能包含應用程式架構 api (例如 ASP.NET、WinForms) 。 針對以套件為基礎的目標 framework,架構 Api 是由安裝在應用程式或程式庫中的套件所定義。

請參閱目標 Framework

TFM

目標 Framework Moniker。

用於指定 .NET 應用程式或程式庫之 目標 framework 的標準化標記格式。 目標 Framework 通常會由簡短名稱參考,例如 net462。 雖然有完整格式的 TFM (例如 .NETFramework,Version=4.6.2),但通常不會用來指定目標 Framework。

請參閱目標 Framework

UWP

通用 Windows 平台。

.net 的執行,可用來針對物聯網 (IoT) 建立觸控式 Windows 應用程式和軟體。 它是設計來統一您可能想要鎖定的不同裝置類型,包括電腦、平板電腦、手機,甚至是 Xbox。 UWP 提供許多服務 (例如集中式應用程式存放區)、一個執行環境 (AppContainer),以及用來取代 Win32 (WinRT) 的一組 Windows API。 您可以用 c + +、c #、Visual Basic 和 JavaScript 來撰寫應用程式。 使用 c # 和 Visual Basic 時,.net api 是由.net 5 (和 .net Core) 和更新版本所提供。

workload

某人正在建立的應用程式類型。 更通用於 應用程式模型。 例如,在每個 .net 檔頁面的頂端(包括此頁面)是工作負載的下拉式清單,可讓您切換至Web、行動雲端桌面機器學習 資料的檔。

在某些內容中,工作負載是指您可以選擇安裝以支援特定應用程式類型的 Visual Studio 功能集合。 如需範例,請參閱 選取工作負載

另請參閱