ASP.NET Core 3 系列 - Middleware

過去 ASP.NET 中使用的 HTTP Modules 及 HTTP Handlers,在 ASP.NET Core 中已不復存在,取而代之的是 Middleware。
Middleware 除了簡化了 HTTP Modules/Handlers 的使用方式,還帶入了 Pipeline 的概念。
本篇將介紹 ASP.NET Core 3 的 Middleware 概念及用法。

過去 ASP.NET 中使用的 HTTP Modules 及 HTTP Handlers,在 ASP.NET Core 中已不復存在,取而代之的是 Middleware。
Middleware 除了簡化了 HTTP Modules/Handlers 的使用方式,還帶入了 Pipeline 的概念。
本篇將介紹 ASP.NET Core 3 的 Middleware 概念及用法。

自九月推出 .NET Core 3.0 正式版後,最近終於開始把產品從 .NET Core 2 開始升級到 .NET Core 3.0。
之前寫的 ASP.NET Core 2 系列文章 有部分內容已過時,所以將重新整理成 ASP.NET Core 3 的內容,並補充一些說明。
本篇主要介紹基本的 ASP.NET Core 3 環境準備及如何用 Visual Studio Code (VS Code) 開發 ASP.NET Core。

本篇將介紹如何透過 Coverlet + ReportGenerator 產生 .NET Core 的測試報告;
並用 Dockerfile 產生測試報告的 Docker Image,以網頁的形式查看程式碼覆蓋率。

剛剛遇到近期開發的 ASP.NET Core 站台,在本機 MacOS 環境啟動後,瀏覽器用 HTTPS 打開會顯示以下錯誤:
1 | 無法連上這個網站 |

本篇介紹在 CentOS 環境下,安裝及設定 ASP.NET Core Runtime 和 Nginx Proxy。
並將 ASP.NET Core 註冊成系統服務,便於開機後自動啟動,附上 Shell Script 寫的快速安裝腳本。

要了解程式的運作原理,要先知道程式的進入點及生命週期。
過往 ASP.NET MVC 啟動方式,是繼承 HttpApplication 做為網站開始的進入點。
ASP.NET Core 改變了網站啟動的方式,是用 Console Application 的方式,Host Kestrel,提供 HTTP 的服務。
本篇將介紹 ASP.NET Core 3 的程式生命週期 (Application Lifetime) 及捕捉 Application 停啟事件。

SonarQube 是常見的程式碼分析工具,本篇介紹如何透過 Docker 進行 .NET Core 程式碼分析;
並搭配 Coverlet 產生程式碼測試覆蓋率分析,一併傳送至 SonarQube。

已經習慣把 Log 存到 Elasticsearch(以下簡稱 ES) 再透過 Kibana 查看日誌,所以每當有新產品要上線前,都會評估 ELK 需要的硬體規格。
依照產品大小不同,儲存 Log 的資料筆數跟空間,都有很大的差異,會直接影響到 CPU、記憶體、硬碟空間等。
近期產品是上到 GCP 跟阿里雲,本篇硬體規格會以雲端服務的 Server 規格做為參考的基準。

本篇將介紹如何透過 Dockerfile 製作 ASP.NET Core 的 Docker Image。
並透過 .dockerignore 及 docker 指令參數等小技巧,讓專案目錄整理得比較乾淨。