1 回答

TA貢獻(xiàn)1862條經(jīng)驗(yàn) 獲得超7個(gè)贊
FluentValidation 是用于驗(yàn)證規(guī)則的框架。雖然簡單的驗(yàn)證規(guī)則可以是例如:文本長度為 100 個(gè)字符或者它是必填字段,但在大多數(shù)業(yè)務(wù)情況下,規(guī)則要復(fù)雜得多,并且可以以易于讀/寫的方式定義它們。
Fluent API 是實(shí)體框架擴(kuò)展,它支持易于讀/寫的實(shí)體框架,用于將數(shù)據(jù)庫等數(shù)據(jù)源映射到 C# 數(shù)據(jù)傳輸對(duì)象類。DTO 中沒有業(yè)務(wù)邏輯,它們被轉(zhuǎn)換為有業(yè)務(wù)邏輯的模型。
部分問題是您將驗(yàn)證放在哪里?假設(shè)您的應(yīng)用程序分為客戶端、服務(wù)器端、微服務(wù)、數(shù)據(jù)庫。應(yīng)該是其中之一、全部還是介于兩者之間,簡短的回答是——是的。
您應(yīng)該有數(shù)據(jù)庫規(guī)則,以防止存儲(chǔ)無效狀態(tài)。同時(shí)數(shù)據(jù)庫調(diào)用成本高昂且耗時(shí)。將所有業(yè)務(wù)規(guī)則添加到數(shù)據(jù)庫及其約束、設(shè)置觸發(fā)器等稱為數(shù)據(jù)庫優(yōu)先架構(gòu)。雖然這是可能的,但通常可以設(shè)置一個(gè) 80-98% 的時(shí)間命中的緩存。客戶端驗(yàn)證的普遍問題是它可以被繞過,以及其他多種原因。
簡而言之 - 每個(gè)驗(yàn)證解決方案或如何抽象應(yīng)用程序都存在限制。開發(fā)人員通常嘗試以最小的努力編寫干凈的代碼,并且通常要求他們添加測(cè)試,并且通常他們不編寫架構(gòu)或數(shù)據(jù)庫集成測(cè)試,因此他們向模型添加業(yè)務(wù)邏輯并為其編寫測(cè)試。
此外,F(xiàn)luent 驗(yàn)證用于模型驗(yàn)證,F(xiàn)luent api 用于數(shù)據(jù)源訪問。
- 1 回答
- 0 關(guān)注
- 115 瀏覽
添加回答
舉報(bào)