使用範本檔管理組態並轉成 env 環境變數

.NET Core 原生的組態設定是使用 appsettings.json 來讀取組態設定,要先產生出各個環境的組態設定 appsettings.Development.json、appsettings.Staging.json、appsettings.Production.json,再透過環境變數+Build,取代掉原本的值,要佈署的環境越多檔案就越多,每次的改動設定都要很小心,生怕一個不注意就弄壞了,我想要讓組態管理的行為變簡單一些…

...繼續閱讀 »

Reqnroll for Rider 初體驗

某一天我的同事提醒我說新版的 Rider,SpecFlow for Rider 上不能使用了,於是我暫緩更新了一段時間,現在已經有 Reqnroll 方案。這裡有 Reqnroll 誕生原因,From SpecFlow to Reqnroll: Why and How • Reqnroll,總結內容就是 SpecFlow 已經很長一段時間沒有更新,所以作者決定 Fork SoecFlow 專案,名為 Reqnroll,現在我要來體驗 Reqnroll 跟過往的 SpecFlow 有沒有甚麼不一樣

 

...繼續閱讀 »

通過 MiniExcel 批次匯入/匯出

最近有機會又要操作 Excel,很久以前就知道 MiniExcel,趁假日有機會來把玩一下,這次的重點是研究批次讀寫的使用方式,看看有沒有機會降低一次載入大量 Excel 所造成的記憶體損耗。除了 Excel 之外,它也支援 Csv 呢。還沒開始之前看一下效能比較圖。

...繼續閱讀 »

通過 RateLimiter 限速器 + Redis,限制執行速度

上篇介紹使用 System.Threading.RateLimiting,實現限制執行速度,當有多台機器/服務需要限速,這就需要一台集中式的服務來管理 RateLimiter 的狀態,目前微軟官方還沒有支援 Redis,不過已經被排入 .NET 9 Milestones 再過一陣子,System.Threading.RateLimiting 應該就可以支援 Redis 了,對於現在需要使用 Redis 的夥伴,可以先考慮使用 cristipufu/aspnetcore-redis-rate-limiting

...繼續閱讀 »

如何使用 Mock Server 建立假服務

上篇 提到使用 Prism 來建立 Mock Server,經同事反饋,他期望能使用類似像 Wiremock 有 API 可以在測試步驟根據場景快速的定義 Mock Server 的回傳值,而我期望除了用 API 動態的決定 Mock Server 的回傳值之外,還能匯入 Open API/Swagger,於是我把我手上收集的 Mock Server 清單玩了一遍,發現這一套 Mock Server 可以滿足我需要的

...繼續閱讀 »

利用 JsonDiffPatch 產生資料異動時的差異內容,縮小儲存容量

當資料有異動 (CUD) 的時候,我會把異動的結果存放在另一張表,稱之為歷程 History 或是快照 Snapshot,讓活動中的資料內容都是有用的,其他的資料表要記錄"當下"的狀態時,則是參考 Snapshot 的資料,例如 Id+Version,這次我要用 JsonDiffPatch 來產生差異資料內容,並且還原出當時的內容,就來看看我怎麼實作。

...繼續閱讀 »