.NET 術語表
此術語表的主要目的是闡明所選術語和縮寫詞的含義,這些詞頻繁出現在 .NET 文件中但沒有定義。
AOT
預編譯器。
與 JIT
類似,此編譯器還可將 IL
轉換為機器程式碼。 與 JIT
編譯相比,AOT
編譯在應用程式執行前進行並且通常在不同計算機上執行。 由於在執行時 AOT
工具鏈不編譯,因此它們不需要最大程度地減少編譯所花費的時間。這意味著它們可花更多的時間進行優化。 由於 AOT
的上下文是整個應用程式,因此 AOT
編譯器還會執行跨模組連結和全程式分析,這意味著之後會進行所有引用並會生成單個可執行檔案。
ASP.NET
隨 .NET Framework
一起提供的原始 ASP.NET
實現。
有時 ASP.NET
是一個涵蓋性術語,指包含 ASP.NET Core
在內的兩個 ASP.NET
實現。 該術語在任何給定例項中的含義取決於上下文。 若要指明不要使用 ASP.NET
表示這兩種實現,請參考 ASP.NET 4.x
。
請參閱 ASP.NET 文件。
ASP.NET Core
.NET Core
上生成的跨平臺、高效能、 開放源 ASP.NET
實現。
請參閱 ASP.NET Core 文件。
程式集
.dll/.exe
檔案,其中包含一組可由應用程式或其他程式集呼叫的 API
。
程式集可以包括介面、類、結構、列舉和委託等型別。 有時,專案的 bin
資料夾中的程式集被稱為二進位制檔案。 另請參閱庫。
CLR
公共語言執行時。
確切含義取決於上下文,但它通常指 .NET Framework
的執行時。 CLR
處理記憶體分配和管理。 CLR
也是一個虛擬機器,不僅可執行應用,還可使用 JIT
編譯器快速生成和編譯程式碼。 當前的 Microsoft CLR
實現僅限 Windows
。
CoreCLR
.NET Core
公共語言執行時。
此 CLR 是採用與 CLR 相同的基本程式碼生成的。 最初,CoreCLR
是 Silverlight
的執行時,專為在多個平臺(特別是 Windows 和 OS X)上執行而開發。CoreCLR
現屬於 .NET Core
並表示 CLR
的簡化版本。 它仍是跨平臺執行時,現包括針對許多 Linux 分發的支援。 CoreCLR
也是具有 JIT
和程式碼執行功能的虛擬機器。
CoreFX
.NET Core
基類庫 (BCL
)
一組構成 System.*
(在一定的程度上構成 Microsoft.*
)名稱空間的庫。 BCL
是用於生成 ASP.NET Core
等較高階應用程式框架的較低階通用框架。 .NET Core BCL
的原始碼包含在 CoreFX
儲存庫中。 但大部分 .NET Core API
也可在 .NET Framework
中使用,因此可將 CoreFX
視為 .NET Framework BCL
的一個分支。
CoreRT
.NET Core
執行時。
與 CLR/CoreCLR
相比,CoreRT
不是虛擬機器,這意味著它不包含用於快速生成並執行程式碼的功能,因為它不包括 JIT。 但它包含 GC 以及執行時型別標識 (RTTI) 和反射功能。 只是由於設計有型別系統,因此並不需要後設資料反射功能。 包含這些功能使它具有 AOT 工具鏈,該工具鏈可去除多餘的後設資料,更重要的是可識別應用不使用的程式碼。 CoreRT 正在開發中。
請參閱 .NET Native 和 CoreRT 簡介
跨平臺
能夠開發並執行可在多個不同作業系統(如 Linux、Windows 和 iOS)上使用的應用程式,而無需專門針對每個作業系統進行重新編寫。 這樣,可以在不同平臺上的應用程式之間重複使用程式碼並保持一致性。
生態系統
所有針對給定技術生成和執行應用程式的執行時軟體、開發工具和社群資源。
在所包含的第三方應用和庫方面,術語“.NET 生態系統”不同於類似的“.NET 堆疊”等術語。 請看以下這一句示例:
- “推出 .NET Standard 的背後動機是要提高 .NET 生態系統中的一致性。”
框架
一般指一個綜合 API
集合,便於開發和部署基於特定技術的應用程式。 從此常規意義上來說,ASP.NET Core
和 Windows
窗體都是示例應用程式框架。 另請參閱庫。
“框架”一詞在以下術語中有更具體的技術含義:
- .NET Framework
- 目標框架
- TFM(目標框架名字物件)
在現有的文件中,“框架”有時指 .NET 的實現。 例如,某文章可能會將 .NET Core
稱為框架。 我們計劃從文件中去掉這種令人困惑的用法。
“GC”
垃圾回收器。
垃圾回收器是自動記憶體管理的實現。 GC
可釋放物件佔用的不再使用的記憶體。
請參閱垃圾回收。
IL
中間語言。
C# 等較高階的 .NET
語言編譯為稱為中間語言 (IL
) 的硬體無關性指令集。 IL
有時被稱為 MSIL (Microsoft IL)
或 CIL
(通用 IL)。
JIT
實時編譯器。
與 AOT 類似,此編譯器將 IL 轉換為處理器可理解的計算機程式碼。 與 AOT 不同,JIT 編譯在需要執行程式碼的同一臺計算機上按需執行。 由於 JIT 編譯在應用程式的執行過程中發生,因此編譯時是執行時的一部分。 因此,JIT 編譯器需要平衡優化程式碼所花費的時間與生成程式碼時可節約的時間。 但 JIT 知道實際硬體,這樣開發人員就無需提供不同的實現。
.NET 實現
.NET
的實現包括以下項:
- 一個或多個執行時。 示例:
CLR、CoreCLR、CoreRT
。 - 實現
.NET Standard
的某版本並且可能包含其他API
的類庫。 示例:.NET Framework
基類庫、.NET Core
基類庫。 - 可選擇包含一個或多個應用程式框架。 示例:
ASP.NET
、Windows 窗體和WPF
包含在.NET Framework
中。 - 可包含開發工具。 某些開發工具在多個實現之間共享。
.NET 實現的示例:
- .NET Framework
- .NET Core
- 通用 Windows 平臺 (UWP)
庫
可由應用或其他庫呼叫的 API 集合。 .NET
庫由一個或多個程式集組成。
詞庫和框架通常作同義詞使用。
元包
一個 NuGet
包,沒有自己的庫,而只是一個依賴項列表。 所含包可選擇建立目標框架的 API
。
請參閱包、元包和框架
Mono
Mono
是主要在需要小型執行時使用的開放源、跨平臺 .NET
實現。 它是執行時,在 Android、Mac、iOS、tvOS
和 watchOS
上為 Xamarin 應用程式提供技術支援,主要針對記憶體佔用少的應用程式。
它支援所有當前已釋出的 .NET Standard
版本。
以前,Mono
實現更大的 .NET Framework API
並模擬一些 Unix
上最常用的功能。 有時使用它執行依賴 Unix
上的這些功能的 .NET
應用程式。
Mono
通常與實時編譯器一起使用,但它也提供在 iOS 之類的平臺使用的完整靜態編譯器(預先編譯)。
若要了解有關 Mono 的詳細資訊,請參閱 Mono 文件。
.NET
.NET Standard
和所有 .NET
實現及工作負荷的涵蓋性術語。 始終採用大寫形式,請勿使用“.Net”。
請參閱 .NET 指南
.NET Core
一種跨平臺、高效能的開放源 .NET
實現。 包括 Core
公共語言執行時 (CoreCLR)、Core AOT 執行時(正在開發的 CoreRT)、Core 基類庫和 Core SDK。
請參閱 .NET Core。
.NET Core CLI
用於開發 .NET Core 應用程式的跨平臺工具鏈。
請參閱 .NET Core 命令列介面 (CLI) 工具。
.NET Core SDK
一組庫和工具,開發人員可用其建立 .NET Core
應用程式和庫。 包括用於生成應用的 .NET Core CLI
、用於生成和執行應用的 .NET Core
庫以及執行 CLI
命令和執行應用程式的 dotnet
可執行檔案 (dotnet.exe
)。
請參閱 .NET Core SDK
概述。
.NET Framework
僅在 Windows 上執行的 .NET 實現。 包括公共語言執行時 (CLR
)、基類庫和 ASP.NET、Windows 窗體和 WPF 之類的應用程式框架庫。
請查閱 .NET Framework 指南。
.NET Native
編譯器工具鏈,可預先 (AOT) 生成,而非實時 (JIT) 生成本機程式碼。
編譯採用與 C++ 編譯器和連結器類似的工作方式在開發人員計算機上進行。 它刪除了未使用的程式碼,留出更多時間進行優化。 它從庫中提取程式碼,將它們合併到可執行檔案中。 結果是表示整個應用的單個模組。
UWP 是 .NET Native 支援的首個應用程式框架。 現在,我們支援為 Windows、macOS
和 Linux
生成本機控制檯應用。
請參閱 .NET Native 和 CoreRT 簡介
.NET Standard
在每個 .NET 實現中都可用的 .NET API
正式規範。
.NET Standard
規範有時被稱為文件中的庫。 由於庫不僅包括規範(介面),還包括 API 實現,所以會誤將 .NET Standard
稱為“庫”。 我們計劃從本文件中去除該用法,引用 .NET Standard
元包 (NETStandard.Library) 的名稱除外。
請參閱 .NET Standard。
NGEN
本機(映像)生成。
可將此方法視為永久性 JIT 編譯器。 它通常在執行程式碼的計算機上編譯該程式碼,但通常在安裝時進行編譯。
包
NuGet 包 — 或只是一個包 — 是一個 .zip 檔案,其中具有一個或多個名稱相同的程式集以及作者姓名等其他後設資料。
.zip
檔案的副檔名為 .nupkg
,且可以包含在多個目標框架和版本中使用的資產(如 .dll 檔案和 .xml 檔案)。 在應用或庫中安裝時,會根據應用或庫指定的目標框架選擇相應的資產。 定義介面的資產位於 ref 資料夾,而定義實現的資產位於 lib資料夾。
平臺
作業系統以及執行它的硬體,例如 Windows、macOS、Linux、iOS
和 Android
。
下面是在句子中使用的示例:
“.NET Core 是一個跨平臺 .NET 實現。”
“PCL 配置檔案代表 Microsoft 平臺,而 .NET Standard 與平臺無關。”
.NET 文件經常使用“.NET 平臺”表示一個 .NET 實現或包括所有實現的 .NET 堆疊。 這兩種用法往往會與主(OS/硬體)含義混淆,因此我們計劃從文件中去除這些用法。
Runtime
— 執行時
用於託管程式的執行環境。
OS
屬於執行時環境,但不屬於 .NET
執行時。 下面是 .NET
執行時的一些示例:
- 公共語言執行時 (CLR)
- Core 公共語言執行時 (CoreCLR)
.NET Native
(適用於 UWP)- Mono 執行時
.NET 文件有時使用“執行時”表示 .NET 的實現。 例如,在以下句子中應使用“實現”替換“執行時”:
- “各種 .NET 執行時實現特定版本的
.NET Standard
。” - “計劃在多個執行時上執行的庫應將此框架作為目標。” (參閱 .NET Standard)
- “各種 .NET 執行時實現特定版本的
.NET Standard
。 … 每個 .NET 執行時版本都將會公佈它所支援的最高.NET Standard
版本…”
我們計劃消除此不一致的用法。
堆疊
一組程式設計方法,一起用於生成並執行應用程式。
“.NET 堆疊”指 .NET Standard
和所有 .NET
實現。 短語“一個 .NET
堆疊”可能指一種 .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)。 對於基於包的目標框架(例如 .NET Standard
和 .NET Core
),框架 API 由安裝在應用或庫中的包定義。 在這種情況下,目標框架隱式指定一個元包,該元包引用一起構成框架的所有包。
請參閱目標框架。
TFM
目標框架名字物件。
一個標準化令牌格式,用於指定 .NET 應用或庫的目標框架。 目標框架通常由短名稱(如 net462)引用。 存在長格式的 TFM(如 .NETFramework,Version=4.6.2),但通常不用來指定目標框架。
請參閱目標框架。
UWP
通用 Windows 平臺。
用於為物聯網 (IoT) 生成新式觸控 Windows 應用程式和軟體的 .NET 實現。 它旨在統一可能想要以其為目標的不同型別的裝置,包括電腦、平板電腦、平板手機、電話,甚至 Xbox。 UWP 提供許多服務,如集中式應用商店、執行環境 (AppContainer
) 和一組 Windows API(用於代替 Win32 (WinRT))。 應用可採用 C++、C#、VB.NET 和 JavaScript 編寫。 使用 C# 和 VB.NET 時,.NET API 由 .NET Core
提供。
相關文章
- 《強化學習》一書術語表強化學習
- .NET 團隊 更新了 .NET 語言策略
- BI工具術語表大全:從字母A-Z全面收錄
- 【強化學習】強化學習術語表(A-Z)強化學習
- Google釋出機器學習術語表 (中英對照)Go機器學習
- .NET 5 全自動分表元件,.NET 分表方案 ,分表架構與設計元件架構
- fastreport .net列印普通報表AST
- 語義網路術語
- AI 術語AI
- 聊一聊 .NET高階除錯 中的一些記憶體術語高階除錯記憶體
- .NET平臺系列24:從.NET Framework遷移到.NET Core/.NET5的技術指南Framework
- 統計術語
- CSS基本術語CSS
- 分表技術
- .NET CORE 多語言實現方案
- .NET Core技術研究-主機
- .Net MVC5(.Net Framework 4.0+)多語言解決方案MVCFramework
- 談談術語表、資料字典、資料目錄分別是什麼
- pgsql 連表更新語法SQL
- 表頭問號提示語
- 軟路由常用術語路由
- BGP 相關術語
- [專業術語]ORMORM
- [專業術語]OOPOOP
- [專業術語]AJAX
- 計算機術語計算機
- Python術語對照表Python
- Mapbox詞彙表中文文件(查詢Mapbox相關的術語及其定義)
- .net Framework Web Api 實現多國語FrameworkWebAPI
- .net視覺化表單設計工具視覺化
- .NET 技術棧 思維導圖
- .NET Core技術研究系列-索引篇索引
- .NET平臺系列25:從 ASP.NET 遷移到 ASP.NET Core 的技術指南ASP.NET
- 資料庫-單表結構-建表語句資料庫
- 線性表-順序表C語言實現C語言
- 一起談.NET技術,40條ASP.NET開發TipASP.NET
- 多表查詢建表語句
- MySQL檢視建表語句MySql