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

The Will Will Web

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

比對字串在不同程式語言的語法差異 (JS, C#, Java, Go)

今天同事提到一個問題,說他看到客戶用 JavaScript 的 <> 來比對日期字串,但我們要將這份邏輯移到後端 Java 應用程式中,由於 Java 沒看到類似的語法,雖然知道有 Java 字串有個 compareTo() 方法可用,但不知道差異在哪裡,也深怕有個未知的地雷會踩到。因為這個需求,我今天寫了 4 種不同程式語言的字串比對差異比較,看的懂程式碼的話,未來應該就知道這幾種語言字串比對的差異在哪裡了。

... 繼續閱讀 ...

如何建立與刪除 Azure DevOps 上面的 Project Wiki 文件庫

在 Azure DevOps Service 上面的 Wiki 有兩種類型,一種是隨著專案一起建立的 Project Wiki 文件庫,另一種是隨著 Git Repo 特定分支的 Code Wiki 文件庫。然而 Project Wiki 一個專案只能有一個,而且建立之後預設是無法刪除的,無論透過 Web UI 或是 Azure CLI 都沒辦法。今天這篇文章我要來說明如何透過 Azure DevOps REST API 來刪除專案的 Project Wiki 文件庫。

... 繼續閱讀 ...

如何在 Linux 搬動資料夾與其所有檔案到另一個同名資料夾

我今天遇到一個緊急事件,我有台 Linux 主機意外的被一個 Bug 吃光所有磁碟空間,導致服務中斷。我原本想將檔案搬移到另一個地方,但是這個資料夾檔案特別多,不但檔案多,資料夾也多,我先用 mv 搬到另一個地方,空出足夠的空間後,先終止搬移作業,打算先修復服務,然後就無法搬了!💥

... 繼續閱讀 ...

使用 Json.NET 定義一個混合強型別與弱型別的 JSON 資料回應

我們最近有個專案需求特別複雜,由於是個已經持續維護 10 年的系統要改版,很多商業邏輯已經不可考,只能從程式碼中找尋蛛絲馬跡。不過,有些資料的欄位來自於程式碼,但更多來自於一組極其複雜的動態資料表設計。我們除了從現有的頁面上進行新系統設計外,有時候還會意外的多出幾個莫名的欄位,因此對於資料模型類別的規劃變的異常困難。本篇文章我將分享一種罕見的 Json.NET 資料序列化技巧,幫助你可以做到動態的 JSON 資料回應格式,同時又能保有強型別的設計。

... 繼續閱讀 ...

如何正確的授權 Azure SQL Database 資料庫權限給開發人員

我們公司許多開發測試用的資料庫都直接使用開在 Azure SQL Database 中,然而如果錯誤的授權可能會導致權限過大,甚至有可能刪除資料庫本身。本篇文章我打算分享幾個建立 SQL Server 登入與資料庫使用者的過程,幫助管理者更加正確的授權給開發人員與應用程式。

... 繼續閱讀 ...

Docker Desktop for Windows 啟動的容器無法透過遠端連接的靈異事件簿

今天因為要維護一個 11 年前完工的專案,特別把當時的 VM 還原到 Hyper-V 裡面執行,而 SQL Server 的部分我就打算直接跑在容器中。因為我的 VM 跑在 External network 網路下,所以等同於是區域網路的另一台電腦要連到我的 SQL Server on Linux 容器。照理說這應該只是個很簡單的問題,但是我的 VM 就是怎樣也連不到我這台電腦的 SQL Server 容器,網路就是打不通!最後搞了一整個上午,才真正釐清真相!

... 繼續閱讀 ...

使用 Json.NET 與 QuickType 搭配字串轉 Enum 的絕佳解決方案

我每次需要呼叫遠端 Web API 的時候,都會盡量使用強型別的方式建立模型類別,但我基本上都不自己寫 Code,而是透過工具從 JSON 直接轉成模型類別。雖然說方便歸方便,但難免還是會遇到惱人的地雷,今天這篇文章描述問題的份量會比解決方案來的多,請大家一步一步的看下去,就可以理解整個來龍去脈。

... 繼續閱讀 ...

如何正確使用 Azure Pipelines 內建的 FTP Upload Task 上傳與刪除檔案

這幾天在 Review 公司內一個 ASP.NET Core 專案的 Azure Pipelines,我發現網站是透過 FTP 進行更新的。然而自動化部署的過程,則是先上傳一個 app_offline.htm 檔案,然後在部署成功後刪除 app_offline.htm 檔案。也因為這個專案,我發現了一些 Azure Pipelines 內建的 FTP Upload task (FtpUpload@2) 有些魔鬼般的細節,實測之後發現有太多地雷,便花了點時間研究一下。

... 繼續閱讀 ...

如何正確地發行 ASP.NET Core 網站到遠端 IIS 站台

我們最近有專案需要發行一個用 ASP.NET Core 5 開發的網站,有經驗的人應該知道,當網站正在執行時,尤其是 Windows 作業系統,過程中所有 *.dll 檔案都會被鎖定,無法成功覆蓋檔案,以致於自動部署失敗。今天這篇文章我打算來分享幾個常見的作法,以及我認為最好的作法。

... 繼續閱讀 ...