- VisualStudio2022插件的安装及使用-编程手把手系列文章
- pprof-在现网场景怎么用
- C#实现的下拉多选框,下拉多选树,多级节点
- 【学习笔记】基础数据结构:猫树
Microsoft 于 2024 年 8 月 30 日[1]宣布推出 ASP.NET Core OData 9 包。 这个新包将ASP.NET Core与.NET 8 OData库保持一致,改变了OData格式中数据编码的内部细节,使其更符合OData 规范[2].
在2024年8月早些时候,Microsoft 将 OData .NET 库更新到版本 8.0.0[1]。其中最重要的更改是放弃了对旧版 .NET Framework 的支持。从此版本开始,将仅支持 .NET 8 及更高版本。使用旧版 .NET Framework 的开发人员仍然可以使用 OData 库的 7.x 版,这些库在 2025 年 3 月之前仍受到积极支持[3],届时他们将处于维护模式.
OData 8库使用了新的JSON写入器System.Text.Utf8JsonWriter[4]来序列化和反序列化JSON负载,这个新写入器比旧的JsonWriter更快且需要更少的内存。并且需要的内存更少,由 Microsoft.OData.Json.DefaultJsonWriterFactory[5] 创建,因为它不是基于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 包[6]分发。OData 通过各种 NuGet 包提供,包括:
新版本在过去9 周内 已被下载了 250.000 次。ASP.NET Core OData 的源代码在 GitHub 上提供[7],存储库目前有 458 个未解决的问题,有关完整列表,开发人员可以查看 OData 8 .NET 库的发行说明[8].
相关链接 。
最后此篇关于ASP.NETCoreOData9的发布,放弃.NETFramework的文章就讲到这里了,如果你想了解更多关于ASP.NETCoreOData9的发布,放弃.NETFramework的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我用 Flash 创建全屏交互式演示,最近一直在寻求迁移到新语言。我的 Flash 演示基本上是软件原型(prototype),在浏览器之外的投影仪 EXE 中运行。我想离开 Flash 有多种原因,
偶尔,对于转瞬即逝的时刻,我认为 auto_ptr 很酷。但大多数时候,我认识到有更简单的技术可以让它变得无关紧要。例如,如果我想自动释放一个对象,即使抛出异常,我也可以新建该对象并分配给一个 aut
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 9 年前。 Improve
Microsoft 于 2024 年 8 月 30 日[1]宣布推出 ASP.NET Core OData 9 包。 这个新包将ASP.NET Core与.NET 8 OData库保持一致,改变了OD
放弃当前在 Mercurial topic 中不需要的变更集的最佳方法是什么,这些变更集已经被推送并且不能被剥离? 换句话说,是否可以从 hg topics 输出中删除主题而不发布它? 最佳答案 hg
在过去几天沮丧地尝试将我的代码重构为最佳设计模式,即显示模块模式,或者甚至只是满足于简单的命名空间之后,我得出的结论是,对我来说,一个优雅的设计模式被破坏 visual studio intellis
我有一个构造 auto_ptr 的类并获得 T由效用函数填充的对象数据。但是,我想要 T由对象管理器存储的对象,该对象将在应用程序的整个生命周期内持续存在。 问题是 - 一旦我提取了 auto_ptr
在 C/C++ 中是否有可能“放弃”线程的 CPU 时间?例如: void wait(int s) //Low cpu usage { int tmp = time(); while(tmp +
概览:我创建了一个具有客户区域和管理区域的系统。这两个区域都有不同的登录页面。用户可以在管理区域以用户 A 身份登录,同时在客户区域以 用户 B 身份登录。 当用户从客户或管理区域注销时,调用 Ses
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 9 年前。 Improve this
[temp.spec]/6通过 P0692R1 的实现添加到 C++20 (特化访问检查)[ 重点 矿]: [temp.spec]/6 The usual access checking rules
因此,情况是我使用 SB 队列来限制对其他服务的传出回调。回拨其他服务的标准问题之一是它们可能会出现无法控制的停机时间。假设我检测到目标已关闭/没有响应,放弃该消息以使其不会立即重新出现在队列中的最佳
我有一个使用MVVM模式的WPF应用程序,其中ViewModel调用执行所有保存/更新/获取/删除内容的查询。我这样做是因为,例如,修改查询以交换存储系统很容易。 如果即时存储/删除数据,但该应用程序
很抱歉,如果这个问题很愚蠢或已得到解答,但我在任何地方都找不到是或否。 在我们的生产 Oracle 环境中,是否可以删除架构 SCOTT? 我知道它是一个示例架构,但我们的安全部门希望删除任何未使用的
如果我将所有文件(图像、样式表、JavaScript、图标...)与 index.html 文件一起直接放入元素文件夹;不使用子文件夹来构建我的文件,例如图像、CSS...这会带来性能优势吗? 当然。
所以我有一个相当老的应用程序,最后一次在 iPhone X(s) 发布之前使用。始终使用启动图像源而不是启动屏幕文件,如下所示。 我现在在 iPhone X 上启动时遇到问题,因为屏幕尺寸是从 Lau
我有一个 Canvas 比手机屏幕大的绘图应用程序。我想实现用两根手指滚动并用一根手指绘图。到目前为止,我可以使滚动工作得很好,但是当涉及到绘图时,线条开始,然后绘图所在的 View 失去了对触摸的控
是否可以放弃对 iPhone 3GS 对新 App 的支持?因为我正在从 iPad 游戏移植到 iPhone。 480*320分辨率太小了。很难将我当前的游戏移植到它上面。但是高分辨率的 iPhone
我有一个 Python 应用程序,它在单独的线程中运行作业。一些 workerjobs 为数据库连接实现 pymongo。 class Job(Thread): ... self.
我有一个提交到启动脚本的 PHP 页面的 HTML 表单。该脚本可能需要 3 秒到 30 秒的时间才能运行 - 用户无需在附近即可完成该脚本。 是否可以启动一个 PHP 脚本,立即向用户打印“谢谢”(
我是一名优秀的程序员,十分优秀!