2023-11-19
168 0这次.Net 8发布,更新了诸多功能,但从各个编程社区看到大家讨论和交流最多的,还是AOT这个功能。ASP.NET Core也引入AOT的支持,但也不是所有功能都支持,MVC还不支持目前,支持最好的是Web API。
.NET 8 在 AOT 方面新增了以下特性:
支持 macOS 上的 x64 和 Arm64 体系结构:之前,.NET AOT 只支持 Windows 上的 x64 体系结构。在 .NET 8 中,AOT 也支持 macOS 上的 x64 和 Arm64 体系结构。这使得开发人员可以将 AOT 应用程序部署到更广泛的平台。
Linux 上应用程序大小缩减 50%:.NET 8 对 Linux 上的 AOT 进行了改进,使应用程序的大小缩减了 50%。这使得应用程序更容易部署和运行。
对 System.Text.Json 源生成器的增强:.NET 8 对 System.Text.Json 源生成器进行了增强,使其与基于反射的序列化程序不相上下。这使得 AOT 应用程序更易于开发和维护。
具体来说,.NET 8 对 System.Text.Json 源生成器的增强包括:
支持序列化具有 required 和 init 属性的类型。
支持在任意类型种类中嵌套 JsonSerializerContext 声明。
支持在弱类型源生成场景中使用编译器生成的类型或无法形容的类型。
由于编译器生成的类型无法由源生成器显式指定,因此 System.Text.Json 现可在运行时执行最接近的上级解析。此分辨率确定用于序列化值的最合适的超类型。
这些新特性使 .NET AOT 成为开发高性能、可部署到多平台的应用程序的更有效的选择。
您可能感兴趣: