(29/30)大家一起學blazor:blazor單元測試
開發一個系統最無聊的過程大概就是解決bug了,尤其是那種嘗試對null 對象取值的錯誤(`object reference not set to an instance of an object.`),這應該是大部分人剛踏入編程領域最常碰到的問題,為了從枯燥的解決bug過程解脫,這篇就來居間`單元測試`。
開發一個系統最無聊的過程大概就是解決bug了,尤其是那種嘗試對null 對象取值的錯誤(`object reference not set to an instance of an object.`),這應該是大部分人剛踏入編程領域最常碰到的問題,為了從枯燥的解決bug過程解脫,這篇就來居間`單元測試`。
在`ef core`中`批量`執行`更新`、`刪除`、`插入`數據的框架`zack.efcore.batch`已經發布新版,新版增加了對`.net 6`的支持,數據批量插入的時候支持`valueconverter`,徹底解決了`“更新數據的時候,當兩列的表達式等價時候出現的the count of columns should be even異常”`。
之前有說到`asp.net core identity` 使用的是基於`claim` 的驗證,其實`asp.net core identity` 有不同類型的授權方式,最簡單的`登錄授權`、`角色授權`、`claim 授權`,但上述幾種都是以一種方式實現:原則授權(`policy-based authorization`)。
前面說過`asp.net core identity` 是基於`claim` 的驗證,而`role` 就是類型為`role` 的`claim`
昨天角色的`crud` 功能都完成了,接著就是要把角色分配給用戶了
有些情況下,需要在程式運行期間動態執行c#代碼,比如,將某些經常改變的算法保存在配置文件中,在運行期間從配置文件中讀取並執行運算。這時可以使用c#腳本來完成這些工作。
首先添加承載角色數據的`viewmodel`,因為接下來的權限會以角色判斷
前天有在`blog.razor`加入通過驗證及未通過的顯示內容,但如果系統要呈現的未通過驗證內容都一樣,在每個component 都這樣寫就太浪費時間了,可以利用`app.razor`幫我們做統一呈現的事。
前面有說到`userauthentication()`跟`userauthorization()`,這兩個的差別在於:前者用於驗證登錄者是誰,後者則決定登錄者可以做什麼。
最近部門在推微前端,需要按功能拆分多個子應用,主應用在加載的過程中經常出現加載失敗的問題。