我前陣子幫客戶開發一個 Windows Forms 應用程式,使用 .NET 8 來開發,不過在案子的最後一刻,客戶要求要加上一個「版本資訊」的功能,這個功能要顯示目前程式的版本號。這個功能實在是不常寫,沒想到還真的有點地雷,因為跟 .NET Framework 有點不太一樣了。這篇文章就來分享一下我在開發過程中遇到的問題,以及解決方法。
... 繼續閱讀 ...
這應該算是 .NET Core 的歷史包袱吧,任何軟體都一樣,沒有人可以預料未來的需求,所以當初設計的時候,多多少少一定會遇到一些不合理的地方。然而,因為當年 .NET Core 算是有承諾「絕對不會」有破壞性的 API 變更,所以一些早期設計不當的 API 全部都留下來了,也因為這樣,.NET 就需要設計一些新的 API 來取代「包裹」舊的 API,雖然會帶來一些困擾,但是只對老人困擾而已,對新人來說,這些都是「新」的 API,所以不會有任何問題。這篇文章我要來介紹 .NET 7 / 8 通常該如何初始化應用程式,以及跟舊版有什麼不一樣的地方。
... 繼續閱讀 ...
在 .NET 要呼叫 REST API 時,最常使用的就屬 HttpClient 類別莫屬,但有時候真的想看他到底送出了什麼 HTTP 封包,或是收到了什麼 HTTP 回應 (原始內容),這時候就需要一個方法來攔截並記錄實際 HTTP 傳送的 Request 與 Response 封包內容。其實是有方法的,這篇文章就來介紹如何實作。
... 繼續閱讀 ...
我最近在整理《重編國語辭典修訂本》最新版的資料檔,因為我預計輸出成跟 g0v 的 moedict-data 專案相容的 JSON 格式,而在輸出的時候卻發現這些中文字都被編碼了,但我希望能夠輸出成完整的 Unicode 字元。這才發現即便是 .NET 8 最新版,也無法輸出完整的 Unicode 字元,這篇文章就是記錄我如何解決這個問題的過程。
... 繼續閱讀 ...
我一直以來都是 Serverless 架構的信徒,因為實在是不太想自己管伺服器,我從 2018 年就開始採用 Azure Functions 技術,到目前為止歷經了 4 個大版本,到現在終於算是穩定些了。不過即便到目前為止,你要是照著官方文件下去設定,肯定會在很多不同的環節鬼打牆,地雷一直都沒有少過。這篇文章我將介紹如何使用 .NET 8.0 與 Azure Functions Core Tools 來開發函式應用程式,並說明如何部署應用程式到 Azure App Service 使用 Consumption Plan (Y1
) 方案來執行!
... 繼續閱讀 ...
我們在建置 .NET 專案時,有許多可自訂的建置操作是由 MSBuild 的屬性(Properties)所控制的。重要的是要知道如何以及在哪裡設定屬性值,以達到期望的效果。一般來說,你可以在執行 msbuild.exe
命令列工具的時候指定屬性值,也可以在專案檔(*.csproj
)中加入屬性設定,也可以在專案目錄中加入 Directory.Build.props
屬性定義檔。今天這篇文章,我就打算來介紹這個 Directory.Build.props
檔案的用法,以簡化我們方案中各專案的設定。
... 繼續閱讀 ...
我最近寫了一個小程式,幫助我自動化審核 LINE 社群(OpenChat)的加入申請,由於 LINE 社群並沒有提供 API 可以串接,而我的審核數量又非常大,因此我就想到了透過 OCR 辨識的方式來進行自動化。不過找了幾個免費的 OCR 套件,都沒有辦法很可靠的識別截圖中的文字,直到我嘗試了 Azure AI Vision 服務才眼睛為之一亮,這套產品的 Image analysis 功能品質極高,費用也極低,實際開發出東西後,我覺得這個服務真的非常值得推薦給大家。這篇文章我就帶大家用 .NET 8 簡單上手這個好用的雲端服務!
... 繼續閱讀 ...
我最近在嘗試使用 GitHub Copilot 來撰寫單元測試,而在使用的過程中,我發現 Visual Studio Code 的測試總管 (Test Explorer) 竟然抓不到我專案中的測試案例,研究了一下才發現是 .NET Core Test Explorer 沒有正確設定導致的。不過,其實 C# Dev Kit 擴充套件本來就內建了 C# 的測試轉接器 (Test Adapter),不需要 .NET Core Test Explorer
就能跑,索性我就把套件刪除了。今天這篇文章我就來分享如何設定讓 C# Dev Kit
能夠正確的啟用測試總管 (Test Explorer),方便我們執行單元測試。
... 繼續閱讀 ...
我在兩年前曾經寫過一篇如何快速建置一個 Node.js 專案並使用 TypeScript 與 VSCode 進行開發文章,由於現在的 Node.js 大多以 ESM 為主流,TypeScript 也更新到 5.x 版,而且當時的 TSLint 也都被換成 ESLint 為主了,所以這篇文章就來更新一下內容,幫助大家更方便、更快速的建立一個支援 TypeScript, ESLint, VSCode 與 ESM 並搭配 esbuild 的專案範本。
... 繼續閱讀 ...