.NET 术语
.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 提供。
.NET 术语的更多相关文章
- Spring代理模式及AOP基本术语
一.代理模式: 静态代理.动态代理 动态代理和静态代理区别?? 解析:静态代理需要手工编写代理类,代理类引用被代理对象. 动态代理是在内存中构建的,不需要手动编写代理类 代理的目的:是为了在原有的方法 ...
- Spring 代理模式及AOP基本术语
一.代理模式: 静态代理.动态代理 动态代理和静态代理区别?? 解析:静态代理需要手工编写代理类,代理类引用被代理对象. 动态代理是在内存中构建的,不需要手动编写代理类 代理的目的:是为了在原有的方法 ...
- 基本术语表【WF】
术语 定义 activity(活动) Windows Workflow Foundation 中的程序行为单元. 可将单个活动组合在一起,形成更复杂的活动. activity action(活动操作) ...
- 如何设置SharePoint 2013 的根网站集下的“更改此术语的目标页面”
起因: 首先看问题截图Figure 1,在术语驱动的页面中设置更改此术语的目标页面,会被警告“该URL 不指向某个页面”,原因是我所找到的这个目标页面是一个非aspx结尾的URL链接. Figure ...
- Spring 3.0 AOP (一)AOP 术语
关于AOP.之前我已写过一个系列的随笔: <自己实现简单的AOP>,它的关注点在于实现.实现语言是C#,实现方式为 自定义实现 RealProxy 抽象类.重写Invoke方法,以便进行方 ...
- UDS(ISO14229-2006) 汉译(No.3术语与定义)
下列术语适用于本文档. 3.1 integer 类型 定义正负整数的数据类型. 注:integer类型取值范围未在本文档定义. 3.2 diagnostic trouble code 由车载诊断系统获 ...
- C++术语俗解
C++作为一种复杂的编程语言,其最晦涩的莫过于各个术语. 以下就经常使用的术语,逐个俗解(特别声明:为了对术语的更好理解与记忆,仅代表个人的俗识,若有不妥之处望给予指正),分享共勉. 内存:一片计算机 ...
- 引用、引用和术语定义<abbr><acronym><address><bdo><blockquote><q><cite><dfn>
<abbr>-缩写 <acronym>-首字母缩写 <address>-地址 <bdo>-文字方向 <blockquote>-长的引用 & ...
- 无废话SharePoint入门教程二[SharePoint发展、工具及术语]
一.前言 1.由于上一篇文章的标题命名失误,此篇标题写给百度搜索”什么是SharePoint”. 2.关于什么是SharePoint,请参见本人的第一篇文章:http://www.cnblogs.co ...
- OLE/COM 对象查看器 & OLE常用术语
"OLE/COM Object Viewer"(OLE/COM 对象查看器)查看你系统上安装的所有 COM 对象时,是一个非常便利的工具. 它是 Windows 2000 资源套件 ...
随机推荐
- 安装需要的第三方库时,命令行输入pip提示不是内部或外部命令
简介 在做Python开发时,安装需要的第三方库时,大多数人喜欢选择在命令行用pip进行安装. 然而有时敲入pip命令会提示‘pip’不是内部或外部命令..如图: 解决办法 1.在python安装目录 ...
- JVM基础系列第14讲:JVM参数之GC日志配置
说到 Java 虚拟机,不得不提的就是 Java 虚拟机的 GC(Garbage Collection)日志.而对于 GC 日志,我们不仅要学会看懂,而且要学会如何设置对应的 GC 日志参数.今天就让 ...
- C++版 - 剑指offer 面试题39:判断平衡二叉树(LeetCode 110. Balanced Binary Tree) 题解
剑指offer 面试题39:判断平衡二叉树 提交网址: http://www.nowcoder.com/practice/8b3b95850edb4115918ecebdf1b4d222?tpId= ...
- ADO.NET五大对象详解
Connection 连接对象 用于对数据库的连接操作.传入的参数为连接字符串. Commamd 命令对象 用于执行对数据库的操作 ,传入的参数可以为连接字符串或存储过程,也必须传入连接对象的实例. ...
- kubernetes系列06—kubernetes资源清单定义入门
本文收录在容器技术学习系列文章总目录 1.认识kubernetes资源 1.1 常用资源/对象 workload工作负载型资源:pod,ReplicaSet,Deployment,StatefulSe ...
- Sql 语句拼接 多条件分页查询
Create PROCEDURE [dbo].[Proc_B2B_GetBatchMainPaging] @StationNo AS varchar() , --m @StationName AS v ...
- Android开发——使用LitePal开源数据库框架
前言:之前使用Android内置的数据库,感觉一大堆SQL语句,一不小心就错了,很难受,学习了这个LItePal的开源数据库框架,瞬间觉得Android内置的数据库简直是垃圾般的存在 LitePal ...
- Java 学习笔记 IO流与File操作
可能你只想简单的使用,暂时不想了解太多的知识,那么请看这里,了解一下如何读文件,写文件 读文件示例代码 File file = new File("D:\\test\\t.txt" ...
- 使用这些 HTTP 头保护 Web 应用
摘要: 安全是个大学问. 这是关于web安全性系列文章的第 三 篇,其它的可点击以下查看: Web 应用安全性: 浏览器是如何工作的 Web 应用安全性: HTTP简介 目前,浏览器已经实现了大量与安 ...
- HTML和CSS在IE7中常见的兼容性问题
IE7及以下版本都会有这些问题 1.IE7块转内联块问题 问题描述:好像块转内联块失败,依然不在一行排列 解决办法:给元素添加如下css *display:inline;*zoom:1; *di ...