热门排行
简介
.NET 8 是一个长期支持 (LTS) 版本,每个月都会发布预览版本和候选版本,最终的稳定版将在 11 月发布。.NET 的版本包括产品、库、运行时和工具,是 Microsoft 内部和外部多个团队之间的协作。
.NET 8 中的新增功能方面主要有两个:NativeAOT编译的完善,在Web开发方面,新的Blazor United项目融合了混合匹配服务器端和客户端渲染功能。
更新功能介绍
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 <TieredPGO>false</TieredPGO>
NativeAOT:优化了 GC 类型的 ThreadStatic 字段访问
标记为 ThreadStaticLocal 的字段访问现在针对原始类型进行了优化。引用类型字段也进行了优化,这些更改在许多基准测试中带来了一些非常好的改进。
更新日志
发生了什么变化
通过@rbhanda在#9172中更新releases.json
通过@rbhanda在#9174中更新releases.json
通过@rbhanda在#9175中更新README.md
@masonweller在#9171中发布的9.0预览版1发行说明中的可读性改进
由@jamesmontemagno在#9178中更新README.md
在#8305中添加@richlander对旧目标框架的支持声明
@rbhanda在#9184中更新releases.json
在#9180中通过@richlander更新libraries.md
@richlander在#9182中更新runtime.md
移动图片由@jamesmontemagno在#9179
修复@eiriktsarpalis在#9186中的代码示例问题
@richlander在#9187中更新README.md
通过@jamesmontemagno在#9190中更新roadmap.md
通过@rbhanda在#9191中更新known-issues.md 8.0
通过@mairaw在#9194中更新known-issues.md
的工件。NET 8.0.201仅限SDK由@rbhanda在#9196中发布
通过@jamesmontemagno在#9193中更新core-repos.md
通过@richlander在#9197中更新roadmap.md
通过@richlander在#9198中更新roadmap.md
由@codesmith-emmy在#9199中更新README.md
之间的API差异。NET 8.0和。NET 9预览1由@carlossanlop在#9176
RunApiDiff.ps1:修复#9177中@carlossanlop在比较preview1和上一版本时设置错误文件名和文件夹名的错误
通过@Falco20019在#9211中添加2月份对CVE文档的更新
更新#9188中@lbussell对容器的引用
的工件。NET三月发布由@rbhanda在#9213
通过@rbhanda在#9215中更新rel注释
通过@rbhanda在#9216中更新releases.md