The Will Will Web

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

System.Text.Json 可使用 JsonSerializerDefaults.Web 處理常見的 JSON 格式

今天公司同事在用 .NET 處理一個系統串接需求時,發現對方傳來的 JSON 格式會把應該為「數值」的數字資料使用「字串」的格式來表達,這導致他在使用 System.Text.JsonJsonSerializer.Deserialize 進行反序列化時出現錯誤。這篇文章我來分享一個鮮為人知的小秘訣,讓你輕鬆駕馭各種 Web 常見的 JSON 格式。

... 繼續閱讀 ...

如何找出 Outlook 搜尋結果中的郵件隸屬於哪一個資料夾

我每次在 Outlook 搜尋郵件後,都看不出郵件到底隸屬於哪個資料夾下,我個人使用 Outlook 快 20 年,累積的郵件資料夾數量多達數百個,根本已經懶得整理了,有時候搜尋到郵件後,很想知道郵件在哪個資料夾下,但預設並不會顯示,要調整一下設定才可以。這篇文章我就來說說設定的方法。

... 繼續閱讀 ...

如何在舊版的 .NET Core 專案使用不支援當前目標框架的 NuGet 套件

我們最近有個維護案,其技術架構是採用已經 EOS (產品結束支援) 的 .NET Core 2.1 版本,由於客戶沒有預算可以升級框架版本,所以只能持續在現有的不受支援的 .NET Core 版本上新增功能。因為本次專案需求正好要用到一個支援 .NET Standard 2.0 的 MeiliSearch 套件,理論上應該支援 .NET Core 2.1 的,但卻遇到了無法編譯的狀況。本篇文章我就來說說這種狀況的解決方法。

... 繼續閱讀 ...

Kubernetes 101:釐清 kubectl create 與 kubectl apply 的差異

kubectl 是 Kubernetes 的命令列工具 (CLI),主要用來幫助你管理 Kubernetes 叢集、部署應用程式、檢視與管理各種叢集中的各項資源與紀錄。而當我們想要建立資源時,經常會使用 kubectl createkubectl apply 來建立資源,如果單純要建立資源,這兩組命令的差異甚小,但為什麼要分兩個呢?真的是他字面上(建立/套用)的意思嗎?本篇文章我們就來探討這個問題。

... 繼續閱讀 ...

如何使用 Azure Static Web Apps CLI 手動部署靜態網站應用程式

現在有越來越多純前端框架推出,但無論你用哪種前端框架,最終都還是需要後端 API 才能建構出一個完整的網站,以及提供身份驗證與授權等需求。為此微軟 Azure 推出了一個全新的服務叫做 Static Web Apps (SWA) (靜態網站應用程式),不單單讓你部署前端應用程式,還幫你搞定了 API Gateway 與身份認證等常見需求,同時還結合了前端開發常見的 API 整合功能,進一步降低前後端整合門檻。今天這篇文章我主要以 Azure Static Web Apps 的命令列工具為例 (Static Web Apps CLI),帶大家走一遍從安裝到部署的完整過程。

... 繼續閱讀 ...

如何透過命令列工具清除 Windows 認證管理員中的帳號密碼

最近嘗試使用 Azure Static Web Apps CLI 來開發與部署前端應用程式,但發現我用 swa login 之後,卻完全沒有「登出」的選項,經研究後發現 swa 把登入過程的認證資訊全部都放在 Windows 控制台的認證管理員(Credential Manager)之中。這篇文章我打算來分享如何透過 PowerShell 快速清除儲存在系統中的認證資訊。

... 繼續閱讀 ...

如何透過 ssh 連入 Multipass 建立的 Ubuntu VM 並啟用 Port forwarding

如果要從 Host 主機連入 Multipass 建立的 Ubuntu VM,其實只要執行 multipass shell microk8s-vm 就可以進入了,完全也不用輸入密碼。不過,透過 multipass shell 無法使用 Port forwarding (埠號轉送),沒辦法把我在 Ubuntu 底下的 Ports 轉送到我的 Windows 本機。我原本以為這件事不難,結果卻卡關了一下,這篇文章我就來說說解法。

... 繼續閱讀 ...

如何使用 javac 批次編譯整個資料夾(含子資料夾)下的所有 .java 檔案

前陣子幫同事處理一個不知道怎樣自動化編譯的 Java 專案,因為該專案沒有建置工具(Build Tools)輔助,完全依賴 Eclipse 內建的建置工具,所以工程師就不知道怎樣進行 CI 自動建置了。其實在網路上可以找到許多 Shell 環境下的解決方案,但很少有 Windows 環境下的解決方案,為了這個問題,我寫了一段自動化的腳本來解決這個問題,這個腳本幾乎可以適用任何簡易類型的 Java 專案。

... 繼續閱讀 ...

如何將 Hyper-V 底下的 Linux 虛擬機器使用的 VHDX 虛擬硬碟進行壓縮處理

公司有一台佔用將近 500GB 的 Linux 虛擬機器,經詢問工程師後發現,這台虛擬機器之所以會佔用這麼多空間,主要是因為在測試部署的時候,都沒有將先前部署過後的檔案刪除,導致額外浪費許多磁碟空間,增加備份的成本。但是當我用 Hyper-V 的編輯磁碟功能嘗試壓縮 VHDX 虛擬硬碟時,卻發現佔用的磁碟空間無法釋放,原來還有一道工序沒有執行導致。今天這篇文章就來說說這個作法。

... 繼續閱讀 ...