Skip to content

.NET 5 新特性

2020 年 11 月 10 日,.NET 5 正式发布

下载 .NET 5.0

.NET 5 是继 3.1 之后 .NET Core 的下一个主要版本。 出于以下两个原因,我们将此新版本命名为 .NET 5,而不是 .NET Core 4:

我们跳过了版本编号 4.x,以避免与 .NET Framework 4.x 混淆。 我们从名称中删除了“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 Core 3.1 相比,.NET 5 包含以下改进和新功能:

  • C# 更新
  • F# 更新
  • Visual Basic 更新
  • System.Text.Json 新功能
  • 单一文件应用
  • 应用剪裁
  • Windows Arm64 和 Arm64 内部函数
  • 转储调试的工具支持
  • 对于可以为 null 的引用类型,运行时库的批注百分比为 80%
  • 性能改进:
    • 垃圾回收 (GC)
    • System.Text.Json
    • System.Text.RegularExpressions
    • 异步 ValueTask 池
    • 容器大小优化
    • 更多区域

.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 来实现此目的。

C# 更新

编写 .NET 5 应用的开发人员将有权访问最新的 C# 版本和功能。 .NET 5 与 C# 9 搭配,为语言带来了许多新功能。 下面是几个亮点:

  • 记录:具有基于值的相等语义的引用类型和由一个新的 with 表达式支持的非破坏性变化。

  • 关系模式匹配:将模式匹配功能扩展为关系运算符以用于比较计算和表达式,包括逻辑模式 - 新关键字 and、or 和 not。

  • 顶级语句:作为加速采用和学习 C# 的一种方法,可以省略 Main 方法,像以下示例这样简单的应用程序是有效的:

C#
System.Console.Write("Hello world!");
  • 函数指针:公开以下中间语言 (IL) 操作码的语言构造:ldftn 和 calli。

JSON 序列化更新

System.Text.Json 中新增了一些功能:

  • 保留引用并处理循环引用
  • HttpClient 和 HttpContent 扩展方法
  • 允许或写入带引号的数字
  • 支持不可变类型和 C# 9 记录
  • 支持非公共属性访问器
  • 支持字段
  • 有条件地忽略属性
  • 支持非字符串键字典
  • 允许自定义转换器处理 null
  • 复制 JsonSerializerOptions
  • 用 Web 默认值创建 JsonSerializerOptions
你觉得这篇文章怎么样?
  • 0
  • 0
  • 0
  • 0
  • 0
  • 0
评论
  • 按正序
  • 按倒序
  • 按热度