C# 8.0 引入了一個 Async Streams (非同步串流) 的語言特性,這個特性讓我們可以做到許多以前做不到的事,若用在 ASP.NET Core Web API 上面,你就可以很輕鬆的實現 API 資料串流功能,讓你可以透過「非同步」的方式有效率的處理大量資料。由於這個概念太過前衛,所以我們先從基本的語法開始,然後再來看看如何應用在 ASP.NET Core Web API 上面。
... 繼續閱讀 ...
其實我大部分時間都在 Visual Studio Code 裡面做開發,久而久之就生疏了 Visual Studio 2022 裡面的各種選項設定,有很多都是近幾年才有的新功能,而有些「預設值」確實不太好用,只要沒特別去研究,就不知道原來只要微調一下就會變的非常方便。這篇文章我就來整理一下 Visual Studio 2022 在開發 ASP.NET Core 時相關的那些重要設定。
... 繼續閱讀 ...
當我在研究 ASP.NET Core 的 Response compression (回應壓縮) middleware 時,發現了 ASP.NET Core 內建支援各種 MIME Types 的相關支援,這篇文章我大致整理一下幾個常見的用法。
... 繼續閱讀 ...
這應該算是 .NET Core 的歷史包袱吧,任何軟體都一樣,沒有人可以預料未來的需求,所以當初設計的時候,多多少少一定會遇到一些不合理的地方。然而,因為當年 .NET Core 算是有承諾「絕對不會」有破壞性的 API 變更,所以一些早期設計不當的 API 全部都留下來了,也因為這樣,.NET 就需要設計一些新的 API 來取代「包裹」舊的 API,雖然會帶來一些困擾,但是只對老人困擾而已,對新人來說,這些都是「新」的 API,所以不會有任何問題。這篇文章我要來介紹 .NET 7 / 8 通常該如何初始化應用程式,以及跟舊版有什麼不一樣的地方。
... 繼續閱讀 ...
我們在建置 .NET 專案時,有許多可自訂的建置操作是由 MSBuild 的屬性(Properties)所控制的。重要的是要知道如何以及在哪裡設定屬性值,以達到期望的效果。一般來說,你可以在執行 msbuild.exe
命令列工具的時候指定屬性值,也可以在專案檔(*.csproj
)中加入屬性設定,也可以在專案目錄中加入 Directory.Build.props
屬性定義檔。今天這篇文章,我就打算來介紹這個 Directory.Build.props
檔案的用法,以簡化我們方案中各專案的設定。
... 繼續閱讀 ...
我有個客戶的網站最近剛上線,在設定 CSP (Content Security Policy) 標頭的時候,因為我設定了 unsafe-inline
的關係,所以導致 Google Analytics (GA) 的程式無法執行,但 GA 網站提供的程式碼就是用 Inline Script (內嵌腳本) 怎麼辦呢?這篇文章我就來告訴你解決方案。
... 繼續閱讀 ...
我最近在嘗試使用 GitHub Copilot 來撰寫單元測試,而在使用的過程中,我發現 Visual Studio Code 的測試總管 (Test Explorer) 竟然抓不到我專案中的測試案例,研究了一下才發現是 .NET Core Test Explorer 沒有正確設定導致的。不過,其實 C# Dev Kit 擴充套件本來就內建了 C# 的測試轉接器 (Test Adapter),不需要 .NET Core Test Explorer
就能跑,索性我就把套件刪除了。今天這篇文章我就來分享如何設定讓 C# Dev Kit
能夠正確的啟用測試總管 (Test Explorer),方便我們執行單元測試。
... 繼續閱讀 ...
最近我們公司有一個新的網站即將上線,在做資安檢核的時候發現網站有回應一個 X-Powered-By
標頭,一般來說我們都會透過修改 Web.config
的方式移除這個標頭,但我希望這個動作可以在 CI/CD 的時候自動完成,而不是每次都手動調整 Web.config
設定檔。我之前在 如何透過 dotnet publish 調整 ASP․NET Core 部署到 IIS 的 Web.config 內容 文章中已經介紹了許多 ASP.NET Core 發行到 IIS 的設定技巧,今天我想來做出一點補充,讓我們可以在透過 dotnet publish
發行網站時調整 Web.config
的任意設定內容。
... 繼續閱讀 ...
我們公司這幾年由於專案大多都是前後端分離的架構,所以很少用 ASP.NET Core MVC 來開發網站,但最近公司有個專案用到 ASP.NET Core MVC 框架,看到了一段 Code 覺得很陌生,所以就研究了一下,這才發現 ASP.NET Core MVC 在處理 HtmlEncode 的時候,預設的編碼範圍跟 ASP.NET MVC 有些不同,這篇文章就來記錄一下這些技術細節。
... 繼續閱讀 ...