原创 Nginx No, Traefik Yes

As we all know, Nginx is a very popular reverse proxy server. It is very stable and has a lot of features. But I choose

原创 免費擁有自己的 Github 資源加速器

TurboHub 是一個免費的 Github 資源加速下載站點,可以幫助你快速下載 Github 上的資源。其核心邏輯是通過 Azure Static Web Apps 服務和 Azure Functions 服務,將 Github 上的資

原创 我沒能實現始終在一個線程上運行 task

前文我們總結了在使用常駐任務實現常駐線程時,應該注意的事項。但是我們最終沒有提到如何在處理對於帶有異步代碼的辦法。本篇將接受筆者對於該內容的總結。 如何識別當前代碼跑在什麼線程上 一切開始之前,我們先來使用一種簡單的方式來識別當前代碼運行在

原创 實現常駐任務除了避免曇花線程,還需要避免重返線程池

前面我們使用簡單的例子演示了 Task 和 Thread 的兩種製造曇花線程的方式。那麼除了避免曇花線程,在實現常駐任務的時候,還需要避免重返線程池。本文將介紹如何避免重返線程池。 常駐任務 常駐任務非常常見,比如: 我們正在編寫一個日

原创 async 與 Thread 的錯誤結合

在 TAP 出現之前,我們可以通過 Thread 來完成一些線程操作,從而實現多線程和異步操作。在 TAP 出現之後,有時候爲了更高精度的控制線程,我們還是會使用到 Thread 。文本講介紹一種錯誤的使用方式,作爲讀者的一個參考。 和

原创 這樣在 C# 使用 LongRunnigTask 是錯的

Task.Factory.StartNew 有一個重載,是支持 TaskCreationOptions.LongRunning 參數來指定 Task 的特徵的。但是可能在沒有注意的情況下,你就使用了錯誤的用法。那麼本文我們來簡單闡述一下這個

原创 使用一個文件集中管理你的 Nuget 依賴版本號

在 .net 7 以前,項目對於 nuget 依賴項的版本依賴散落與解決方案的各個角落。這導致升級維護和查看的時候都比較麻煩。在 .net 7 中,你可以使用一個文件來集中管理你的 Nuget 依賴版本號。本篇文章將介紹如何使用這個功能。

原创 磁盤有限,Docker 垃圾很多怎麼辦

你的電腦上可能 pull 或者 build 了很多 Docker 鏡像,但是你不知道怎麼清理,本文將介紹如何清理 Docker 垃圾的常見方法。 docker prune 你可以通過原生的多種 prune 命令來清理垃圾,比如 docker

原创 aspnetcore 原生 DI 實現基於 key 的服務獲取

你可能想通過一個字符串或者其他的類型來獲取一個具體的服務實現,那麼在 aspnetcore 原生的 MSDI 中,如何實現呢?本文將介紹如何通過自定義工廠來實現。 我們現在恰好有基於 Json 和 MessagePack 的兩種序列化器 有

原创 不同程序集,名稱空間類名和方法簽名都一樣的方法,如何調用

有時候,你可能會遇到這樣的問題,不同程序集,名稱空間類名和方法簽名都一樣的方法,如何調用。本文將介紹如何通過別名的方式來解決這個問題。 創建兩個不同的程序集 我們來創建兩個不同的程序集,但是他們的名稱空間一樣: dotnet new cla

原创 關於《小公司需要使用微服務架構嗎?》的讀後感

最近閱讀了一篇文章《小公司需要使用微服務架構嗎?》,這篇文章討論了微服務架構的優缺點,以及微服務架構是否適合小公司。爲了蹭一下熱度,本文將結合兩年半的練習經驗,談談我對這篇文章的讀後感。 原文摘要 New Bing 這樣總結到: 你的問題是

原创 如何使用 ArrayPool

如果不停的 new 數組,可能會造成 GC 的壓力,因此在 aspnetcore 中推薦使用 ArrayPool 來重用數組,本文將介紹如何使用 ArrayPool。 使用 ArrayPool ArrayPool 是一個靜態類,它提供了一個

原创 2023 年 dotnet 倉庫社區年度調查已經開始

準備好今年對 dotnet 指手畫腳了嗎,平常在羣裏我忍氣吞聲,今天我必須重拳出擊,快來參與吧。 我直接一個參的加 .NET 是一個跨平臺的開發框架,支持多種語言和應用場景,如 C#、F#、VB.NET、ASP.NET、Blazor、MAU

原创 我不想再傳遞 nameof 了

有的時候拋出一個異常,我們需要知道是哪個方法拋出的異常。那麼,我們可以通過傳遞 nameof 來獲取調用者的方法名。但是,感覺很煩,每次都要傳遞 nameof。那麼,有沒有更好的方法呢? CallerLineNumberAttribute

原创 dotnet 8 preview 1 即將發佈

.Net 8 preview 1 即將到來,讓我們來提前看看都要發佈什麼吧。 .Net 8 preview 1 即將到來 .NET 8 的第一個預覽版將在幾周內發佈,微軟的 David Ortinau 在斯德哥爾摩舉行的一場在線技術活動中說