本词汇表的主要目标是阐明 .NET 文档中经常出现的选定术语和首字母缩略词的含义。 奥特 提前编译器。 与JIT类似,此编译器还将IL转换为机器代码。与 JIT 编译相反,AOT 编译发生在应用程序执行之前,并且通常在不同的机器上执行。因为 AOT 工具链不在运行时编译,所以它们不必最小化编译时间。这意味着他们可以花更多时间进行优化。由于 AOT 的上下文是整个应用程序,因此 AOT 编译器还进行跨模块链接和全程序分析,这意味着遵循所有引用并生成单个可执行文件。 请参阅CoreRT和.NET Native。 应用模型 一个工作量特异性API。这里有些例子: ASP.NET ASP.NET Web API 实体框架 (EF) Windows 演示基础 (WPF) Windows 通信基础 (WCF) Windows 工作流基础 (WF) Windows 窗体 (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 核心 ASP.NET 的跨平台、高性能、开源实现。 请参阅ASP.NET Core 文档。 部件 一个.dll或.exe文件,其中可以包含可由应用程序或其他程序集调用的 API 集合。 程序集可能包括接口、类、结构、枚举和委托等类型。项目的bin文件夹中的程序集有时称为二进制文件。另见库。 BCL 基类库。 一组包含 System.*(以及在有限范围内的 Microsoft.*)命名空间的库。BCL 是一种通用的低级框架,高级应用程序框架(例如 ASP.NET Core)在其上构建。 .NET 5(和 .NET Core)及更高版本的 BCL 源代码包含在.NET 运行时存储库中。大多数 BCL API 在 .NET Framework 中也可用,因此您可以将此源代码视为 .NET Framework BCL 源代码的分支。 以下术语通常指的是 BCL 所指的同一 API 集合: 核心 .NET 库 框架库 运行时库 共享框架 CLR 公共语言运行时。 确切的含义取决于上下文。公共语言运行时通常是指.NET Framework的运行时或.NET 5(和 .NET Core)及更高版本的运行时。 CLR 处理内存分配和管理。CLR 也是一个虚拟机,它不仅可以执行应用程序,还可以使用JIT编译器即时生成和编译代码。 .NET Framework 的 CLR 实现仅适用于 Windows。 .NET 5 和更高版本的 CLR 实现(也称为 Core CLR)是从与 .NET Framework CLR 相同的代码库构建的。最初,Core CLR 是 Silverlight 的运行时,旨在运行在多个平台上,特别是 Windows 和 OS X。它仍然是一个跨平台的运行时,现在包括对许多 Linux 发行版的支持。 另请参见运行时。 核心CLR .NET 5(和 .NET Core)及更高版本的公共语言运行时。 请参阅CLR。 核心RT 与CLR 相比,CoreRT 不是虚拟机,这意味着它不包括即时生成和运行代码的设施,因为它不包括JIT。但是,它确实包括GC以及运行时类型识别 (RTTI) 和反射的能力。然而,它的类型系统被设计成不需要用于反射的元数据。不需要元数据可以让AOT工具链链接掉多余的元数据和(更重要的是)识别应用程序不使用的代码。CoreRT 正在开发中。 请参阅CoreRT和.NET 运行时实验室介绍。 跨平台 能够开发和执行可在多种不同操作系统(例如 Linux、Windows 和 iOS)上使用的应用程序,而无需专门为每个操作系统重写。这实现了不同平台上的应用程序之间的代码重用和一致性。 见平台。 生态系统 用于为给定技术构建和运行应用程序的所有运行时软件、开发工具和社区资源。 术语“.NET 生态系统”与“.NET 堆栈”等类似术语的不同之处在于它包含第三方应用程序和库。这是一个句子中的示例: “ .NET Standard背后的动机是在 .NET 生态系统中建立更大的统一性。” 框架 一般而言,一个全面的 API 集合,可促进基于特定技术的应用程序的开发和部署。从一般意义上讲,ASP.NET Core 和 Windows 窗体是应用程序框架的示例。框架和库这两个词经常作为同义词使用。 “框架”一词在以下术语中具有不同的含义: 框架库 .NET 框架 共享框架 目标框架 TFM(目标框架名称) 依赖于框架的应用程序 有时“框架”是指.NET的实现。例如,一篇文章可能将 .NET 5 称为框架。 框架库 意义取决于上下文。可能指的是.NET 5(和 .NET Core)及更高版本的框架库,在这种情况下,它指的是BCL所指的相同库。它也可能指ASP.NET Core框架库,它构建在 BCL 上并为 Web 应用程序提供额外的 API。 GC 垃圾收集器。 垃圾收集器是自动内存管理的实现。GC 释放不再使用的对象占用的内存。 请参阅垃圾收集。 伊利诺伊州 中级语言。 更高级别的 .NET 语言(例如 C#)编译为与硬件无关的指令集,称为中间语言 (IL)。IL 有时称为 MSIL(Microsoft IL)或 CIL(通用 IL)。 准时制 即时编译器。 与AOT类似,此编译器将IL转换为处理器理解的机器代码。与 AOT 不同,JIT 编译是按需发生的,并且在代码需要运行的同一台机器上执行。由于 JIT 编译发生在应用程序执行期间,因此编译时间是运行时间的一部分。因此,JIT 编译器必须在优化代码所花费的时间与结果代码可以产生的节省之间取得平衡。但是 JIT 知道实际的硬件,并且可以使开发人员不必交付不同的实现。 .NET 的实现 .NET 的实现包括: 一个或多个运行时。示例:CLR、CoreRT。 实现 .NET Standard 版本并可能包含其他 API 的类库。例子:BCLS用于.NET框架和.NET 5(和.NET核心)和更高版本。 可选地,一个或多个应用程序框架。示例:ASP.NET、Windows 窗体和 WPF 包含在 .NET Framework 和 .NET 5 中。 可选的,开发工具。一些开发工具在多个实现之间共享。 .NET 实现示例: .NET 框架 .NET 5(和 .NET Core)及更高版本 通用 Windows 平台 (UWP) 单核细胞增多症 图书馆 可由应用程序或其他库调用的 API 集合。.NET 库由一个或多个程序集组成。 图书馆和框架这两个词经常作为同义词使用。 单核细胞增多症 Mono 是一种开源、跨平台的 .NET 实现,主要用于需要小型运行时。它是为 Android、Mac、iOS、tvOS 和 watchOS 上的 Xamarin 应用程序提供支持的运行时,主要专注于需要占用空间小的应用程序。 它支持所有当前发布的 .NET Standard 版本。 从历史上看,Mono 实现了 .NET Framework 的更大 API,并在 Unix 上模拟了一些最流行的功能。它有时用于在 Unix 上运行依赖于这些功能的 .NET 应用程序。 Mono 通常与实时编译器一起使用,但它也具有在 iOS 等平台上使用的完整静态编译器(提前编译)。 请参阅Mono 文档。 。网 一般来说,.NET是.NET Standard和所有.NET 实现和工作负载的总称。 更具体地说,.NET 是指推荐用于所有新开发的 .NET 实现:.NET 5(和 .NET Core)及更高版本。 例如,第一个含义用于诸如“.NET 的实现”或“.NET 开发平台”之类的短语。第二个含义用于.NET SDK和.NET CLI等名称。 .NET 总是完全大写,而不是“.Net”。 请参阅.NET 文档 .NET 5 版本号后面的加号表示“及更高版本”。请参阅.NET 5 和更高版本。 .NET 5 及更高版本 .NET 的跨平台、高性能、开源实现。也称为 .NET 5 。包括公共语言运行时 ( CLR )、AOT运行时(CoreRT,开发中)、基类库 ( BCL ) 和.NET SDK。 此 .NET 实现的早期版本称为.NET Core。.NET 5 是 .NET Core 3.1 之后的下一个版本。版本 4 已被跳过,以避免将 .NET 的这种较新实现与称为.NET Framework的较旧实现混淆。.NET Framework 的当前版本是 4.8。 请参阅.NET 文档。 .NET 命令行界面 用于为.NET 5(和 .NET Core)及更高版本开发应用程序和库的跨平台工具链。也称为 .NET Core CLI。 请参阅.NET CLI。 .NET 核心 请参阅.NET 5 和更高版本。 .NET 框架 一个.NET的实现仅运行在Windows上。包括公共语言运行时 ( CLR )、基类库 ( BCL ) 和应用程序框架库,例如ASP.NET、Windows 窗体和 WPF。 请参阅.NET 框架指南。 .NET 原生 一种编译器工具链,可提前 ( AOT )生成本机代码,而不是即时 ( JIT )。 编译发生在开发人员的机器上,类似于 C 编译器和链接器的工作方式。它删除了未使用的代码并花更多时间对其进行优化。它从库中提取代码并将它们合并到可执行文件中。结果是代表整个应用程序的单个模块。 UWP 是 .NET Native 支持的应用程序框架。 请参阅.NET Native 文档。 .NET SDK 一组库和工具,允许开发人员为.NET 5(和 .NET Core)及更高版本创建 .NET 应用程序和库。也称为 .NET Core SDK。 包括用于构建应用程序的.NET CLI、用于构建和运行应用程序的 .NET 库和运行时,以及运行 CLI 命令和运行应用程序的 dotnet 可执行文件 ( dotnet.exe )。 请参阅.NET SDK 概述。 .NET 标准 每个.NET 实现中可用的 .NET API 的正式规范。 .NET Standard 规范有时称为库。由于库包括 API 实现,而不仅仅是规范(接口),因此将 .NET Standard 称为“库”是一种误导。 请参阅.NET 标准。 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堆栈。这两种用法往往会与主要(操作系统/硬件)含义混淆,因此我们尽量避免使用这些用法。 “平台”在短语“开发者平台”中具有不同的含义,它指的是提供用于构建和运行应用程序的工具和库的软件。.NET 是一个跨平台的开源开发者平台,用于构建多种不同类型的应用程序。 运行 通常,托管程序的执行环境。操作系统是运行时环境的一部分,但不是 .NET 运行时的一部分。以下是 .NET 运行时的一些示例: 公共语言运行时 ( CLR ) .NET 本机(用于 UWP) 单声道运行时 “运行时”一词在某些情况下具有不同的含义: .NET 5 下载页面上的.NET 运行时。 您可以下载.NET 运行时或其他运行时,例如ASP.NET Core 运行时。甲运行时在这种用法是一组必须在机器上安装运行组件的框架依赖机器上的应用程序。.NET 运行时包括CLR和 .NET共享框架,后者提供BCL。 .NET 运行时库 指的是BCL所指的相同库。但是,其他运行时(例如 ASP.NET Core 运行时)具有不同的共享框架,以及基于 BCL 构建的其他库。 运行时标识符 (RID)。 此处的运行时是指运行 .NET 应用程序的操作系统平台和 CPU 架构,例如:linux-x64. 有时在.NET 实现的意义上使用“运行时” ,如下例所示: “各种 .NET 运行时实现了 .NET Standard 的特定版本。……每个 .NET 运行时版本都宣传它支持的最高 .NET Standard 版本……” “打算在多个运行时上运行的库应该以这个框架为目标。” (参考 .NET 标准) 共享框架 意义取决于上下文。在.NET框架共享指的是包括在库.NET运行。在这种情况下,共享的框架用于.NET 5(和.NET核心)和更高版本指的是相同的库,BCL指。 还有其他共享框架。的ASP.NET核心共享框架指的是包括在库ASP.NET核心运行时,它包括BCL加上用于通过网络应用程序使用的附加的API。 对于依赖于框架的应用程序,共享框架由包含在安装在运行应用程序的机器上的文件夹中的程序集中的库组成。对于自包含应用程序,共享框架程序集包含在应用程序中。 有关详细信息,请参阅深入了解 .NET Core 原语,第 2 部分:共享框架。 堆 一组一起用于构建和运行应用程序的编程技术。 “.NET 堆栈”是指 .NET Standard 和所有 .NET 实现。短语“.NET 堆栈”可能指的是 .NET 的一种实现。 目标框架 .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 由安装在应用程序或库中的包定义。 请参阅目标框架。 TFM 目标框架名称。 用于指定.NET 应用程序或库的目标框架的标准化令牌格式。目标框架通常由短名称引用,例如net462. 长格式 TFM(例如 .NETFramework,Version=4.6.2)存在,但通常不用于指定目标框架。 请参阅目标框架。 UWP 通用 Windows 平台。 .NET 的一种实现,用于为物联网 (IoT) 构建支持触控的 Windows 应用程序和软件。它旨在统一您可能想要定位的不同类型的设备,包括 PC、平板电脑、手机,甚至 Xbox。UWP 提供了许多服务,例如集中式应用程序商店、执行环境 (AppContainer) 和一组 Windows API,以代替 Win32 (WinRT) 使用。应用程序可以用 C 、C#、Visual Basic 和 JavaScript 编写。使用 C# 和 Visual Basic 时,.NET API 由.NET 5(和 .NET Core)及更高版本提供。 工作量 有人正在构建的一种应用程序。比app 模型更通用。例如,在每个 .NET 文档页面(包括这个页面)的顶部,都有一个Workloads下拉列表,可让您切换到Web、Mobile、Cloud、Desktop和Machine Learning & Data 的文档。 在某些上下文中,工作负载是指一组 Visual Studio 功能,您可以选择安装这些功能以支持特定类型的应用程序。有关示例,请参阅选择工作负载。
.NET Glossary
2022-01-04 20:17:24
浏览数 (1)