The Will Will Web

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

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

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

... 繼續閱讀 ...

如何啟用 ASP.NET Core 6.0 部署到 IIS 的陰影複製 (Shadow-copying) 功能

ASP.NET Core 可以部署至 IIS 網站伺服器,但一直以來都有一個毛病,那就是 ASP.NET Core 網站在運行的過程中,許多 *.dll 檔案會被鎖定,導致這些檔案無法順利更新,必須暫時關閉應用程式集區才能順利對網站進行部署。從 ASP.NET Core 6.0 開始,ASP.NET Core Module 包含了一項實驗性功能名叫 陰影複製(Shadow-copying),這個功能可以徹底解決網站運行中無法部署程式的問題。

... 繼續閱讀 ...

體驗全新 ASP.NET Core 6.0 專案範本與 C# 10 語言特性

我的 ASP.NET Core 6 開發實戰:從入門到進階 課程將在 2021/11/13 開始,就在 .NET 6.0 推出後 4 天。由於 .NET 6.0 與 C# 10 即將推出,全新的 Top-level statements 語言特性,可以大幅簡化 .NET 應用程式的啟動程式碼,這個變化自然也會影響到 ASP.NET Core 6.0 的啟動方式,許多 .NET Core 的老手看到全新的 Hosting Model (裝載模型) 可能會非常不適應,這篇文章主要用來解決大家的疑惑。

... 繼續閱讀 ...

如何在本機使用 Dapr 進行微服務應用程式開發

最近花了點時間在玩 Dapr 這套非常優異的開發工具,當你想要開發分散式應用程式或想實現微服務架構,都可以深入瞭解看看,保證不虛此行。本篇文章我打算分享如何在本機使用 Dapr 開發微服務分散式應用程式,幫助大家更容易的上手這套分散式應用開發工具!👍

... 繼續閱讀 ...

啟用 Razor 執行階段編譯 (Enable Razor runtime compilation) 技術細節探索

其實我們這幾年幾乎都在用前後端分離的架構在開發網站,單純使用 ASP.NET Core MVC 的機會並不多,但是我知道很多人還是在用 MVC 在維護網站,而且 ASP.NET Core 預設會將所有 Razor 頁面 (Views) 編譯成 DLL 檔,網站啟動之後如果要修改 View 的內容,還需要重新編譯專案才能測試到新的結果,非常不方便。如果要啟用所謂的 Razor 執行階段編譯 (Razor runtime compilation) 就要對專案做出一點設定,但是網路上能查到的文件都沒有對技術細節講的足夠深入,所以我也花了一些時間探索了許多技術細節,打算在這篇文章呈現。

... 繼續閱讀 ...

如何在 Linux 正確建立自簽憑證並讓 ASP.NET Core 網站可以順利進行連線

我最近漸漸的嘗試將各種前後端開發環境搬遷到 Linux 環境下,無論是在 WSL 或是原生的 Linux 的效能表現都比 Windows 來的出色。然而在微服務架構下,服務與服務間的通訊經常需要使用 TLS/SSL 憑證進行加密連線,但是自簽憑證在 Linux 底下預設是不受信任的,必須特別處理才能解決服務間的安全連線的信任問題。這篇文章我將說明這個過程與解決方法。

... 繼續閱讀 ...

使用 Tye 開發工具便利的開發微服務應用程式並部署到 Kubernetes 叢集

微服務是近期相當熱門的主題之一,而在 .NET 領域中,微軟也投入了不少資源進行研究,也推出了許多鮮為人知的好用工具,這篇文章我將介紹 Tye 這兩套微服務開發工具,讓你知道原來用 .NET 開發微服務也可以這麼簡單。

... 繼續閱讀 ...

介紹幾個 .NET SDK、.NET CLI 與 .NET runtime 執行時的好用環境變數總整理

我在 Environment variables used by .NET SDK, .NET CLI, and .NET runtime 這篇文章中看到幾個很有機會用到的環境變數設定,有些在容器中常用,有些在 CI 的時候常用,我覺得先整理起來,以後有機會就可以用上!

... 繼續閱讀 ...

使用 MSBuild 建置方案檔(sln)與建置專案檔(csproj)的陷阱與注意事項

我一年大概都會幫幾家企業導入 Azure DevOps Server 平台,最近幫客戶導入的過程遇到了一個難題。一個方案檔中有 9 個專案,其中有 4 個 .NET Framework 4.7.2 類別庫專案、1 個 .NET Framework 4.7.2 的 ASP.NET Web Forms 專案、2 個 .NET Core 2.1 類別庫專案、1 個 .NET Standard 2.0 專案、2 個 .NET Core 2.1 類別庫專案、1 個 .NET Core 2.1 的 ASP.NET Core 專案。很少看到一個案子用這麼混搭的技術,而這個案子要做 CI/CD 確實也遇到了問題。這篇文章我將說明問題與解決方法!

... 繼續閱讀 ...