dotnet-backend-patterns
建構生產級 .NET 後端
開發 .NET 後端需要了解非同步模式、依賴注入和資料庫存取策略。本技能提供經過驗證的範本和最佳實踐,用於建構可維護、可測試且高效能的 API。
下載技能 ZIP
在 Claude 中上傳
前往 設定 → 功能 → 技能 → 上傳技能
開啟並開始使用
測試它
正在使用「dotnet-backend-patterns」。 Generate a product service with Result pattern and caching
預期結果:
- Result<T> 模式搭配 Success/Failure 靜態方法
- ICacheService相依性用於快取側旁模式
- FluentValidation 整合用於請求驗證
- ILogger 注入搭配適當的日誌層級
- 所有非同步方法中的 CancellationToken 傳遞
- 使用儲存庫模式的軟刪除支援
正在使用「dotnet-backend-patterns」。 Create a user repository using Dapper with parameterized queries
預期結果:
- 透過工廠模式注入 IDbConnection
- 使用 @Id、@SearchTerm 預留位置進行參數化 SQL
- QueryFirstOrDefaultAsync 用於單一記錄
- QueryAsync 用於搭配 DynamicParameters 的多個結果
- 用於多重陳述式作業的交易支援
正在使用「dotnet-backend-patterns」。 Set up dependency injection for a payment service
預期結果:
- 用於付款處理服務的 Scoped 生命週期
- IOptions<PaymentOptions> 設定繫結
- 透過 IHttpClientFactory 註冊 HttpClient
- 用於 Redis 的單例 ConnectionMultiplexer
- 用於多重付款提供者的索引鍵服務
安全審計
安全This is a pure documentation and code template skill containing only educational C#/.NET patterns. Static findings are 100% false positives caused by the scanner misidentifying: (1) markdown code fences as Ruby backticks, (2) SQL/database patterns as cryptographic terms, (3) standard C# namespace imports as reconnaissance. No executable code, network calls, file system access, or command execution exists. All content is static educational material.
風險因素
⚙️ 外部命令 (85)
🌐 網路存取 (1)
品質評分
你能建構什麼
API 開發
使用 Minimal API 端點設計和實作 RESTful API,並包含適當的錯誤處理和驗證
資料存取層
使用 EF Core 為複雜領域或 Dapper 為效能關鍵查詢建立儲存庫層
測試策略
使用模擬依賴項和針對測試資料庫的整合測試撰寫全面的測試套件
試試這些提示
為 [EntityName] 建立具有 CRUD 操作的服務實作,使用 Result 模式、依賴注入和驗證。包含快取側旁模式和適當的錯誤處理。
為 [EntityName] 產生 [Dapper/EF Core] 儲存庫,包含搜尋、分頁和大量作業的非同步方法。包含參數化查詢和適當的連線處理。
為 [ServiceName] 撰寫服務註冊,使用適當的生命週期(scoped/singleton/transient)、IOptions 設定,以及必要的索引鍵服務。
使用 Moq 為 [ServiceName] 撰寫 xUnit 測試。包含快樂路徑、驗證失敗和錯誤場景。使用 Fact 和 Theory 屬性搭配適當的斷言。
最佳實務
- 全程使用 async/await,並始終將 CancellationToken 傳遞給非同步方法
- 對於業務邏輯失敗,優先使用 Result<T> 而非異常,並在 API 邊界驗證輸入
- 對於唯讀查詢使用 AsNoTracking(),且僅選取需要的欄位以減少記憶體使用量
避免
- 絕對不要使用 .Result 或 .GetAwaiter().GetResult() 封鎖非同步程式碼,因為這會導致死結
- 避免直接在 API 回應中暴露 EF 實體 - 使用 DTO 進行資料轉換
- 不要使用字串串接來建構 SQL 查詢 - 務必使用參數化查詢以防止注入