首页 > 极客资料 博客日记
ASP.NET Core OData 9的发布,放弃 .NET Framework
2024-10-09 07:30:02极客资料围观17次
Microsoft 于 2024 年 8 月 30 日宣布推出 ASP.NET Core OData 9 包。 这个新包将ASP.NET Core与.NET 8 OData库保持一致,改变了OData格式中数据编码的内部细节,使其更符合OData 规范。
在2024年8月早些时候,Microsoft 将 OData .NET 库更新到版本 8.0.0。其中最重要的更改是放弃了对旧版 .NET Framework 的支持。从此版本开始,将仅支持 .NET 8 及更高版本。使用旧版 .NET Framework 的开发人员仍然可以使用 OData 库的 7.x 版,这些库在 2025 年 3 月之前仍受到积极支持,届时他们将处于维护模式。
OData 8库使用了新的JSON写入器System.Text.Utf8JsonWriter来序列化和反序列化JSON负载,这个新写入器比旧的JsonWriter
更快且需要更少的内存。并且需要的内存更少,由 Microsoft.OData.Json.DefaultJsonWriterFactory 创建,因为它不是基于JsonWriter
而是基于TextWriter .虽然新编写器自 OData 版本 7.12.2 以来一直可用,但现在它是 OData 8 中的默认实现。
如果需要,开发人员仍然可以使用旧编写器,方法是在服务生成器中调用 AddOData 方法并提供一个实例,该实例对应于旧编写器,为清楚起见,已重命名。
builder.Services.AddControllers().AddOData(options => options.EnableQueryFeatures().AddRouteComponents(routePrefix: string.Empty, model: modelBuilder.GetEdmModel(), configureServices: (services) => { services.AddScoped < Microsoft.OData.Json.IJsonWriterFactory > (sp => new Microsoft.OData.Json.ODataJsonWriterFactory()); }));
新编写器的序列化方式与旧编写器不同。它不会像较旧的编写器那样对所有高 ASCII Unicode 字符进行编码。例如,它不会将非拉丁符号(如希腊字母)编码为 Unicode 数字序列。相反,它将输出 Unicode 字符本身。旧编写器会将几乎所有非 ASCII 字符编码为数字,从而使有效负载的大小更大,编码过程更慢。新的 JSON 编写器输出大写 Unicode 字符,而不是以前版本使用的小写。
ASP.NET Core OData 9的另一个重大变化是依赖注入的工作方式,更新后的库使用与.NET相同的抽象,即IServiceProvider
。
builder.Services.AddControllers().AddOData(options => options.EnableQueryFeatures().AddRouteComponents(routePrefix: string.Empty, model: modelBuilder.GetEdmModel(), configureServices: (services) => { services.AddDefaultODataServices(odataVersion: Microsoft.OData.ODataVersion.V4, configureReaderAction: (messageReaderSettings) => { // Relevant changes to the ODataMessageReaderSettings instance here }, configureWriterAction: (messageWriterSettings) => { // Relevant changes to the ODataMessageWriterSettings instance here }, configureUriParserAction: (uriParserSettings) => { // // Relevant changes to the ODataUriParserSettings instance here }); }));
此外,新库还移除了旧的实现和标准,如JSONP格式。新的 ASP.NET Core OData 9 库作为 NuGet 包分发。OData 通过各种 NuGet 包提供,包括:
- Microsoft.OData.Core 8.0.1
- Microsoft.OData.Edm 8.0.1
- Microsoft.OData.Client 8.0.1
- Microsoft.Spatial 8.0.1
新版本在过去9 周内 已被下载了 250.000 次。ASP.NET Core OData 的源代码在 GitHub 上提供,存储库目前有 458 个未解决的问题,有关完整列表,开发人员可以查看 OData 8 .NET 库的发行说明。
标签:
相关文章
最新发布
- Nuxt.js 应用中的 prerender:routes 事件钩子详解
- 【问题解决】Tomcat由低于8版本升级到高版本使用Tomcat自带连接池报错无法找到表空间的问题
- 【FAQ】HarmonyOS SDK 闭源开放能力 —Vision Kit
- 六、Spring Boot集成Spring Security之前后分离认证流程最佳方案
- 《JVM第7课》堆区
- .NET 8 高性能跨平台图像处理库 ImageSharp
- 还在为慢速数据传输苦恼?Linux 零拷贝技术来帮你!
- 刚毕业,去做边缘业务,还有救吗?
- 如何避免 HttpClient 丢失请求头:通过 HttpRequestMessage 解决并优化
- 让性能提升56%的Vue3.5响应式重构之“版本计数”