The Will Will Web

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

如何在 ASP.NET Core 9 加入 Swagger UI 介面

微軟從 ASP.NET Core 9 開始正式支援 OpenAPI 規格,並推出 Microsoft.AspNetCore.OpenApi NuGet 套件,在建立 ASP.NET Core Web API 專案時,預設就會加入可以產生 OpenAI 規格的端點。不過,對許多開發人員來說,常用的 Swagger UI 介面卻不見了。今天這篇文章我就來說說怎樣把 Swagger UI 加回專案中。

... 繼續閱讀 ...

使用 C# 8.0 Async Streams 實現非同步串流 ASP.NET Core Web API

C# 8.0 引入了一個 Async Streams (非同步串流) 的語言特性,這個特性讓我們可以做到許多以前做不到的事,若用在 ASP.NET Core Web API 上面,你就可以很輕鬆的實現 API 資料串流功能,讓你可以透過「非同步」的方式有效率的處理大量資料。由於這個概念太過前衛,所以我們先從基本的語法開始,然後再來看看如何應用在 ASP.NET Core Web API 上面。

... 繼續閱讀 ...

從 .NET 7 開始就不鼓勵使用 .NET Generic Host 建立應用程式

這應該算是 .NET Core 的歷史包袱吧,任何軟體都一樣,沒有人可以預料未來的需求,所以當初設計的時候,多多少少一定會遇到一些不合理的地方。然而,因為當年 .NET Core 算是有承諾「絕對不會」有破壞性的 API 變更,所以一些早期設計不當的 API 全部都留下來了,也因為這樣,.NET 就需要設計一些新的 API 來取代「包裹」舊的 API,雖然會帶來一些困擾,但是只對老人困擾而已,對新人來說,這些都是「新」的 API,所以不會有任何問題。這篇文章我要來介紹 .NET 7 / 8 通常該如何初始化應用程式,以及跟舊版有什麼不一樣的地方。

... 繼續閱讀 ...

ASP.NET Core Web API 遭遇 No route matches the supplied values 的問題

在開發 ASP․NET Core Web API 的 [HttpPost] 動作方法用來建立資料時,我們可以使用 CreatedAtActionCreatedAtRoute 來回應訊息,但是可能會遇到 No route matches the supplied values 的問題,這篇文章我來說說問題發生的原因與解決方案。

... 繼續閱讀 ...

.NET 6.0 如何使用 Serilog 對應用程式事件進行結構化紀錄

Serilog 是我在撰寫 .NET 應用程式時唯一推薦的 Logging 工具,基本上 Serilog 的 NuGet 套件支援 .NET Framework 4.5+ 與 .NET Core 1.0+ 版本,相容性非常高。這篇文章我打算說明在 .NET 6 完整設定 Serilog 的過程,以及在不同情境下的注意事項。

... 繼續閱讀 ...

如何在 ASP.NET Web API 套用 ELMAH 錯誤紀錄模組 (2021 年版)

之前寫過好幾篇跟 ELMAH 相關的文章,其中 如何在 ASP.NET MVC 4 套用 ELMAH 錯誤紀錄模組 這篇還沒有過時,但剛在看 如何在 ASP.NET Web API 套用 ELMAH 錯誤紀錄模組 這篇文章時發現,現在有更簡單的設定方法,所以特別撰文分享心得。

... 繼續閱讀 ...

如何正確建置 ASP.NET MVC 5 原始碼並對原始碼進行分析研究

上次寫這個主題已經是 2009/2/8 的事情了,原來我已經用 ASP.NET MVC 寫了超過 12 年。時至今日 ASP.NET MVC 5 已經非常穩定,而且微軟還有團隊在維護這套框架,但不會增加新功能,只會修正社群回報的 Bug 而已。由於最近正在進行 ASP.NET MVC 5 開發實戰課程,我也非常建議學員可以下載原始碼回來研究,所以這篇文章我將說明下載原始碼編譯的幾個重要步驟。

... 繼續閱讀 ...

使用 .NET CLI 的 dotnet openapi 快速建立 Web API 用戶端函式庫的方法

在 Visual Studio 2019 裡面使用含有 OpenAPI 規格的 Web API 已經是十分便利,只要規格寫的好,Web API 用戶端函式庫只要一秒鐘就可以產生。但其實這些好用的功能背後都是靠 MSBuild 與 NSwag 做到,今天花了一整天把所有技術細節釐清,釐清之後對這整套作法是如此的豁然開朗,感覺很棒。這篇文章我就來寫寫今日的研究心得!

... 繼續閱讀 ...

如何使用 .NET CLI 快速產生 ASP․NET Core 的 Controllers 與 Views 程式碼

我們在 Visual Studio 2019 開發 ASP․NET Core 的時候,都可以透過 [加入] / [控制器] 的方式,很便利的快速產生 Controllers 與 Views 程式碼,如果已經有現成的 Models 模型類別存在,還能快速的完成 CRUD 等實作。可惜在 Visual Studio Code 裡面,似乎就沒有相對應的工具可用,這對使用 macOS 或 Linux 的開發者來說,就顯得有點不太方便。不過,微軟官方其實有提供一套 dotnet-aspnet-codegenerator .NET CLI 全域工具,所做的事情跟 Visual Studio 2019 在做的事情完全一樣,本篇文章就來說說這套工具的用法,以及常見的地雷與注意事項。

... 繼續閱讀 ...