在多專案的 .NET 團隊合作中,手動安裝工具和設定環境常常導致流程不一致,甚至影響效率。透過善用 Directory.Build.props 和 Directory.Build.targets,我們可以實現自動化的建置流程,讓每位團隊成員只需執行一次 dotnet build,就能完成工具安裝、husky hooks 配置,以及程式碼風格檢查,確保開發環境的一致性與便利性。這篇文章將帶你了解這兩個檔案的差異與應用,並示範如何利用它們來自動化 Husky.Net 的安裝與設定。
... 繼續閱讀 ...
由於從 .NET Core 1.0 開始,就沒有自動載入 BIG5 編碼的 Encoding 資料,所以你沒辦法直接透過 Encoding.GetEncoding("Big5") 取得 Encoding 物件。在 .NET Core 3.1 之前,還需要須額外安裝 System.Text.Encoding.CodePages 套件才行。不過,從 .NET 5 開始,這個套件成為了 .NET SDK 的一部分,不再需要額外安裝。但即便如此,你還是要特別執行一段註冊以使用此編碼。接下來,我們將深入探討如何註冊這些編碼並正確使用它們在不同的場景中。
... 繼續閱讀 ...
經 BenchmarkDotNet 實測驗證發現,只要在現有的非同步方法加上 async/await 關鍵字,其方法的執行效能就有可能會降低 2,700 倍之多。這是因為 async/await 關鍵字會讓 C# 編譯器在編譯程式時,會將非同步方法轉換成一種狀態機的實作,這樣的轉換會增加程式的執行時間。因此,我們在大多數「函式庫」中的程式碼,幾乎都不會使用 async/await 關鍵字來撰寫程式。然而我們在函式庫中實作程式時,是有可能遇到多次非同步等待的情況,此時我們就可以使用 TaskExtensions.Unwrap 擴充方法來簡化寫法,今天這篇文章我就來說說這個開發技巧。
... 繼續閱讀 ...
C# 8.0 引入了一個 Async Streams (非同步串流) 的語言特性,這個特性讓我們可以做到許多以前做不到的事,若用在 ASP.NET Core Web API 上面,你就可以很輕鬆的實現 API 資料串流功能,讓你可以透過「非同步」的方式有效率的處理大量資料。由於這個概念太過前衛,所以我們先從基本的語法開始,然後再來看看如何應用在 ASP.NET Core Web API 上面。
... 繼續閱讀 ...
我現在大多數自動化的小工具都是使用 LINQPad 來撰寫,執行速度快且管理方便,但是在 CI/CD 環境中,LINQPad 並不是一個常見的工具,還好 LINQPad 有提供 LPRun 工具,可以直接把現成的 *.linq 檔案直接拿來當成腳本執行,因此拿來 CI 的環境用是非常方便的,完全可以當作 C# 腳本來使用。這篇文章我就來介紹一下 LPRun 使用的方式。
... 繼續閱讀 ...
我前陣子幫客戶開發一個 Windows Forms 應用程式,使用 .NET 8 來開發,不過在案子的最後一刻,客戶要求要加上一個「版本資訊」的功能,這個功能要顯示目前程式的版本號。這個功能實在是不常寫,沒想到還真的有點地雷,因為跟 .NET Framework 有點不太一樣了。這篇文章就來分享一下我在開發過程中遇到的問題,以及解決方法。
... 繼續閱讀 ...
在 .NET 要呼叫 REST API 時,最常使用的就屬 HttpClient 類別莫屬,但有時候真的想看他到底送出了什麼 HTTP 封包,或是收到了什麼 HTTP 回應 (原始內容),這時候就需要一個方法來攔截並記錄實際 HTTP 傳送的 Request 與 Response 封包內容。其實是有方法的,這篇文章就來介紹如何實作。
... 繼續閱讀 ...
我一直以來都是 Serverless 架構的信徒,因為實在是不太想自己管伺服器,我從 2018 年就開始採用 Azure Functions 技術,到目前為止歷經了 4 個大版本,到現在終於算是穩定些了。不過即便到目前為止,你要是照著官方文件下去設定,肯定會在很多不同的環節鬼打牆,地雷一直都沒有少過。這篇文章我將介紹如何使用 .NET 8.0 與 Azure Functions Core Tools 來開發函式應用程式,並說明如何部署應用程式到 Azure App Service 使用 Consumption Plan (Y1) 方案來執行!
... 繼續閱讀 ...
我最近寫了一個小程式,幫助我自動化審核 LINE 社群(OpenChat)的加入申請,由於 LINE 社群並沒有提供 API 可以串接,而我的審核數量又非常大,因此我就想到了透過 OCR 辨識的方式來進行自動化。不過找了幾個免費的 OCR 套件,都沒有辦法很可靠的識別截圖中的文字,直到我嘗試了 Azure AI Vision 服務才眼睛為之一亮,這套產品的 Image analysis 功能品質極高,費用也極低,實際開發出東西後,我覺得這個服務真的非常值得推薦給大家。這篇文章我就帶大家用 .NET 8 簡單上手這個好用的雲端服務!
... 繼續閱讀 ...