[廚餘回收] 在 ASP.NET Core 中誤用 async void 竟引發了 502(Bad Gateway)

這個是我最近處理的一個問題,使用者回報網站某個功能壞了,而且發現最近時不時網站會顯示 502(Bad Gateway)的畫面,雖然多重新整理幾次它就好了,但是這並不正常,我隨即捲起袖子開始一系列的追查動作,誓言一定要將兇手緝捕歸案。

...繼續閱讀 »

[小菜一碟] 如何在 ASP.NET Core MVC 的 View 中單獨取得含有檔案版本雜湊值的檔案路徑?

在開發網頁程式我們最害怕的場景其中之一,就是我們的靜態檔案(*.js、*.css、*.png、...)後端已經更新了,但是在前端看到的依然是舊的版本,這個問題在 ASP.NET Core 我們可以透過一個 asp-append-version 的 TagHelper 來解決,它會自動地根據靜態檔案的內容產生一個含有雜湊值版本的網址,如果我們不透過 TagHelper 也想取得這樣的網址,我們要怎麼弄?

...繼續閱讀 »

[料理佳餚] 用 Playwright 來為我們的網頁做自動化的端到端測試

Playwright 是由微軟開源專案開發維護類似像 SeleniumPuppeteerCypress 的 WebDriver,它主打的是測試,目前支援三大瀏覽器家族 Google Chrome / Microsoft Edge(with Chromium)、Apple Safari(with WebKit)、Mozilla Firefox,而且提供對測試友善的 API,讓測試人員在撰寫測試腳本的時候,可以更關注在 UI 的操作流程上,有需要對網頁進行自動化端到端測試的朋友,真的要試一下。

...繼續閱讀 »

[小菜一碟] Visual Studio 2019 16.11 版本的一個大亮點 - .NET Hot Reload

今年(2021 年)5 月的時候 .NET Blog 發佈了一篇文章 - Introducing the .NET Hot Reload experience for editing code at runtime,在介紹 Visual Studio 2019 16.11 的新功能 - .NET Hot Reload,當時 Visual Studio 2019 16.11 還在 Preview 1,最近終於正式更新了,我立即將 Visual Studio 2019 更新到 16.11 來體驗一下。

...繼續閱讀 »

[廚餘回收] Visual Studio 2017 的目標 Framework 不見 .NET Standard 2.0

.NET Standard 2.0 算是目前在 .NET 生態系裡面,如果要開發類別庫的話,在新穎跟通用之間取得平衡之下,大家折衷過後比較會選擇的版本,這一天我打開 Visual Studio 2017 要維護以前開發的一個 .NET Standard 2.0 專案,突然發現「目標 Framework」不見 .NET Standard 2.0 的蹤影。

...繼續閱讀 »

[料理佳餚] 藉由 Akka.NET 來認識一個打動圖靈獎得主的程式設計模型 - Actor Model

經典之所以是經典,是因為歷久不衰!Actor Model - 一個將近 50 年前的理論,不僅圖靈獎得主為它背書,Twitter、Microsoft 以它為理論基礎實踐自己的應用,DDD 大神 Vaughn Vernon 還為了它寫一本書。

感謝 Will 保哥的技術交流中心 的邀請,讓我有機會在這次的直播當中,對 Akka.NET 這個框架能有更多的著墨,沒想到講了快 2 個小時,底下是這次直播的內容,如果大家對 Akka.NET 有興趣,或者是有應用上的問題,都可以透過粉絲專頁的訊息,或是部落格的留言跟我聯絡。

...繼續閱讀 »

[料理佳餚] 在 ASP.NET Core MVC 自訂 HTTP 狀態碼頁面

商業網站通常都會自訂自己的 HTTP 狀態碼頁面,先前有寫兩篇文章介紹在 ASP.NET MVC 如何來做這件事?

現在環境換到了 ASP.NET Core,我們來看一下怎麼處理自訂 HTTP 狀態碼頁面?

...繼續閱讀 »