使用 .NET 5 開起來的專案,預設就能使用 C# 9 的語法,那麼 .NET 5 以前的 .NET Core 2/3、.NET Framework 4.x 專案是不是就不能用 C# 9 的語法? 非也非也,只要調整幾個小地方,.NET 5 之前的專案一樣可以使用 C# 9 的語法。
[小菜一碟] C# 9 對 Immutable(不可變)物件有了更好的支援
在先前的 Akka.NET 直播中有提到一個原則「訊息(Message)是不可變的」,剛好 C# 9 的新語法 init 跟 record,可以輔助我們更方便地建立不可變物件,我們就來一起看一下這兩個新語法怎麼使用?
[料理佳餚] 藉由 Akka.NET 來認識一個打動圖靈獎得主的程式設計模型 - Actor Model
經典之所以是經典,是因為歷久不衰!Actor Model - 一個將近 50 年前的理論,不僅圖靈獎得主為它背書,Twitter、Microsoft 以它為理論基礎實踐自己的應用,DDD 大神 Vaughn Vernon 還為了它寫一本書。
感謝 Will 保哥的技術交流中心 的邀請,讓我有機會在這次的直播當中,對 Akka.NET 這個框架能有更多的著墨,沒想到講了快 2 個小時,底下是這次直播的內容,如果大家對 Akka.NET 有興趣,或者是有應用上的問題,都可以透過粉絲專頁的訊息,或是部落格的留言跟我聯絡。
[小菜一碟] 在 JavaScript 依照 Resolve 的順序處理 Promise
- 542
- 0
- JavaScript
在 JavaScript 的 Promise API 中,要處理一個 Promise 的集合,有 Promise.all()、Promise.any()、…等等,可是這些 API 要嘛要等全部的 Promise 都完成了,要嘛是任一個,而且只有一個 Promise 完成了,才能串接後續的處理,沒有那種依照完成的先後順序一個接一個串接後續處理的 API,不過沒關係,利用 Promise 的特性,我們也是能做到類似的效果。
[小菜一碟] ASP.NET Core 及 Nginx 如何在一個服務上監聽多個 Port?
- 1538
- 0
- ASP.NET Core
先前有一篇文章在講 Linux 上 Port 被用光了,導致系統無法使用的問題,其中一個解決的方法是「增加服務的 Listen Port
」,我們的服務是用 ASP.NET Core 開發的,而 Nginx 則是當 Reverse Proxy 擋在前面,我們就來看一下 ASP.NET Core 及 Nginx 怎麼監聽多個 Port?
[廚餘回收] Cloudflare 不時吐 502(Bad Gateway),追查發現是 Nginx 發生了「99: Cannot assign requested address」的錯誤。
前幾天,公司的網站在尖鋒時刻,不時會從 Cloudflare 吐出 502(Bad Gateway),查看 Web 伺服器、DB 伺服器的 CPU、記憶體全都沒有過載的情況,把調查對象轉往 Nginx
,從錯誤日誌當中看到了下面這個錯誤訊息:
99: Cannot assign requested address
[小菜一碟] 在 ASP.NET Core MVC 自訂 ExceptionHandler
- 1115
- 0
- ASP.NET Core
ASP.NET Core MVC 預設的 ExceptionHandler 是幫我們導到 /Home/Error
,稍嫌陽春了一點,如果我們要在 Exception 發生時,記錄下額外的資訊,會需要自訂 ExceptionHandler,這個不難,我們來看一下怎麼做?
[料理佳餚] 在 ASP.NET Core MVC 自訂 HTTP 狀態碼頁面
- 839
- 0
- ASP.NET Core
商業網站通常都會自訂自己的 HTTP 狀態碼頁面,先前有寫兩篇文章介紹在 ASP.NET MVC 如何來做這件事?
現在環境換到了 ASP.NET Core,我們來看一下怎麼處理自訂 HTTP 狀態碼頁面?
[廚餘回收] 只是要裝個 Cloud Monitoring agent 到 CentOS 7 上也會踩到雷
GCP(Google Cloud Platform)預設是不會幫我們監控 VM 的記憶體使用率
及磁碟空間使用率
,需要在 VM 裡面多安裝 Cloud Monitoring agent
才看得到,我的 VM 作業系統是 CentOS 7.9,照著官方文件一步一步弄,最終我得到了一個錯誤訊息:
https://packages.cloud.google.com/yum/repos/google-cloud-monitoring-el7-x86_64/repodata/repomd.xml: [Errno -1] repomd.xml signature could not be verified for google-cloud-monitoring'.
[廚餘回收] iOS 與 Android 對於已快取的 Request 處理方式不一樣
以前聽過有個笑話是這樣說的:
某A:聽說 iOS 在瀏覽網頁的時候很省電
某B:對,因為它什麼事都沒做。
原來這件事是真的,根據 RFC 7234 5.2.1.4 的定義,如果我們在發送 Request 的時候,加上 cache-control: no-cache
,在沒有從伺服器成功取得內容之前,不得使用已儲存的快取來滿足目前的 Request,但是 iOS 它連 Request 都沒送,自然就不需要理會這個定義。