培训
学习路径
.NET 是一个免费的跨平台开源开发人员平台,用于生成许多不同类型的应用程序。 凭借 .NET,可以使用多种语言、编辑器和库来生成 Web、移动应用、桌面应用、游戏和 IoT 应用。
.NET 5 是继 3.1 之后 .NET Core 的下一个主要版本。 出于以下两个原因,我们将此新版本命名为 .NET 5,而不是 .NET Core 4:
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 Core 3.1 相比,.NET 5 包含以下改进和新功能:
.NET 5 及更高版本是 .NET 未来的主要实现,但 .NET Framework 4.x 仍受支持。 目前没有计划将以下技术从 .NET Framework 移植到 .NET 5,但 .NET 中有一些替代项:
技术 | 建议使用的替代项 |
---|---|
Web 窗体 | ASP.NET Core Razor 或 Razor Pages |
Windows 工作流 (WF) | Elsa-Workflows |
Windows Communication Foundation (WCF) 的原始实现仅在 Windows 上受支持。 但是,.NET Foundation 中提供了一个客户端端口。 它是完全开源且跨平台的,由 Microsoft 提供支持。 下面列出了核心 NuGet 包:
补充前述的客户端库的服务器组件可通过 CoreWCF 获取。 自 2022 年 4 月起,CoreWCF 正式获得 Microsoft 的支持。 但是,对于 WCF 的替代项,请考虑 gRPC。
新的应用程序开发可为所有项目类型(包括类库)指定 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 Standard。
编写 .NET 5 应用的开发人员将有权访问最新的 C# 版本和功能。 .NET 5 与 C# 9 搭配,为语言带来了许多新功能。 下面是几个亮点:
记录:具有基于值的相等语义的引用类型和由一个新的 with
表达式支持的非破坏性变化。
关系模式匹配:将模式匹配功能扩展为关系运算符以用于比较计算和表达式,包括逻辑模式 - 新关键字 and
、or
和 not
。
顶级语句:作为加速采用和学习 C# 的一种方法,可以省略 Main
方法,像以下示例这样简单的应用程序是有效的:
System.Console.Write("Hello world!");
函数指针:公开以下中间语言 (IL) 操作码的语言构造:ldftn
和 calli
。
有关 C# 9 功能的详细信息,请参阅 C# 9 中的新增功能。
除了一些突出的新 C# 功能外,源生成器也正在加入开发人员项目。 源生成器允许在编译过程中运行的代码检查你的程序并生成额外的文件,与你的其他代码一起编译。
有关源生成器的详细信息,请参阅 C# 源生成器简介和 C# 源生成器示例。
F# 是 .NET 函数编程语言,有了.NET 5,开发人员就可以使用 F# 5。 其中一项新功能是内插字符串,它类似于 C# 甚至是 JavaScript 中的内插字符串。
let name = "David"
let age = 36
let message = $"{name} is {age} years old."
除了基本的字符串内插之外,还存在类型化内插。 对于类型化内插,给定类型必须与格式说明符匹配。
let name = "David"
let age = 36
let message = $"%s{name} is %d{age} years old."
此格式类似于 sprintf
函数,它根据类型安全输入来设置字符串的格式。
有关详细信息,请参阅 F# 5 中的新增功能。
在 .NET 5 中,Visual Basic 没有新的语言功能。 但在 .NET 5 中,Visual Basic 支持扩展到了以下内容:
说明 | dotnet new 参数 |
---|---|
控制台应用程序 | console |
类库 | classlib |
WPF 应用程序 | wpf |
WPF 类库 | wpflib |
WPF 自定义控件库 | wpfcustomcontrollib |
WPF 用户控件库 | wpfusercontrollib |
Windows 窗体 (WinForms) 应用程序 | winforms |
Windows 窗体 (WinForms) 类库 | winformslib |
单元测试项目 | mstest |
NUnit 3 测试项目 | nunit |
NUnit 3 测试项 | nunit-test |
xUnit 测试项目 | xunit |
有关 .NET CLI 中的项目模板的详细信息,请参阅 dotnet new
。
System.Text.Json 中新增了一些功能:
培训
学习路径
.NET 是一个免费的跨平台开源开发人员平台,用于生成许多不同类型的应用程序。 凭借 .NET,可以使用多种语言、编辑器和库来生成 Web、移动应用、桌面应用、游戏和 IoT 应用。