.NET 8 Preview 5 发布了。
以下是新版本的一些新功能::
SDK 改动
依赖注入 (DI) 友好的指标 API ,该版本推出 IMeterFactory 接口,该接口可以注册到 DI 容器中,用于隔离创建 Meter 对象。
Source Link 是 .NET SDK 的一部分,.NET SDK 现在包括源链接,在检查 Sourcelinked NuGet 包时提升 IDE 体验。
新的 .NET 库分析器,分析器就像内置于 SDK 和交互式开发环境 (IDE) 中的编码合作伙伴,可在编写代码时识别问题并提出更正建议。
Linux self-contained ,Linux 发行版构建(从源码构建)SDK 可以构建使用源构建运行时包的独立应用程序,分发特定的运行时包将与源构建 SDK 捆绑在一起。
self-contained 不再是默认选项, -r/--runtime 不再强制绑定 net8.0 和更高目标框架的应用程序的 --self-contained 。
Alpine ASP.NET Docker 复合映像
提供一个新的 ASP.NET Docker 映像,它使用一种称为 “复合” 的更新的即用型 (R2R) 编译变体。复合 R2R 映像通过将多个 MSIL 程序集编译成单个 R2R 输出二进制文件来构建,具有多种优势:减少 JIT 时间、降低启动性能以及减小 R2R 映像大小。
RID 特定资产不再需要 RID 图
当使用特定于运行时 (RID) 的资产运行应用程序时,宿主会确定哪些资产与其运行的平台相关,适用于应用程序本身和 AssemblyDependencyResolver 使用的解析逻辑。
但 RID 图已被证明维护成本高、难以理解且通常很脆弱。因此,默认情况下,在 .NET 8 中将不再使用 RID 图,而是依赖于基于运行时本身构建方式的已知 RID 列表。
Codegen 代码生成器
动态配置文件引导优化 (PGO) 现在默认启用,这意味着不再需要特殊的配置设置。
预计大量应用程序的性能将提高 5% 到 500%(合理预期为 15%),具体取决于应用程序瓶颈的性质。
可以通过以下方式选择退出动态 PGO
NativeAOT:优化了 GC 类型的 ThreadStatic 字段访问
标记为 ThreadStaticLocal 的字段访问现在针对原始类型进行了优化。引用类型字段也进行了优化,这些更改在许多基准测试中带来了一些非常好的改进。
领取专属 10元无门槛券
私享最新 技术干货