新進文章

通過 MiniExcel 批次匯入/匯出

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

...繼續閱讀 »
on yc421206

【WEB】HTTP Cache 機制探討

常常會遇到系統資源已經更新(例如: js, css) 但是使用者看到的畫面還是舊的。甚至於已經在後端寫好每次進到這個畫面需要觸發的判斷,卻因為畫面已經被User 端快取,導致行為不正常。身為一個專業的工程師,一定要搞懂其中的原理。

...繼續閱讀 »
on TAKALEARINGNOTES

夏胎與四季胎的油耗比較

前一陣子因應荷蘭冬天的到來,為了一勞永逸,更換了四季胎:

四季胎聽起來很美好,四季都可以使用,車胎不用換來換去。但有利必有弊,四季胎的摩擦力也相對叫夏胎來得大,所以更耗油。跑了一陣子有些記錄和心得分享一下,雖然無法單單依據此數據知曉換四季胎划算與否,但可以做個參考。

...繼續閱讀 »
on CollapsingParentsInNL

如何在TextBlock渲染前取得字串的渲染寬度

  • 28

前陣子遇到一個對齊上的麻煩,這個麻煩的點在於需要在渲染前取得所有 TextBlock 中最長的那一個當作所有 TextBlock 的寬度,類似 DataGrid 中 SizeToCell 那種效果。問題來了,渲染後的 ActualWidth 才有意義,如果要依賴 ActualWidth 的變更好像有點太麻煩了;所幸可以利用 FormattedText 事前計算,讓我們來看看這怎麼做。

 

...繼續閱讀 »
on billchung

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

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

...繼續閱讀 »
on yc421206

Repository 測試使用 Testcontainers - 原始碼

在去年 10  月寫了這一篇文「Repository 測試使用 Testcontainers」,不過文章裡只有公開部分的程式碼類別,可能會讓有些人想跟著實做卻會遇到做不出來的狀況。

但因為實際的程式原始碼已經不在了,所以我就重做了一個新的專案,盡量還原當時的範例專案,之前文章裡的測試專案是使用 MSTest,而這個新建立的專案則是提供了 xUnit  與 MSTest  兩種測試專案,讓使用這兩種測試框架的開發人員可以參考。

...繼續閱讀 »
on mrkt

如何使用 Mock Server 建立假服務

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

...繼續閱讀 »
on yc421206

Log套件 - Serilog(on Linux Ubuntu)

寫Web API時最討厭遇到500 (Internal Server Error)這種後端程式錯誤了,只返回一個Error Responese,c#的catch也抓不到錯誤訊息。由於不是本機環境,也沒有辦法下中斷點Debug,所以也不知道該如何除錯,這時候就知道紀錄後端Log的重要性了。

之前使用的原本是ElmahCore,但爬文後,發現Serilog的使用率比較高,相關資料也比較多。

...繼續閱讀 »
on HaoAreYou

[廚餘回收] 使用 Azure.Storage.Blobs 從 URL 複製 Blob 時,收到 256MB 大小限制的錯誤。

我們偶爾會有從 URL 複製檔案的需求,這一天,程式在複製一個檔案的時候,收到了一個錯誤訊息:

The source request body for synchronous copy is too large and exceeds the maximum permissible limit (256MB).

錯誤訊息很明白,說程式在進行同步複製的時候,Request Body 超過了 256MB 的限制,我們來看看要怎麼解決這個問題?

...繼續閱讀 »
on supershowwei

進修課程