如果对.NET体系有基础了解的小伙伴可以直接划走,这里主要是分享一些刚学C#编程的小伙伴一些基础知识。刚接触C#或者.NET的小伙伴会对一对专业词汇根本不理解或者不清楚这些东西的作用和关系,例如:.NET Native , C# , .NET , CLR , JIT , IL , AOT等等词汇完全蒙圈的状态这里简单的介绍一下。
C#(读作 "C Sharp")是一种现代的、通用的、面向对象的编程语言,由微软公司的开发语言。这种语言被设计为简单、强大、类型安全并且面向组件。
官方地址:https://learn.microsoft.com/zh-cn/dotnet/core/introduction
.NET是一种用于构建多种应用的免费开源开发平台,可以使用多种语言(C#、F#、VB等),编辑器和库开发Web应用、Web API和微服务、云中的无服务器函数、云原生应用、移动应用、桌面应用、Windows WPF、Windows窗体、通用 Windows平台 (UWP)、游戏、物联网 (IoT)、机器学习、控制台应用、Windows服务。
官方地址:https://learn.microsoft.com/zh-cn/dotnet/standard/clr
.NET CLR(Common Language Runtime)是.NET的核心组成部分,它为.NET应用程序提供了一个运行环境。下面详细说明一下CLR的主要功能和概念:
一个.NET CLR结构的图片通常会包括以下部分:
IL(Intermediate Language)是.NET Framework中的一种中间语言,也被称为CIL (Common Intermediate Language) 或 MSIL (Microsoft Intermediate Language)。
在.NET环境中,所有的.NET代码(无论它是由C#、VB.NET还是其他.NET支持的语言编写的)在编译时,都首先被转换为IL。IL是一种面向堆栈的计算机指令集,设计用于由具有高级语言特性的编程语言生成,并可进一步由JIT(Just-In-Time)编译器在运行时转换为本地代码。
这个过程中的几个关键点包括:
.NET Native是Microsoft推出的一个编译技术,它可以将.NET代码直接预编译成本地机器代码。这是一种Ahead-Of-Time (AOT) 编译技术,意味着在应用程序部署时,而不是在运行时进行编译。
使用.NET Native具有以下几个优点:
然而,也要注意到使用.NET Native可能会使应用程序的大小增大,因为它需要包含运行应用所需的所有.NET库。
当前.NET Native主要用于UWP(Universal Windows Platform)应用开发,在开发过程中也可以通过Visual Studio中的设置来启用和使用.NET Native。
.NET AOT(Ahead-of-Time Compilation)是一种编译策略,其中.NET应用程序在运行之前就已经被完全编译为本地机器代码。这与JIT(Just-In-Time)编译形成对比,后者在运行时将程序的部分或全部转换为机器代码。
AOT编译有以下几个主要优点:
然而,AOT编译也有一些潜在的缺点。例如,它可能无法充分利用到JIT编译提供的某些优化,因为JIT编译能够在运行时根据目标硬件和程序的实际行为进行优化。
.NET Native 是 .NET Framework 的一个特定实现,它采用了AOT编译策略来提高UWP(Universal Windows Platform)应用程序的性能和效率。
如果是中途转语言到C#或者C#的小白从0开始学习会有点疑惑,我当前使用的是什么版本的语法更或者说一切有强迫症的小伙伴总觉得不是从这个语言诞生之初了解到现在一共出了哪些新特性就感觉差点什么的话看下面官方的地址可以缓解这个症状。
官方地址: https://learn.microsoft.com/zh-cn/dotnet/csharp/whats-new/csharp-version-history
如果还对其他术语不明白的小伙伴可以看这里,官方会提供一些常见的术语说明。
官方地址:https://learn.microsoft.com/zh-cn/dotnet/standard/glossary
.NET Framework
.NET Framework 是最初的 .NET 实现,主要用于 Windows 平台上的应用程序开发。它提供了大量的类库,支持 Web、桌面、移动端等各种应用程序的开发。但由于它只能在 Windows 平台上运行,所以在跨平台方面存在局限性。
.NET Core
.NET Core 是 .NET 的全新实现,旨在解决 .NET Framework 的跨平台问题,它可以在 Windows、Mac 和 Linux 等操作系统上运行。.NET Core 具有模块化和轻量级的特性,适合用于云计算和容器这样的环境。
.NET Standard
.NET Standard 不是一个实际的 .NET 运行时实现,而是定义了一组 API,这些 API 是所有 .NET 实现都需要支持的。通过对 .NET Standard 的支持,开发者可以编写一次代码,并在所有 .NET 平台上运行,提高了代码的复用性。
.NET 5
.NET 5 是 .NET Core 的后续版本,它将 .NET Framework 和 .NET Core 合并为一个统一的平台。.NET 5 支持更多的应用类型和平台,包括桌面应用、Web 应用、云服务、移动设备、游戏、物联网等。同时,.NET 5 还提供了更好的性能和生产力。