The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

使用 Directory.Build.props 自訂方案中所有專案共用的 MSBuild 屬性值

我們在建置 .NET 專案時,有許多可自訂的建置操作是由 MSBuild 的屬性(Properties)所控制的。重要的是要知道如何以及在哪裡設定屬性值,以達到期望的效果。一般來說,你可以在執行 msbuild.exe 命令列工具的時候指定屬性值,也可以在專案檔(*.csproj)中加入屬性設定,也可以在專案目錄中加入 Directory.Build.props 屬性定義檔。今天這篇文章,我就打算來介紹這個 Directory.Build.props 檔案的用法,以簡化我們方案中各專案的設定。

... 繼續閱讀 ...

如何使用 .NET 的 Azure AI Vision SDK 來替程式加上「視覺」功能

我最近寫了一個小程式,幫助我自動化審核 LINE 社群(OpenChat)的加入申請,由於 LINE 社群並沒有提供 API 可以串接,而我的審核數量又非常大,因此我就想到了透過 OCR 辨識的方式來進行自動化。不過找了幾個免費的 OCR 套件,都沒有辦法很可靠的識別截圖中的文字,直到我嘗試了 Azure AI Vision 服務才眼睛為之一亮,這套產品的 Image analysis 功能品質極高,費用也極低,實際開發出東西後,我覺得這個服務真的非常值得推薦給大家。這篇文章我就帶大家用 .NET 8 簡單上手這個好用的雲端服務!

... 繼續閱讀 ...

如何在 VS Code 順利啟用測試總管 (Test Explorer) 測試 .NET 應用程式

我最近在嘗試使用 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 使用 ESM 搭配 TypeScript, ESLint 與 VSCode 的專案範本

我在兩年前曾經寫過一篇如何快速建置一個 Node.js 專案並使用 TypeScript 與 VSCode 進行開發文章,由於現在的 Node.js 大多以 ESM 為主流,TypeScript 也更新到 5.x 版,而且當時的 TSLint 也都被換成 ESLint 為主了,所以這篇文章就來更新一下內容,幫助大家更方便、更快速的建立一個支援 TypeScript, ESLint, VSCodeESM 並搭配 esbuild 的專案範本。

... 繼續閱讀 ...

如何使用 .NET Core 串接 e 政府服務平臺單一登入暨多因子驗證機制

我記得我最早在 2008 年就因為一個標案串接過 e 政府服務平臺的單一登入機制,事隔多年後,竟然什麼也沒有變,還是一樣透過 SOAP Web Service 來進行驗證。今天這篇文章我就來說說如何透過 .NET 7 實作 e 政府服務平臺的單一簽入機制,以及說明如何用 .NET 呼叫以 SOAP 為基礎的 Web Service 服務。

... 繼續閱讀 ...

使用 Data API builder 快速實現安全的 CRUD 應用程式

微軟最近推出了一個開發工具叫 Data API builder (DAB),這是一套開源的資料處理引擎,他可以快速的將資料庫的資料轉換成 REST 與 GraphQL API 端點(Endpoint),方便我們快速的建立安全的 CRUD 應用程式。有了 Data API builder 之後,針對大多數 CRUD 類型的應用程式,幾乎都可以在幾分鐘之內完成 API 開發,只要使用一些前端框架就可以快速的建立一個完整的應用程式。

... 繼續閱讀 ...

如何使用 SharpToken 計算不同 OpenAI 模型在送出提示詞時的 Token 數量

由於大多數 LLM 模型都有 Token 數量的限制,因此我們在開發 Generative AI (GAI) 應用程式時,都會對 Token 的用量斤斤計較,因此我們需要一個可以計算 Token 數量的函式庫,而在 .NET 世界裡 SharpToken 套件不但可以對文字進行編碼(Tokenize)與解碼,還可以用來計算文字的 Token 數量。今天這篇文章我就來介紹這個好用的 NuGet 套件。

... 繼續閱讀 ...

如何使用 SqlBulkCopy 大量匯入資料到 SQL Server 資料表中

最近有個維護案需要定期匯入百萬筆記錄到 SQL Server 之中,客戶的原始廠商在後台是有寫了一個功能可以讓後台管理員上傳 Excel 檔案,然後透過程式一筆一筆新增到資料庫中,但這個匯入的過程竟然要花上 1.5 小時才能新增完畢,實在是太慢了。其實從 .NET Framework 2.0 開始,在 System.Data.SqlClient 命名空間下就有個 SqlBulkCopy 類別可以用來高效率的大量寫入資料到資料表中,其寫入速度可能快上 50 倍之多!

... 繼續閱讀 ...