.NET 詞彙
此詞彙的主要目標是釐清 .NET 檔中經常出現的所選字詞和縮略字的意義。
AOT
預先編譯器。
此編譯器類似於 JIT,也會將 IL 轉譯成機器碼。 相較於 JIT 編譯,AOT 編譯會在執行應用程式之前發生,而且通常會在不同的電腦上執行。 由於 AOT 工具鏈結不會在運行時間編譯,因此不需要將編譯所花費的時間降到最低。 這表示它們可以花更多的時間在最佳化。 由於 AOT 的內容是整個應用程式,因此 AOT 編譯器也會執行跨模組連結和整個程式分析,這表示會追蹤所有參考並產生單一可執行檔。
請參閱 CoreRT 及 .NET Native。
應用程式模型
- .NET Aspire
- 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 Framework。
有時 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 資料夾中的組件有時稱為「二進位檔」。 另請參閱程式庫。
BCL
基類連結庫。
由 System.* (以及一定範圍內的 Microsoft.*) 命名空間組成的一組程式庫。 BCL 是 ASP.NET Core 等較高層級的應用程式架構建置所在之較低層級的一般目的架構。
適用於 .NET 的 BCL 原始碼包含在 .NET 運行時間存放庫中。 大部分的 BCL API 也適用於 .NET Framework,因此您可以將此原始程式碼視為 .NET Framework BCL 原始程式碼的分支。
下列詞彙通常是指 BCL 參考的相同 API 集合:
CLR
Common Language Runtime。
確切的意義取決於內容。 Common Language Runtime 通常是指 .NET Framework 的運行時間或 .NET 的運行時間。
CLR 會處理記憶體配置和管理。 CLR 也是虛擬機,不僅會執行應用程式,而且會使用 JIT 編譯程式即時產生和編譯程序代碼。
.NET Framework 的 CLR 實作只有 Windows。
.NET 的 CLR 實作(也稱為 Core CLR)是從與 .NET Framework CLR 相同的程式代碼基底建置。 最初,Core CLR 是 Silverlight 的運行時間,其設計目的是在多個平台上執行,特別是 Windows 和 OS X。它仍然是 跨平臺運行時間 ,現在包含許多 Linux 發行版的支援。
另 請參閱運行時間。
核心 CLR
.NET 的 Common Language Runtime。
請參閱 CLR。
CoreRT
與 CLR 相反,CoreRT 不是虛擬機,這表示它不包含可即時產生和執行程式代碼的功能,因為它不包含 JIT。 不過,它確實包含 GC ,以及運行時間類型識別 (RTTI) 和反映的能力。 不過,其型別系統已設計成不需要反映的中繼資料。 不需要元數據可讓 AOT 工具鏈連結掉多餘的元數據,且(更重要的是)識別應用程式未使用的程式代碼。 CoreRT 正在開發中。
請參閱 CoreRT 和 .NET Runtime Lab 簡介。
跨平台
開發和執行可在 Linux、Windows 和 iOS 等多個不同作業系統上使用的應用程式的能力,而不需要針對每個作業系統特別重寫。 這可讓不同平臺上的應用程式重複使用程式碼和一致性。
請參閱 平臺。
生態系統
用來建置及執行適用於指定技術之應用程式的所有執行階段軟體、開發工具和社群資源。
「.NET 生態系統」一詞與「.NET 堆疊」等類似詞彙的不同之處在於,前者包含協力廠商應用程式和程式庫。 以下是用於句子中的範例:
- .NET Standard 背後的動機是在 .NET 生態系統中建立更高的統一性。
Framework (英文)
一般而言,一組功能齊全的 API 可加快開發和部署以特定技術為基礎的應用程式。 ASP.NET Core 和 Windows Forms 即為此一般意義的應用程式架構範例。 字組架構和 連結庫 通常使用同義字。
“framework” 一詞在下列詞彙中有不同的意義:
有時「架構」是指 .NET 的實作。
架構連結庫
意義取決於內容。 可能會參考 .NET 的架構連結庫,在此情況下,它會參考 BCL 參考的相同連結庫。 它也可能會參考 以 BCL 為基礎建置的 ASP.NET Core 架構連結庫,並為 Web 應用程式提供額外的 API。
GC
記憶體回收行程。
記憶體回收行程是自動記憶體管理的實作。 GC 會釋放不再使用之物件所佔用的記憶體。
請參閱記憶體回收。
伊利諾州
中繼語言。
較高階的 .NET 語言 (例如 C#) 可向下編譯成硬體無從驗證的指令集,稱為中繼語言 (IL)。 IL 有時稱為 MSIL (Microsoft IL) 或 CIL (Common IL)。
JIT
Just-in-Time 編譯器。
此編譯器類似於 AOT,會將 IL 轉譯成處理器了解的機器碼。 不同於 AOT,JIT 編譯會視需要發生,而且會在必須執行程式碼的相同電腦上執行。 由於 JIT 編譯會在應用程式執行期間發生,因此編譯時間是運行時間的一部分。 因此,JIT 編譯器必須在最佳化程式碼所花費的時間與結果程式碼可能省下的時間之間取得平衡。 但 JIT 知道實際硬體,因此開發人員不需要提供不同的實作。
.NET 實作
.NET 的實作包括:
- 一或多個執行階段。 範例: CLR、 CoreRT。
- 實作 .NET Standard 版本的類別庫,可以包含其他 API。 範例:適用於 .NET Framework 和 .NET 的 BCL。
- (選擇性) 一或多個應用程式架構。 範例: ASP.NET、Windows Forms 和 WPF 包含在 .NET Framework 和 .NET 中。
- (選擇性) 開發工具。 某些開發工具可在多個實作之間共用。
.NET 實作的範例:
如需詳細資訊,請參閱 .NET 實作。
程式庫
可由應用程式或其他程式庫呼叫的 API 集合。 .NET 程式庫是由一或多個組件組成。
程式庫和架構等字在使用時通常同義。
Mono
需要小型運行時間時使用的 開放原始碼 跨平臺 .NET 實作。 這是在 Android、Mac、iOS、tvOS 和 watchOS 上提供 Xamarin 應用程式的運行時間,主要著重於需要少量使用量的應用程式。
它支援目前發行的所有 .NET Standard 版本。
在過去,Mono 實作較大型的 .NET Framework API,並模擬 UNIX 上最熱門的其中一些功能。 它有時用來執行依賴 Unix 上這些功能的 .NET 應用程式。
Mono 通常與 Just-In-Time 編譯程式搭配使用,但它也具有在 iOS 等平臺上使用的完整靜態編譯程式(預先編譯)。
如需詳細資訊,請參閱 Mono 文件。
原生 AOT
部署模式,其中應用程式是獨立式的,而且 會在發佈時預先 編譯為機器碼。 原生 AOT 應用程式不會在運行時間使用 JIT 編譯程式。 他們可以在未安裝 .NET 運行時間的計算機上執行。
如需詳細資訊,請參閱 原生 AOT 部署。
.NET
.NET 有兩種意義,而預期的意義取決於內容:
- .NET 可作為 .NET Standard 和所有 .NET 實作和工作負載的傘式詞彙。
- .NET 更頻繁地是指用來稱為 .NET Core 之 .NET 的跨平臺高效能開放原始碼實作。 它也可以稱為 .NET 5(和 .NET Core)和更新版本,或只稱為 .NET 5+。
例如,第一個意義適用於「.NET 的實作」等詞組。第二個意義適用於 .NET SDK 和 .NET CLI 等名稱。 如果沒有指出第一個意義的內容是預定的,假設第二個意義是預定的。
舊版的 .NET 稱為 .NET Core 1 到 3.1。 版本號碼會略過 4,而 3.1 後面的版本稱為 .NET 5,從名稱中卸除 “Core”。 卸除 「核心」是為了強調這個 .NET 實作是建議用於所有新開發的實作。 略過第 4 版有助於避免將這個較新的 .NET 實作與稱為 .NET Framework 的較舊實作混淆。 目前的 .NET Framework 版本是 4.8.1。
.NET 一律會完全大寫,絕不是 “.Net”。
請參閱 .NET 檔。
.NET CLI
用於開發 .NET 應用程式和連結庫的跨平臺工具鏈。 也稱為 .NET Core CLI。
請參閱 .NET CLI。
.NET Core
請參閱 .NET。
.NET Framework
只在 Windows 上執行的 .NET 實作。 包含 Common Language Runtime (CLR)、基類庫 (BCL) 和應用程式架構連結庫,例如 ASP.NET、Windows Forms 和 WPF。
請參閱 .NET Framework 指南。
.NET Native
編譯程式工具鏈,其會預先產生機器碼 (AOT),而不是 Just-In-Time (JIT)。
編譯會在開發人員的電腦上發生,其運作方式類似於 C++ 編譯器和連結器。 它會移除未使用的程式碼,並花更多時間在最佳化。 它會從程式庫擷取程式碼,並將其合併成可執行檔。 結果會是代表整個應用程式的單一模組。
UWP 是 .NET Native 所支援的應用程式架構。
請參閱 .NET Native 檔。
.NET SDK
一組連結庫和工具,可讓開發人員建立適用於 .NET 的應用程式和連結庫。 也稱為 .NET Core SDK。
包含建置應用程式的 .NET CLI、用於建置和執行應用程式的 .NET 連結庫和運行時間,以及執行 CLI 命令和執行應用程式的 dotnet 可執行檔 (dotnet.exe)。
請參閱 .NET SDK 概觀。
.NET Standard
每個 .NET 實作中可用的 .NET API 正式規格。
.NET Standard 規格有時稱為連結庫。 由於程式庫不只包含規格 (介面),還包含 API 實作,因此將 .NET Standard 稱為「程式庫」會造成誤導。
請參閱 .NET Standard。
NGen
原生 (映像) 產生。
您可以將這項技術視為持續性 JIT 編譯程式。 它通常會在執行程式碼的電腦上編譯程式碼,但編譯通常會發生在安裝期間。
套件
NuGet 套件,或只是套件,是具有 相同名稱之一或多個元件的.zip 檔案,以及其他元數據,例如作者名稱。
.zip檔案具有 .nupkg 擴展名,而且可以包含資產,例如.dll檔案和.xml檔案,以搭配多個目標架構和版本使用。 安裝於應用程式或程式庫時,會根據應用程式或程式庫所指定的目標 Framework 來選取適當的資產。 定義介面的資產位於 ref 資料夾中,而定義實作的資產則位於 lib 資料夾中。
平台
作業系統及其執行所在的硬體,例如 Windows、macOS、Linux、iOS 和 Android。
以下是用於句子中的範例:
- 「.NET Core 是 .NET 的跨平台實作。」
- 「PCL 配置檔代表Microsoft平臺,而 .NET Standard 與平台無關。
舊版 .NET 文件有時會使用 “.NET 平臺”來表示 .NET 或 .NET 堆棧 的實作,包括所有實作。 這兩種使用方式往往與主要 (OS/硬體) 意義混淆,因此我們會嘗試避免這些使用方式。
「平臺」在「開發人員平臺」一詞中有不同的意義,它指的是提供建置和執行應用程式的工具和連結庫的軟體。 .NET 是跨平臺的開放原始碼開發人員平臺,可用於建置許多不同類型的應用程式。
POCO
POCO—或一般舊的類別/CLR 物件—是只包含公用屬性或欄位的 .NET 數據結構。 POCO 不應該包含任何其他成員,例如:
- 方法
- 活動
- 代表
這些物件主要用於數據傳輸物件(DTO)。 純 POCO 不會繼承另一個物件,或實作介面。 POCO 通常會與串行化搭配使用。
執行階段
一般而言,Managed 程式的執行環境。 OS 是執行階段環境的一部分,但不是 .NET 執行階段的一部分。 以下是 .NET 運行時間在此意義上的一些範例:
- Common Language Runtime (CLR)
- .NET Native (適用於 UWP)
- Mono 執行階段
「運行時間」一詞在某些內容中有不同的意義:
.NET 5 下載頁面上的 .NET 運行時間。
您可以下載 .NET 運行時間 或其他運行時間,例如 ASP.NET Core 執行時間。 此使用方式中的運行時間是必須安裝在機器上的元件集,才能在計算機上執行架構相依應用程式。 .NET 運行時間包含 CLR 和 .NET 共用架構,可提供 BCL。
.NET 運行時間連結庫
是指 BCL 所參考的相同連結庫。 不過,其他運行時間,例如 ASP.NET Core 執行時間,具有不同的 共享架構,以及建置在 BCL 上的其他連結庫。
-
此處的運行時間 表示 .NET 應用程式執行的OS平臺和CPU架構,例如:
linux-x64
。 有時候,「運行時間」用於 .NET 實作的意義上,如下列範例所示:
- 「不同的 .NET 執行階段會實作特定版本的 .NET Standard。 每個 .NET 執行階段版本會宣佈它所支援的最高 .NET Standard 版本...」
- 「想要在多個運行時間上執行的連結庫應該以此架構為目標。」(指 .NET Standard)
共享架構
意義取決於內容。 .NET 共用架構是指 .NET 運行時間中包含的連結庫。 在此情況下,.NET 的共享架構會參考 BCL 參考的相同連結庫。
還有其他共享架構。 ASP.NET Core 共用架構是指包含在 ASP.NET Core 執行時間中的連結庫,其中包含 BCL 加上 Web 應用程式使用的其他 API。
針對 架構相依應用程式,共享架構是由安裝於執行應用程式之計算機上資料夾中之元件中包含的連結庫所組成。 針對 獨立式應用程式,共用架構元件會隨附於應用程式。
如需詳細資訊,請參閱 深入探討 .NET Core 基本類型,第 2 部分:共享架構。
stack
可搭配使用以建置及執行應用程式的一組程式設計技術。
「.NET 堆棧」是指 .NET Standard 和所有 .NET 實作。 片語 “a .NET stack” 可以參考 .NET 的一個實作。
Target Framework - 目標 Framework
.NET 應用程式或程式庫依賴的 API 集合。
應用程式或連結庫可以以 .NET Standard 版本 為目標(例如 .NET Standard 2.0),這是所有 .NET 實作中標準化 API 集合的規格。 應用程式或程式庫也可以將目標設為某個版本的特定 .NET 實作;在此情況下,它可以存取實作特定的 API。 例如,以 Xamarin.iOS 為目標的應用程式可以存取 Xamarin 提供的 iOS API 包裝函式。
對於某些目標架構(例如 .NET Framework),可用的 API 是由 .NET 實作安裝在系統上的元件所定義,這些元件可以包含應用程式架構 API(例如,ASP.NET WinForms)。 針對套件型目標架構,架構 API 是由應用程式或連結庫中安裝的套件所定義。
請參閱目標 Framework。
TFM
目標 Framework Moniker。
指定 .NET 應用程式或連結庫之目標架構 的標準化令牌格式。 目標 Framework 通常會由簡短名稱參考,例如 net462
。 長型TFM(例如) .NETFramework,Version=4.6.2
存在,但通常不會用來指定目標架構。
請參閱目標 Framework。
UWP
通用 Windows 平台。
.NET 的實作,用於建置物聯網 (IoT) 的觸控式 Windows 應用程式和軟體。 其設計目的是整合您可能想要設定目標的不同類型的裝置,包括計算機、平板電腦、手機,甚至是 Xbox。 UWP 提供許多服務 (例如集中式應用程式存放區)、一個執行環境 (AppContainer),以及用來取代 Win32 (WinRT) 的一組 Windows API。 您可以使用 C++、C#、Visual Basic 和 JavaScript 來撰寫應用程式。 使用 C# 和 Visual Basic 時,.NET API 是由 .NET 提供。
工作負載
某人正在建置的應用程式類型。 比應用程式模型更泛型。 例如,在每個 .NET 檔頁面頂端,包括此檔案,是工作負載的下拉式清單,可讓您切換至 Web、行動、雲端、雲端原生和桌面的檔。
在某些內容中,工作負載是指一組Visual Studio功能,您可以選擇安裝以支援特定類型的應用程式。 如需範例,請參閱 設定Visual Studio工作負載。