用途:该技能面向 Bitwarden 服务端仓库(C#/.NET)开发,帮助在编写命令、查询、服务或 API 端点时遵循既有架构与编码约定。
仓库结构:src/Api 为 REST API 端点;src/Identity 为认证/身份服务;src/Core 为业务逻辑、命令、查询与服务;src/Infrastructure 为数据访问与仓储。
主要能力与约定:新功能采用命令查询分离(CQS)模式,用单一职责类替代庞大的实体服务,命令为写操作(如 RotateOrganizationApiKeyCommand),查询为读操作且不改变状态。修改既有服务代码时沿用文件内已有模式,除非明确要求否则不重构为 CQS。缓存遵循 CACHING.md,使用 IFusionCache 而非 IDistributedCache,且未经确认不实现缓存。实体 ID 必须用 CoreHelpers.GenerateComb(),不用 Guid.NewGuid(),以避免 SQL Server 聚集索引碎片。
关键规则:DI 注册用 TryAdd*(TryAddScoped、TryAddTransient);使用文件作用域命名空间;启用可空引用类型,必要时用 ! 与 required;异步方法加 Async 后缀;控制器动作返回 ActionResult<T>;测试用 xUnit,配合 [Theory, BitAutoData]、SutProvider<T> 与 NSubstitute 的 Substitute.For<T>()。
限制:资料未提供安装命令、收费信息或具体使用步骤;链接文档在运行时无法获取,相关约定已内联说明。