The Will Will Web

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

如何在 ASP.NET Core 漂亮的建立 Query String 查詢字串

我們在建立含有 Query String 的網址時,若是用字串串接的方式來實作,程式碼會相對的比較醜一點。從 ASP.NET Core 1.0 開始,就有好幾個專門用來建立 Query String 的類別,這些類別不但可以提升程式碼的可讀性,所有的 Query String 也都會進行必要的 URL Encode 動作,讓你的網址更符合國際標準,建議可以多加利用。

... 繼續閱讀 ...

在 Angular 專案中 RxJS 實現 Unsubscribe 取消訂閱的四種常見方法

RxJS 可以將所有 Observable 物件簡單區分成兩種不同類型的,一種是有限事件數量的 Observable 物件,例如 HttpClient 相關 API 在訂閱之後就只會有一筆資料回來,這種類型的 Observable 在訂閱之後是不需要特別取消訂閱的。另一種則是無限事件數量的 Observable 物件,像是 DOM 的事件訂閱,或是使用 RxJS 的 timer 建立運算子(Creation Operators),或是你在元件中訂閱 Router.events 等等,這些 Observable 都沒有結束的一天,因此需要實作取消訂閱(Unsubscribe),否則就可能會導致記憶體洩漏等問題。這篇文章我將分享四種不同的 RxJS 取消訂閱方法。

... 繼續閱讀 ...

修復 Visual Studio 中 ASP.NET MVC 5 專案範本的 Error.cshtml 檔案內容

從 Visual Studio 2017 一直到 Visual Studio 2022 的 ASP.NET MVC 5 專案範本,其 /Views/Shared/Error.cshtml 檢視 (View) 檔案內容都是錯誤的。之前在講授 ASP.NET MVC 5 課程的時候,每次都要自己 Google 以下這個檔案的完整範例,或是去翻找我之前寫過的版本。今天這篇文章特別將該檔案的問題做個說明,並且提供完整的範例程式,方便我日後快速查找到正確的 Error View 檔案內容。

... 繼續閱讀 ...

如何在 Windows Server 2022 使用 containerd 執行 Windows Containers

其實 Windows Containers 都是以 Windows Server 為基礎的 base image 來運行的,但從 2021 年 9 月微軟發佈了 Updates to the Windows Container Runtime support 文章,預告了未來將不再使用 DockerMsftProvider API 來安裝 Docker EE (企業版) 軟體,之後預計會全部移轉到開源的 containerdMoby 或即將轉付費方案的 Mirantis Container Runtime 等等。這幾天我就想說來研究一下如何用 containerd 來執行 Windows Container,結果根本就是在玩踩地雷,我研究了足足三天才搞定完整可成功運行 Windows Containers 的 containerd 容器環境!這篇文章我將分享我在 Windows Server 2022 實作的完整過程。

... 繼續閱讀 ...

在 VMWare Tanzu Community Edition 架設 Argo CD 服務的安裝筆記

昨天有人推薦我 Argo CD 這套 Kubernetes 的持續部署神器,今天我在 Tanzu 嘗試架設 Argo CD 起來,確實非常容易上手,相當不錯!這套 Argo CD 除了可以輕鬆的幫你實現 GitOps 流程,其 Web UI 的視覺化設計是個亮點,他可以幫助你更清晰的看懂應用程式的部署狀態,我覺得介面非常友善。這篇文章我特別記錄一下安裝與設定步驟。

... 繼續閱讀 ...

如何有效清空 PowerShell 中 PSReadline 的所有歷史紀錄

我的 如何打造一個華麗又實用的 PowerShell 命令輸入環境 文章 (影片在此) 幫助了不少人調整他手中的 PowerShell 命令列環境,其中有個功能是在打字的時候可以提示你先前打過的所有命令,非常方便且實用。但上周有同事問了我一個問題,他曾經在 PowerShell 中輸入過一些敏感資料,但是又找不到清除歷史紀錄的方法,問我該怎麼辦才好。這篇文章我將分享解決之道!

... 繼續閱讀 ...

LINQPad 如何多機共用 Queries、Snippets 與 Plugins and Extensions 資料夾

LINQPad 有三個資料夾,預設放在使用者目錄的「我的文件」目錄下(~/Documents),分別是 LINQPad Plugins, LINQPad Queries, LINQPad Snippets 這三個。為了讓我的筆電與家中電腦可以同步這些資料,我特別將這幾個資料夾移至 Dropbox 共享資料夾中,然後透過 Symbolic Link 連結回去,如此一來我就不用特別調整 LINQPad 設定,我只要調整每台電腦的資料夾與連結設定,就可以很方便的讀取到同步後的 LINQPad 完整設定與資料。

... 繼續閱讀 ...