最全.NET Core .NET 5.NET 6和.NET 7简介和区别
Posted .NET100
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了最全.NET Core .NET 5.NET 6和.NET 7简介和区别相关的知识,希望对你有一定的参考价值。
.NET是一种用于构建多种应用的免费开源开发平台,可以使用多种语言,编辑器和库开发Web应用、Web API和微服务、云中的无服务器函数、云原生应用、移动应用、桌面应用、Windows WPF、Windows窗体、通用 Windows平台 (UWP)、游戏、物联网 (IoT)、机器学习、控制台应用、Windows服务。框架主要包括:.NET Framework、.NET Standard、.NET Core、.NET 5/6/7 。本主要介绍一下.NET Core 、 .NET 5、.NET 6和.NET 7简介及区别。
1、.NET Core
.NET Core是适用于 Windows、Linux 和 macOS 的免费、开源托管的计算机软件框架,是微软开发的第一个官方版本,具有跨平台能力的应用程序开发框架 (Application Framework)。
.NET Core 是由许多项目所组成,除了基本的类库(Core FX) 之外,也包含采用 RyuJIT 编译的运行平台 Core CLR、编译器平台.NET Compiler Platform、采用 AOT 编译技术运行最优化的包 Core RT (.NET Core Runtime),以及跨平台的 MSIL 编译器 LLILC (LLVM-based MSIL Compiler) 等项目。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/
2、.NET 5
.NET 5 是继 3.1 之后 .NET Core 的下一代的重要版本。命名为.NET 5出于以下两个原因:
1)跳过了版本编号 4.x,以避免与 .NET Framework 4.x 混淆。
2)从名称中删除了“Core”,是为了强调这是 .NET 未来的主要实现。与 .NET Core 或 .NET Framework 相比,.NET 5 会支持类型更多的应用和平台。
ASP.NET Core 5.0 虽以 .NET 5 为基础,但保留了名称“Core”以避免与 ASP.NET MVC 5 混淆。同理,Entity Framework Core 5.0 保留了名称“Core”,以避免与 Entity Framework 5 和 Entity Framework 6 混淆。
.NET 5 不会替换 .NET Framework,.NET 5 及更高版本是 .NET 未来的主要实现,但 .NET Framework 4.x 仍受支持。目前没有计划将以下技术从 .NET Framework 移植到 .NET 5,但 .NET 中有一些替代项:
技术 | 建议使用的替代项 |
Web 窗体 | ASP.NET Core Razor 或 Razor Pages |
Windows 工作流 (WF) | Elsa-Workflows |
.NET 5 不会替代 .NET Standard,新的应用程序开发可为所有项目类型(包括类库)指定 net5.0 目标框架名字对象 (TFM)。在 .NET 5 工作负载之间共享代码得到了简化,因为你只需要 net5.0 TFM。对于 .NET 5 应用和库,net5.0 TFM 合并和替换了 netcoreapp 和 netstandard TFM。但是,如果计划在 .NET Framework、.NET Core 和 .NET 5 工作负载之间共享代码,可以通过将 netstandard2.0 指定为 TFM 来实现此目的。
编写 .NET 5 应用的开发人员将有权访问最新的 C# 版本和功能。.NET 5 与 C# 9 搭配,为语言带来了许多新功能。
参考文档:https://learn.microsoft.com/zh-cn/dotnet/core/whats-new/dotnet-5
3、.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
4、.NET 7
.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
-
Entity Framework Core 7
-
.NET MAUI
-
Windows Forms
-
WPF
-
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、循环优化和许多其他领域进行了超过一千项影响性能的改进。
5、.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。
.NET 6是.NET 5的后续版本,它将在2021年发布。.NET 6将包括更多的功能和改进,如更好的性能、更好的可靠性、更好的安全性和更好的开发人员体验。
.NET 7是.NET 6的后续版本,它将包括更多的功能和改进,以进一步提高性能、可靠性、安全性和开发人员体验。
出处:https://www.cjavapy.com/article/2823/
来源公众号:DotNet开发跳槽
最全Pycharm教程(10)——Pycharm调试器总篇
最全Pycharm教程(4)——有关Python解释器的相关配置
最全Pycharm教程(6)——将Pycharm作为Vim编辑器使用
最全Pycharm教程(8)——Djangoproject的创建和管理
最全Pycharm教程(9)——创建并执行一个主要的Python測试程序
1、准备工作
(1)Pycharm版本号为3.0或者更高版本号
(2)至少安装了一个Python解释器而且已经正确配置
(3)已经创建了一个Pythonproject
2、主要内容
介绍怎样通过Pycharm来调试脚本文件,以及各个工具button的作用等等,至于Python编程方法,请參见Python documentation。
3、待复习知识
为了完毕本篇教程的内容,须要用到前面的两个重要知识点:
(1)Run/debug配置文件的相关知识
(2)断点的相关知识
4、Run/debug 配置知识
每当你通过Pycharm来执行或者调试一个脚本文件时,都须要一个特殊的文件来记录脚本的名称、工作文件夹以及其它的重要调试信息。
Pycharm已经针对特定模式预先创建好了配置文件。避免我们手动去创建。
每次你单击执行或者调试button时(或者通过快捷菜单执行同样的操作)。我们实际上都是在当前工作模式中载入了相应的配置文件。
5、断点
一个断点标记了一个代码行。当Pycharm执行到该行代码时会将程序临时挂起。Pycharm提供了几种形式的断点 types of breakpoints,其图标 icon各不同样。详见 product documentation中的Breakpoints tutorial。
6、实例
在你的Pythonproject中,创建一个新的Python文件,命名为ThreadSample.py,然后输入下面代码:
7、设置断点
首先,在源代码中设置断点。通过单击代码左側的空白槽来在相应位置生成断点:
8、開始调试
选择 run/debug configuration "ThreadSample",然后按下Shift+F9(或者单击工具栏中的绿色蜘蛛形式的button),调试開始。并在第一个断点处停止:
断点所在的行变为蓝色,说明Pycharm已经击中了这个断点,但尚未运行这行代码。
9、更改调试窗体的布局
此时Pycharm进入调试界面模式Debug tool window,各个控件的详细功能详见know how to use this tool window。
增加你并不喜欢当前的默认布局。比如你希望将调试器输出窗体作为一个独立的窗体显示以便更方便的观察当前的调试状态,你能够对布局进行个性化定制。
首先,我们先把调试工具窗体独立出来。仅仅须要右击窗体的标题栏。然后选择Floating mode:
接下来将控制台窗体移动成为一个独立的窗体,仅仅须要拖动控制台窗体将其拖出測试窗体就可以:
能够通过单击工具栏上的button来恢复到默认布局。
很多其它信息请參见PyCharm Tool Windows和Moving tabs and area
10、加入一个变量查看器
接下来我们介绍怎样在调试过程中观察变量的状态。我们须要对其设置一个查看器。
在Watches窗体中,单击绿色的加号。输入期望查看的变量名称,比如这里输入delay。然后回车。当然你也能够採用第二种方式:在编辑窗体中右击变量名,在快捷菜单中选择Add to watches:
此时观察Watches窗体。发现delay变量眼下尚没有定义:
稍后你将会看到怎样对这个变量进行负值,以及其在watches窗体中的变化。接下来我们为get_thread_name()函数设置一个查看器作为练习。
11、浏览帧
此时你能看到一个名为MainThread的进程,当中包括三帧。单击每一帧来显示其变量状态以及相相应的py文件。同一时候会对有问题的代码行以高亮显示:
12、简单的调试
在每一个断点出都单击button来时程序继续执行,观察控制台的脚本输出:
13、步进式脚本调试
让我们对当前脚本进行进一步的调试。单击重新启动调试进程,程序再次执行到第一个断点处并暂停。
在调试窗体的顶端。你会看到一列包括步进调试按钮的工具栏 stepping buttons。
单击,或者按下F8,你会发现蓝色标记移动到了下一行:
与此同一时候,当你暂停了脚本运行时(单击button),你能看到高亮表示的函数print_time(),你能够选择当中的不论什么一个进程,并观察变量的变化:
14、执行到当前光标处
假如你不想增加断点。但仍希望代码可以调试执行到某一指定的代码行。怎样操作?
返回调试界面的第二个断点处,在相应行插入输入光标。
单击button,或者按下Alt+F9快捷键,该行代码变为高亮显示:
15、怎样调用Debug命令
值得一提的是全部的调试操作不只能够通过调试工具栏的相应button来完毕,还能够通过主菜单中Run菜单下的命令来实现,以及相关的快捷菜单项。
以下给出一些经常使用的调试菜单命令及其相应的快捷键列表:
很多其它控件描写叙述參见Debug tool window。
以上是关于最全.NET Core .NET 5.NET 6和.NET 7简介和区别的主要内容,如果未能解决你的问题,请参考以下文章
[.net 面向对象程序设计深入].NET MVC 6.0 —— 构建跨平台.NET开发环境(Windows/Mac OS X/Linux)
text 使用ASP.NET Core 2 Web API,Angular 5,.NET核心身份和Facebook登录进行JWT身份验证
.Net 5 .Net Core 3.1 mvc 调试js或cshtml 视图运行时编译 解决方案
.NET Core部署到linux(CentOS)最全解决方案,入魔篇(使用Docker+Jenkins实现持续集成自动化部署)