The Will Will Web

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

體驗 .NET 10 的超酷新功能:dotnet run app.cs

最近微軟釋出了 .NET 10 Preview 4 版本,這個版本正式推出了一個超酷的新功能,你現在可以在完全沒有 *.csproj 檔案的情況下,直接使用 dotnet run 來執行你的 C# 程式碼!先不論這件事有沒有意義,但這個功能確實會大幅簡化我們的開發流程,讓我們可以更快速地測試和執行 C# 程式碼。今天這篇文章我們就來體驗一下這個全新功能!

... 繼續閱讀 ...

不常用 Git 命令整理

我每天都在用 Git 進行版控,有些命令真的是滾瓜爛熟,閉著眼睛都可以打出來。不過,有些命令偶爾會用到,不整理起來每次都要問 AI 也確實有點煩,所以這邊文章我就打算做個筆記,以後有想到就整理到這篇文章來。

... 繼續閱讀 ...

如何透過 CI 自動將靜態網頁發佈到免費的 Cloudflare Pages 服務

我這幾天花了點時間發佈 dev.angular.tw 新版 Angular 正體中文官網,大幅改善了原本的翻譯品質,而且新版網站非常美觀,甚至可以透過 StackBlitz 獨家的 WebContainers 技術,線上編輯 Angular 的範例程式碼,並且即時預覽結果。重點是,我這次將網站部署到 Cloudflare Pages 靜態網頁部署服務,這個服務不僅免費,還能提供全球 CDN 加速,讓網站的載入速度更快。這篇文章我打算用最短的篇幅,記錄一下整個網站發佈的過程。

... 繼續閱讀 ...

當在 git clone 之後看不到所有遠端分支的問題分析與解決方案

在團隊協作或維護大型專案時,經常會遇到一個常見問題,就是在執行 git clone 之後,發現用 git branch -agit branch -r 看不到所有遠端分支 (remote branches)。這個現象不僅讓人困惑,也會影響開發流程,我們在實務上已經有兩三位同仁遇到了,所以我覺得可以寫一篇文章分享一下問題發生的原因與解法。

... 繼續閱讀 ...

如何在 Ubuntu 22.04.5 LTS 上安裝和配置 Cloudflare Tunnel 服務

最近幫同事建立了一台測試機,我使用 Cloudflare Tunnel 提供客戶測試網址,這樣就不需要處理防火牆的種種瑣事,不但減少了許多管理上的麻煩,透過 Cloudflare 的平臺檔在前面也相對安全許多。這篇文章會記錄一下我在 Ubuntu 22.04.5 LTS 上安裝和配置 Cloudflare Tunnel 的過程。

... 繼續閱讀 ...

使用 uv 輔助開發 MCP 伺服器並安裝到 Claude Desktop 與 VS Code

最近幾週 MCP (Model Context Protocol) 正夯,要瞭解這個 AI 世界的 USB 介面,那肯定是要親手寫一個 MCP Server 才行。今天這篇文章我將參考 MCP 官網的範例,示範一個完整的開發步驟,讓大家知道用 Python 開發 MCP Server 的起手式。我會透過最新潮的 uv 快速建立 Python 開發環境,並且寫一個簡單的 MCP Server 應用,然後快速安裝到 Claude DesktopVisual Studio Code Insiders 之中,讓 Claude DesktopGitHub CopilotAgent Mode 都可以呼叫 MCP 伺服器中的工具。

... 繼續閱讀 ...

深入理解 package-lock.json 的用途與適用情境

我最近幫一位同事整理一個已經維護 7 年的 Angular 專案,結果發現一個前後端分離的專案,只有「後端」有設定 CI / CD,前端一直以來都是人工建置與部署。我在弄 CI / CD 的時候,發現了許多 npm 套件版本有依賴問題,為了能消除這些惱人的警告,花了我好幾個小時的時間才得到徹底的解決。我這次會遇到套件依賴問題,就是因為當初的開發人員搞不定,多年來一直都視而不見,依賴問題從來都沒有搞定過,每次換人維護都用 npm install --forcenpm install --legacy-peer-deps 來解決問題,然後一代傳一代,變成祖傳的慣例,變成技術債。如果專案有個維護妥當的 package-lock.json 檔案,其實要還原套件不是什麼難事,今天這篇文章我就來深入探討這個問題。

... 繼續閱讀 ...

如何在 .NET Core、.NET 5+ 與 ASP.NET Core 正確使用 Big5 編碼

由於從 .NET Core 1.0 開始,就沒有自動載入 BIG5 編碼的 Encoding 資料,所以你沒辦法直接透過 Encoding.GetEncoding("Big5") 取得 Encoding 物件。在 .NET Core 3.1 之前,還需要須額外安裝 System.Text.Encoding.CodePages 套件才行。不過,從 .NET 5 開始,這個套件成為了 .NET SDK 的一部分,不再需要額外安裝。但即便如此,你還是要特別執行一段註冊以使用此編碼。接下來,我們將深入探討如何註冊這些編碼並正確使用它們在不同的場景中。

... 繼續閱讀 ...

理解 WAV 格式:從 PCM 編碼格式到檔案大小計算方法

最近正在設計一個「即時口譯」的應用,可以幫助我們客戶在舉辦現場活動或即時線上活動時,可以提供多語言的口譯服務。我們需要將語音輸入訊號轉換為文字,然後再轉換為其他語言的語音。在這個過程中,首先要先深入瞭解常見的 WAV 格式,瞭解之後才能做一些更深層的細部操作。這篇文章將深入探討 WAV 格式,從 PCM 編碼格式到檔案大小計算方法,讓我們更好地處理音頻資料。

... 繼續閱讀 ...