统一版 Supabase .NET SDK 正式发布

统一版 Supabase .NET SDK 正式发布

💡 原文英文,约500词,阅读约需2分钟。
📝

内容提要

Supabase .NET SDK v8 发布,所有包统一版本号并整合至单一仓库,简化升级与维护。新增依赖注入扩展包,支持 ASP.NET Core。序列化改用 System.Text.Json,内置重试机制,支持新 API 密钥,目标框架为 netstandard2.1。该版本包含破坏性变更,官方提供迁移指南。

🔎

延伸解读

统一版本号的实际影响

此前各包版本独立,如Gotrue v6.x.x、Realtime v7.x.x、主包v1.x.x,导致依赖关系复杂。v8.0.0起所有包共享同一版本号,升级时只需指定一个版本,即可确保所有包兼容。这简化了依赖管理,但首次从v1.x.x直接升至v8.0.0跨度较大,需注意破坏性变更。

依赖注入扩展包的使用场景

新增的Supabase.Extensions.DependencyInjection包专为ASP.NET Core设计,可将Supabase客户端注册到.NET服务容器,并利用IHttpClientFactory管理HttpClient。这有助于遵循.NET依赖注入最佳实践,改善HttpClient生命周期管理。该包同样采用统一版本号,起始版本为v8.0.0。

序列化与重试机制的变化

v8将所有序列化从Newtonsoft.Json切换为System.Text.Json,可能影响自定义序列化行为。同时,每个服务包内置了可配置的重试与退避机制,提升了网络请求的弹性。客户端还支持publishable和secret API密钥,所有包目标框架为netstandard2.1,使用umbrella包的开发者无需调整目标框架。

升级注意事项与迁移指南

由于v8是主要版本,包含破坏性变更,官方提供了迁移指南,涵盖可能遇到的变更及解决方法。升级前应仔细阅读指南,并参考发布说明中的完整变更列表。旧仓库已归档为只读,新仓库统一为supabase-community/supabase-csharp,贡献和问题反馈需转向新仓库。

❓

Q&A

Supabase .NET SDK v8 有哪些主要更新?

主要更新包括:所有包统一版本号并整合到单一仓库;新增依赖注入扩展包 Supabase.Extensions.DependencyInjection;序列化改用 System.Text.Json;内置可配置的重试机制;支持 publishable 和 secret API 密钥;所有包目标框架为 netstandard2.1。

为什么 Supabase .NET SDK 从 v1 直接跳到 v8?

因为之前各个包版本号分散,例如 Gotrue 是 v6.x.x,Realtime 是 v7.x.x,主包是 v1.x.x。为了实现所有包统一版本号,必须选择一个足够大的主版本号,v8.0.0 是第一个可用的主版本升级,因此直接从 v1 跳到 v8。

如何将 Supabase 集成到 ASP.NET Core 应用中?

使用新的 Supabase.Extensions.DependencyInjection 包,它可以将 Supabase 客户端注册到 .NET 服务容器,并让 IHttpClientFactory 管理其 HttpClient。该包也遵循统一版本号,从 v8.0.0 开始。

升级到 Supabase .NET SDK v8 需要注意什么?

v8.0.0 是主版本更新,包含破坏性变更。官方提供了迁移指南,涵盖所有可能遇到的破坏性变更及解决方法。建议参考迁移指南进行升级。

Supabase .NET SDK v8 的序列化库有什么变化?

所有序列化从 Newtonsoft.Json 改为使用 System.Text.Json。

Supabase .NET SDK v8 支持哪些目标框架?

所有包都目标框架为 netstandard2.1。如果使用 umbrella 包,之前就已经是 netstandard2.1,因此没有变化。

🏷️

标签

➡️

继续阅读