.NET 術語

来源:https://www.cnblogs.com/ChengWenHao/archive/2018/12/01/AspNetOtherPart4.html
-Advertisement-
Play Games

.NET 術語 1. AOT 預編譯器。與 JIT 類似,此編譯器還可將 IL 轉換為機器代碼。 與 JIT 編譯相比,AOT 編譯在應用程式執行前進行並且通常在不同電腦上執行。 由於在運行時 AOT 工具鏈不編譯,因此它們不需要最大程度地減少編譯所花費的時間。 這意味著它們可花更多的時間進行優化 ...


 .NET 術語

1. AOT

預編譯器。
與 JIT 類似,此編譯器還可將 IL 轉換為機器代碼。 與 JIT 編譯相比,AOT 編譯在應用程式執行前進行並且通常在不同電腦上執行。 由於在運行時 AOT 工具鏈不編譯,因此它們不需要最大程度地減少編譯所花費的時間。 這意味著它們可花更多的時間進行優化。 由於 AOT 的上下文是整個應用程式,因此 AOT 編譯器還會執行跨模塊鏈接和全程式分析,這意味著之後會進行所有引用並會生成單個可執行文件。

2. ASP.NET
隨 .NET Framework 一起提供的原始 ASP.NET 實現。
有時 ASP.NET 是一個涵蓋性術語,指包含 ASP.NET Core 在內的兩個 ASP.NET 實現。

3. ASP.NET Core
.NET Core 上生成的跨平臺、高性能、 開放源 ASP.NET 實現。

4. 程式集
.dll/.exe 文件,其中包含一組可由應用程式或其他程式集調用的 API。
程式集可以包括介面、類、結構、枚舉和委托等類型。 有時,項目的 bin 文件夾中的程式集被稱為二進位文件。

5. CLR
公共語言運行時。
確切含義取決於上下文,但它通常指 .NET Framework 的運行時。 CLR 處理記憶體分配和管理。 CLR 也是一個虛擬機,不僅可執行應用,還可使用 JIT 編譯器快速生成和編譯代碼。 當前的 Microsoft CLR 實現僅限 Windows。

6. CoreCLR
.NET Core 公共語言運行時。
此 CLR 是採用與 CLR 相同的基本代碼生成的。 最初,CoreCLR 是 Silverlight 的運行時,專為在多個平臺(特別是 Windows 和 OS X)上運行而開發。CoreCLR 現屬於 .NET Core 並表示 CLR 的簡化版本。 它仍是跨平臺運行時,現包括針對許多 Linux 分發的支持。 CoreCLR 也是具有 JIT 和代碼執行功能的虛擬機。

7. CoreFX
.NET Core 基類庫 (BCL)
一組構成 System.(在一定的程度上構成 Microsoft.)命名空間的庫。 BCL 是用於生成 ASP.NET Core 等較高級應用程式框架的較低級通用框架。 .NET Core BCL 的源代碼包含在 CoreFX 存儲庫中。 但大部分 .NET Core API 也可在 .NET Framework 中使用,因此可將 CoreFX 視為 .NET Framework BCL 的一個分支。

8. CoreRT
.NET Core 運行時。
與 CLR/CoreCLR 相比,CoreRT 不是虛擬機,這意味著它不包含用於快速生成並運行代碼的功能,因為它不包括 JIT。 但它包含 GC 以及運行時類型標識 (RTTI) 和反射功能。 只是由於設計有類型系統,因此並不需要元數據反射功能。 包含這些功能使它具有 AOT 工具鏈,該工具鏈可去除多餘的元數據,更重要的是可識別應用不使用的代碼。

9. 跨平臺
能夠開發並執行可在多個不同操作系統(如 Linux、Windows 和 iOS)上使用的應用程式,而無需專門針對每個操作系統進行重新編寫。 這樣,可以在不同平臺上的應用程式之間重覆使用代碼並保持一致性。

10. 生態系統
所有針對給定技術生成和運行應用程式的運行時軟體、開發工具和社區資源。

11. 框架
一般指一個綜合 API 集合,便於開發和部署基於特定技術的應用程式。 從此常規意義上來說,ASP.NET Core 和 Windows 窗體都是示例應用程式框架。

12. “GC
垃圾回收器。
垃圾回收器是自動記憶體管理的實現。 GC 可釋放對象占用的不再使用的記憶體。

13. IL
中間語言。
C# 等較高級的 .NET 語言編譯為稱為中間語言 (IL) 的硬體無關性指令集。 IL 有時被稱為 MSIL (Microsoft IL) 或 CIL(通用 IL)。

14. JIT
實時編譯器。
與 AOT 類似,此編譯器將 IL 轉換為處理器可理解的電腦代碼。 與 AOT 不同,JIT 編譯在需要運行代碼的同一臺電腦上按需執行。 由於 JIT 編譯在應用程式的執行過程中發生,因此編譯時是運行時的一部分。 因此,JIT 編譯器需要平衡優化代碼所花費的時間與生成代碼時可節約的時間。 但 JIT 知道實際硬體,這樣開發人員就無需提供不同的實現。

15 .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)

16.
可由應用或其他庫調用的 API 集合。 .NET 庫由一個或多個程式集組成。
詞庫和框架通常作同義詞使用。

17. 元包
一個 NuGet 包,沒有自己的庫,而只是一個依賴項列表。 所含包可選擇建立目標框架的 API。

18. Mono
Mono 是主要在需要小型運行時使用的開放源、跨平臺 .NET 實現。 它是運行時,在 Android、Mac、iOS、tvOS 和 watchOS 上為 Xamarin 應用程式提供技術支持,主要針對記憶體占用少的應用程式。
它支持所有當前已發佈的 .NET Standard 版本。
以前,Mono 實現更大的 .NET Framework API 並模擬一些 Unix 上最常用的功能。 有時使用它運行依賴 Unix 上的這些功能的 .NET 應用程式。
Mono 通常與實時編譯器一起使用,但它也提供在 iOS 之類的平臺使用的完整靜態編譯器(預先編譯)。

19 .NET
.NET Standard 和所有 .NET 實現及工作負荷的涵蓋性術語。 始終採用大寫形式,請勿使用“.Net”。

20 .NET Core
一種跨平臺、高性能的開放源 .NET 實現。 包括 Core 公共語言運行時 (CoreCLR)、Core AOT 運行時(正在開發的 CoreRT)、Core 基類庫和 Core SDK。

21 .NET Core CLI
用於開發 .NET Core 應用程式的跨平臺工具鏈。

22 .NET Core SDK
一組庫和工具,開發人員可用其創建 .NET Core 應用程式和庫。 包括用於生成應用的 .NET Core CLI、用於生成和運行應用的 .NET Core 庫以及運行 CLI 命令和運行應用程式的 dotnet 可執行文件 (dotnet.exe)。

23 .NET Framework
僅在 Windows 上運行的 .NET 實現。 包括公共語言運行時 (CLR)、基類庫和 ASP.NET、Windows 窗體和 WPF 之類的應用程式框架庫。

24 .NET Native
編譯器工具鏈,可預先 (AOT) 生成,而非實時 (JIT) 生成本機代碼。
編譯採用與 C++ 編譯器和鏈接器類似的工作方式在開發人員電腦上進行。 它刪除了未使用的代碼,留出更多時間進行優化。 它從庫中提取代碼,將它們合併到可執行文件中。 結果是表示整個應用的單個模塊。
UWP 是 .NET Native 支持的首個應用程式框架。 現在,我們支持為 Windows、macOS 和 Linux 生成本機控制台應用。

25 .NET Standard
在每個 .NET 實現中都可用的 .NET API 正式規範。
.NET Standard 規範有時被稱為文檔中的庫。 由於庫不僅包括規範(介面),還包括 API 實現,所以會誤將 .NET Standard 稱為“庫”。 我們計劃從本文檔中去除該用法,引用 .NET Standard 元包 (NETStandard.Library) 的名稱除外。

26. NGEN
本機(映像)生成。
可將此方法視為永久性 JIT 編譯器。 它通常在執行代碼的電腦上編譯該代碼,但通常在安裝時進行編譯。

27.
NuGet 包 — 或只是一個包 — 是一個 .zip 文件,其中具有一個或多個名稱相同的程式集以及作者姓名等其他元數據。
.zip 文件的擴展名為 .nupkg,且可以包含在多個目標框架和版本中使用的文件(如 .dll 文件和 .xml 文件)。 在應用或庫中安裝時,會根據應用或庫指定的目標框架選擇相應的文件。 定義介面的文件位於 ref 文件夾,而定義實現的文件位於 lib文件夾。

28. 平臺
操作系統以及運行它的硬體,例如 Windows、macOS、Linux、iOS 和 Android。

29. Runtime — 運行時
用於托管程式的執行環境。
OS 屬於運行時環境,但不屬於 .NET 運行時。 下麵是 .NET 運行時的一些示例:
    公共語言運行時 (CLR)
    Core 公共語言運行時 (CoreCLR)
    .NET Native(適用於 UWP)
    Mono 運行時

30. 堆棧
一組編程方法,一起用於生成並運行應用程式。
“.NET 堆棧”指 .NET Standard 和所有 .NET 實現。 短語“一個 .NET 堆棧”可能指一種 .NET 實現。

31. 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 由安裝在應用或庫中的包定義。 在這種情況下,目標框架隱式指定一個元包,該元包引用一起構成框架的所有包。

32. TFM
目標框架名字對象。
一個標準化令牌格式,用於指定 .NET 應用或庫的目標框架。 目標框架通常由短名稱(如 net462)引用。 存在長格式的 TFM(如 .NETFramework,Version=4.6.2),但通常不用來指定目標框架。

33. UWP
通用 Windows 平臺。
用於為物聯網 (IoT) 生成新式觸控 Windows 應用程式和軟體的 .NET 實現。 它旨在統一可能想要以其為目標的不同類型的設備,包括電腦、平板電腦、平板手機、電話,甚至 Xbox。 UWP 提供許多服務,如集中式應用商店、執行環境 (AppContainer) 和一組 Windows API(用於代替 Win32 (WinRT))。 應用可採用 C++、C#、VB.NET 和 JavaScript 編寫。 使用 C# 和 VB.NET 時,.NET API 由 .NET Core 提供。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • public class TestSuShu { public static void main(String[] args) { for(int i=2;i<=100;i++) { boolean isSushu = true; for(int j=2;j<i;j++) { if(i%j==0) ...
  • 題意 "題目鏈接" Sol 記得NJU有個特別強的ACM隊叫拉格朗,總感覺少了什麼。。 不說了直接扔公式 $$f(x) = \sum_{i = 1}^n y_i \prod_{j \not = i} \frac{k x[j]}{x[i] x[j]}$$ 複雜度$O(n^2)$ 如果$x$的取值是連續 ...
  • 1.常見參數 tcpdump -i eth0 -nn -s0 -v port 80 -i 選擇監控的網卡 -nn 不解析主機名和埠號,捕獲大量數據,名稱解析會降低解析速度 -s0 捕獲長度無限制 -v 增加輸出中顯示的詳細信息量 port 80 埠過濾器,只捕獲80埠的流量,通常是HTTP 2... ...
  • 爬蟲的定義 什麼是爬蟲? 爬蟲(又被稱為網頁蜘蛛,網路機器人)就是模擬客戶端發送網路請求,接收請求響應,一種按照一定的規則,自動地抓取互聯網信息的程式。 原則上,只要是瀏覽器(客戶端)能做的事情,爬蟲都能夠做。 爬蟲的分類和爬蟲的流程 爬蟲的分類 爬蟲的分類 根據被爬網站的數量不同,我們把爬蟲分為 ...
  • 1、if語句if 語句基本用法: 其中,表達式可以是一個單純的布爾值或變數,也可以是比較表達式或邏輯表達式,如果表達式為真,則執行“語句塊”;如果表達式的值為假,就跳 過“語句塊”,繼續執行後面的語句。 2、if…else語句if…else 語句基本用法: 使用 if…else 語句時,表達式可以是 ...
  • 總體原則:命名一定要體現其在程式中的作用; Camel命名法:第一個單詞的首字母小寫,其餘每個單詞的首字母大寫;多用給變數或者欄位命名;給欄位命名必須以下劃線開始; Pascal命名法:每個單詞的首字母都大寫,其餘字母小寫;適用於方法名、類名、屬性名等; ...
  • 一. 起始 去年.NetCore2.0的發佈,公司決定新項目採用.NetCore開發,當作試驗。但是問題在於當前公司內部使用的RPC服務為Thrift v0.9 + zookeeper版本,經過個性化定製,支持了非同步,但也因為如此,這麼多年來一直沒有去升級,導致遷移工作很複雜(歷史遺留項目太多,有各 ...
  • 前言 曾有做過一個產品,有一個功能是視頻監控模塊,視頻監控首先想到的是視頻多畫面切換功能,由於前端是用WPF開發的,所以當時就做了一個多畫面切換組件,效果如下: 功能設計前提: 由於要使用海康大華天地偉業等視頻廠家的視頻,對接的方式是通過各個廠家提供的SDK(官網下載),由於播放視頻的時候需要傳遞控 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...