## .NET Framework
.NET Framework框架只能在windows上运行,但各种跨平台的需求原来越强烈,不能满足跨平台、模块化的需求。
## .NET Standard
.NET Framework可以跨平台的部分提取出来,封装成Windows标准库就是.NET Standard,其他系统的特有的部分在这个Windows标准库没有
## \.NET Core
在标准库\.NET Standard基上开发出来\.NET Core。.NET Core稳定后,改名成.NET 5/6/7。
.NET Core可以在Windows、Linux和macOS上运行,并且支持多种编程语言,如C#、F#和Visual Basic
NET Core 3.1是一个长期支持(LTS)版本,将支持三年。
NET Core 3.1支持的平台:
* Alpine: 3.10+
* Debian: 9+
* Ubuntu: 16.04+
* Fedora: 29+
* centOS: 7+
* RHEL: 6+
* openSUSE: 15+
* SUSE Enterprise Linux (SLES): 12 SP2+
* macOS: 10.13+
* Windows Client: 7, 8.1, 10 (1607+)
* Windows Server: 2012 R2+
**注意:**Windows窗体和WPF应用程序仅在Windows上运行和支持。
CPU架构支持:
* x64 支持 Windows, macOS, 和 Linux
* x86 支持 Windows
* ARM32 支持 Windows 和 Linux
* ARM64 支持 Linux (kernel 4.14+)
**注意:**需要确保.NET Core 3.1 ARM64部署使用Linux内核4.14版本或更高版本。例如,Ubuntu 18.04满足这个要求,但16.04是不满足的。
**参考文档:**[https://devblogs.microsoft.com/dotnet/announcing-net-core-3-1/](https://devblogs.microsoft.com/dotnet/announcing-net-core-3-1/)
## .NET 5
.NET 5是.NET Core3.1的下一个版本(跳过4是为了避免与,net Framework 4.x 混淆),它是一个统一的开发平台,用于构建应用程序和服务,可以在Windows、Linux和macOS上运行。.NET 5支持多种编程语言,包括C#、F#、Visual Basic和C++/CLI
.NET 5 不会替换 .NET Framework
.NET Framework 4.x 仍受支持。 目前没有计划将以下技术从 .NET Framework 移植到 .NET 5,但 .NET 中有一些替代项:
| 技术 | 建议使用的替代项 |
| --- | --- |
| Web 窗体 | ASP.NET CoreRazor或Razor Pages |
| Windows 工作流 (WF) | Elsa-Workflows |
.NET 5 也
不会替代 .NET Standard
.NET 5 与 C# 9 搭配,为语言带来了许多新功能
## **.NET 6**
.NET 6 提供 .NET 统一计划的最终部分,该计划在 .NET 5 中启动。 .NET 6 在移动、桌面、IoT 和云应用之间统一了 SDK、基础库和运行时。 除了这方面的统一以外,.NET 6 生态系统还提供了以下功能:
1)简化开发
轻松入门。 C# 10 中的新语言功能可减少需要编写的代码量。 利用 Web 堆栈和最小 API 的投资,可以轻松地快速编写更小、更快速的微服务。
2)更佳的性能
.NET 6 是最快的完整堆栈 Web 框架,如果在云中运行,则会降低计算成本。
3)终极工作效率
.Net 6 和 Visual Studio 2022 提供热重载、新的 git 工具、智能代码编辑、可靠的诊断和测试工具以及更好的团队协作。
.NET 6 将作为长期支持 (LTS) 版本得到三年的支持。 .NET 6 重写 System.IO.FileStream 类型,以便在 Windows 上提供更佳的性能和可靠性。 现在 FileStream 绝不会在为 Windows 上的异步 I/O 创建时阻止。按配置优化 (PGO) 是指 JIT 编译器根据最常使用的类型和代码路径生成优化后的代码。 .NET 6 引入了动态 PGO。 动态 PGO 与分层编译配合运作,以根据层级 0 中实施的其他检测来进一步优化代码。 动态 PGO 默认情况下处于禁用状态,但可以使用 DOTNET\_TieredPGO环境变量来启用它。
.NET 6 引入了 Crossgen2,它是已被删除的 Crossgen 的后继版本。 Crossgen 和 Crossgen2 是用于提供预先 (AOT) 编译的工具,可改进应用的启动时间。 Crossgen2 是用 C# (而不是 C++)编写的,可执行之前的版本无法实现的分析和优化。
.NET 6 版本支持 macOS Arm64(或“Apple Silicon”)和 Windows Arm64 操作系统,支持本机 Arm64 执行和 x64 模拟。 此外,x64 和 Arm64 .NET 安装程序现在会并行安装。
使用热重载功能,可以修改应用源代码,并立即将这些更改应用到正在运行的应用。 此功能的目的是避免在编辑之间重新启动应用程序,从而提高工作效率。 热重载在 Visual Studio 2022 和 dotnet watch 命令行工具中可用。 热重载适用于大多数类型的 .NET 应用以及 C#、Visual Basic 和 C++ 源代码。
**参考文档:**[https://learn.microsoft.com/zh-cn/dotnet/core/whats-new/dotnet-6](https://learn.microsoft.com/zh-cn/dotnet/core/whats-new/dotnet-6)
## **.NET 7**
.NET 7是.NET 6的后续版本
.NET 7 为应用程序带来了更高的性能和C# 11/ F# 7、.NET MAUI、ASP.NET Core/Blazor, Web api, WinForms, WPF等等。有了.NET 7\\还可以轻松地将.NET 7项目进行容器化,在GitHub操作中设置CI/CD工作流,并实现云原生的可观察性。
.NET仍然是最快、最受喜爱和信任的平台之一,它拥有庞大的.NET包生态系统,包括超过33万个包。
.NET 7版本与其他产品、库和平台一起发布,包括:
* [ASP.NET Core 7](https://devblogs.microsoft.com/dotnet/announcing-asp-net-core-in-dotnet-7)
* [Entity Framework Core 7](https://devblogs.microsoft.com/dotnet/announcing-ef7)
* [.NET MAUI](https://devblogs.microsoft.com/dotnet/dotnet-maui-dotnet-7)
* [Windows Forms](https://devblogs.microsoft.com/dotnet/winforms-enhancements-in-dotnet-7)
* [WPF](https://devblogs.microsoft.com/dotnet/wpf-on-dotnet-7)
* [Orleans 7](https://devblogs.microsoft.com/dotnet/whats-new-in-orleans-7/)
更新与优化包括如下:
1).NET MAUI
.NET多平台应用程序 UI (MAUI) 将 Android、iOS、macOS 和 Windows API 统一到一个API中,开发者可以编写一个在多平台上本机运行的应用。作为.NET 7的一部分,.NET MAUI提供了一个项目来处理跨设备及其平台的多目标。
2)ARM64
ET可帮助开发者构建在ARM设备上运行的应用,.NET 7将迎来多项改进。
3)性能
.NET 7是目前最快的.NET。.NET 7对反射、堆栈替换 (OSR)、启动时间、本机 AOT、循环优化和许多其他领域进行了超过一千项影响性能的改进。
## **.NET Framework、.NET Standard、.NET Core与.NET 5/6/7 区别**
.NET Framework框架只能在windows上运行,但各种跨平台的需求原来越强烈,不能满足跨平台、模块化的需求。微软把.NET Framework可以跨平台的部分提取出来,封装成标准库就是.NET Standard。无论哪个系统平台上,标准库里内容是完全通用的。但其他系统的特有的部分在Windows中也没有,所以在标准库.NET Standard基上开发出来.NET Core。.NET Core稳定后,改名成.NET 5/6/7。
* 1).NET Core
适用于windows、linux、macos操作系统的免费开源托管的计算软件框架。最初是为了支持ASP.NET Core而创建的。.NET Core可以在Windows、Linux和macOS上运行,并且支持多种编程语言,如C#、F#和Visual Basic。
* 2).NET Standard
基础的规范标准,把.NET Framework的某些程序集对应到.NET Core。如果本来就是.NET Core以上的版本就没必要使用.NET Standard。
* 3).NET 5/6/7
.NET Core的稳定版本 官方也有文档说明如何 从 ASP.NET Core 3.1 迁移到 6.0。
.NET 5是.NET Core的下一个版本,它是一个统一的开发平台,用于构建应用程序和服务,可以在Windows、Linux和macOS上运行。.NET 5支持多种编程语言,包括C#、F#、Visual Basic和C++/CLI。
- Visual Studio 2022安装到非C盘
- .net平台区别
- 常用单词
- 关键字
- 操作符(运算符)
- 标识符(命名规范)
- 开始
- 变量
- 常量
- 数据类型
- 值类型
- 变量数据类型
- 枚举类型enum(常量集合)
- 结构类型struct(结构体)
- 元组类型
- 可null类型(T?)
- 引用类型
- 数组(array)
- 集合(List)
- 内置引用类型
- object
- string
- Dynamic(动态类型)
- delegate委托(代理)类型
- 自定义引用类型
- 接口(interface)
- 类class
- record(定义一个引用类型)
- 指针类型(仅用于非安全代码)
- get和set访问器
- delegate委托
- delegate实现发布订阅与事件
- 类型转换
- 合并操作符??
- 类相关
- Partial 部分类
- 类定义以及访问修饰符(封装)
- abstract抽象类与sealed密封类
- virtual虚方法
- 接口interface
- C# 预处理器指令
- C#技术栈
- 判断(流程控制)与三元运算
- if
- switch
- 三元运算
- 循环
- while 循环
- for循环
- foreach循环
- do...while 循环
- 文件操作
- 其他
- 多开