ASP.NET Core OData 9 提升性能,放弃 .NET Framework

ASP.NET Core OData 9 发布

2024年8月30日,微软宣布了ASP.NET Core OData 9包的正式发布。该版本使ASP.NET Core与.NET 8的OData库保持一致,并改变了OData格式中数据编码的内部细节,使其更符合OData规范。

OData .NET 8.0.0 更新

在2024年8月初,微软将OData .NET库更新到了8.0.0版本。最重要的变化是放弃了对旧版.NET Framework的支持。从该版本开始,仅支持.NET 8及更高版本。仍在使用旧版.NET Framework的开发者可以继续使用7.x版本的OData库,这些库将在2025年3月之前继续得到积极支持,之后将进入维护模式。

新的JSON写入器

OData 8库使用新的JSON写入器System.Text.Utf8JsonWriter来序列化和反序列化JSON有效负载。新写入器比旧的JsonWriter(由Microsoft.OData.Json.DefaultJsonWriterFactory创建)速度更快,内存占用更少,因为它基于Stream而非TextWriter。虽然新写入器自OData 7.12.2版本以来就可用,但在OData 8中它已成为默认实现。

开发者仍可以使用旧写入器,方法是在服务构建器中调用AddOData方法并提供ODataJsonWriterFactory实例,该实例对应于旧的DefaultJsonWriterFactory,并为了清晰度进行了重命名。

JSON序列化差异

新写入器与旧写入器在JSON序列化方面有所不同。新写入器不会像旧写入器那样将所有高ASCII Unicode字符编码为数字序列,而是直接输出Unicode字符本身。旧写入器会将几乎所有非ASCII字符编码为数字,导致有效负载更大,编码过程更慢。新JSON写入器输出大写的Unicode字符,而之前版本使用的是小写。

依赖注入的变化

ASP.NET Core OData 9的另一项重大变化是依赖注入的工作方式。之前的OData库使用非标准的IContainerBuilder来配置OData服务,而更新后的库使用与.NET相同的抽象,即IServiceProvider

其他变化

新OData库还有一些较小的变化,例如移除了旧版实现和旧标准(如JSONP格式)。开发者可以查看OData 8 .NET库的发布说明以获取完整列表。

发布与统计

新的ASP.NET Core OData 9库作为NuGet包发布,过去六周内已被下载15万次。ASP.NET Core OData的源代码可在GitHub上获取,目前该仓库有458个未解决的问题。

阅读 49
0 条评论