.NET 8 的新增特性

.NET 8 是 .NET 7 的后继版本。 它将作为长期支持 (LTS) 版本得到三年的支持

性能提升

.NET 8在整个堆栈带来了数千项性能改进

默认情况下会启用一种名为动态配置文件引导优化 (PGO) 的新代码生成器,它可以根据实际使用情况优化代码,并且可以将应用程序的性能提高高达 20%。现在支持的 AVX-512 指令集能够对 512 位数据向量执行并行操作,这意味着可以在更短的时间内处理更多的数据。原始类型(数字及其他类型)现在实现了新的可格式化和可解析接口,这使它们能够直接格式化和解析为 UTF-8,而无需任何转码开销。
.NET 8 运行时包括对性能、垃圾回收以及核心和扩展库的改进。 它还包括移动应用的新全球化模式,以及 COM 互操作和配置绑定的新源生成器。C# 12 随 .NET 8 SDK 一起提供。ASP.NET Core 包括对 Blazor、SignalR、最小 API、本机 AOT、Kestrel 和 HTTP.sys 服务器以及身份验证和授权的改进。Entity Framework Core 包括对复杂类型对象、基元类型集合、JSON 列映射、原始 SQL 查询、延迟加载、跟踪实体访问、模型构建、数学翻译和其他功能的改进。 它还包括新HierarchyId类型。

ASP.NET Core 8.0

全堆栈 Web UI

随着 .NET 8 的发布,Blazor 已成为全堆栈 Web UI 框架,可用于开发在组件或页面级别呈现内容的应用,其中包含:

  • 静态服务器呈现(也称为静态服务器端呈现 [静态 SSR]),用于在服务器上生成静态 HTML。
  • 交互式服务器呈现(也称为交互式服务器端呈现 [交互式 SSR]),用于在服务器上生成具有预呈现的交互式组件。
  • 交互式 WebAssembly 呈现(也称为客户端呈现 [CSR],始终假定为交互式),用于在客户端上生成具有服务器端预呈现的交互式组件。
  • 交互式自动(自动)呈现,最初使用服务器端 ASP.NET Core 运行时进行内容呈现和交互。 下载 Blazor 捆绑包并激活 WebAssembly 运行时后,使用客户端上的 .NET WebAssembly 运行时进行后续呈现和交互。 交互式自动呈现通常提供最快的应用启动体验。

EF Core

EF8 需要 .NET 8 SDK 才能生成,并且需要运行 .NET 8 运行时。 EF8 无法在早期 .NET 版本上运行,也无法在 .NET Framework 上运行。

使用复杂类型的值对象

保存到数据库的对象可以分为三大类:

  • 非结构化并保存单个值的对象。 例如,intGuidstringIPAddress。 这些类型(有点宽泛)称为“基元类型”。
  • 为保存多个值而构造的对象,对象的标识由键值定义。 例如:BlogPostCustomer。 它们称为“实体类型”。
  • 为保存多个值而构造的对象,但对象没有用键定义的标识。 例如:AddressCoordinate

在 EF8 之前,没有很好的方法来映射第三种类型的对象。 从属类型是可以使用的,但由于从属类型实际上是实体类型,因此它们具有基于键值的语义,即便该键值处于隐藏状态时也是如此。

EF8 现在支持“复杂类型”来涵盖此第三种类型的对象。 复杂类型对象:

  • 未按键值标识或跟踪。
  • 必须定义为实体类型的一部分。 (换句话说,你不能有复杂类型的 DbSet。)
  • 可以是 .NET 值类型引用类型
  • 实例可以由多个属性共享。

.NET 8 容器增强功能

每个 .NET 映像都包含一个非 root 用户,从而通过单行配置启用更安全的容器。.NET SDK 工具无需 Dockerfile 即可发布容器映像,并且默认情况下是非 root 的。由于 .NET 基础映像更小,因此可以更快地部署容器化应用程序 - 包括我们映像的新实验变体,这些变体可为本机 AOT 提供真正最小的应用程序大小。选择使用新的 Chiseled Ubuntu 映像变体进行更多安全强化,以进一步减少攻击面。使用 Dockerfile 或 SDK 工具,为任何架构构建应用程序和容器映像

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值