.NET

[长期更新]博客版本日志

软件名称:BlogPlatform 更新版本:Version: 1.0.1.191226_beta 更新日期:2019年12月26日 更新日志:修复了strong标签无法加粗的问题。修改了 ...

2019-12-25 19:58:32 | 2k reads

在 .NET 8 Blazor Web App 中攔截所有內部導航並平滑捲動到頂端

在 .NET 8 的 Blazor Web App(Hybrid 模式)中,當你在文章內容裡大量使用原生 <a href="…"> 連結時,點擊後往往只會做「局部刷新」,導致頁面內容更新但瀏覽器捲軸位置依然停留在原地,使用者體驗大打折扣。本文將示範如何在宿主頁面(App.razor)中,注入一段小小的 JavaScript 補丁,攔截所有內部路由並統一「平滑捲動到頂端」 ...

2025-04-25 04:24:13 | 2 reads

Blazor Server 中忘記 @implements IAsyncDisposable 帶來的隱性災難

在 Blazor Server 專案中,使用 DbContext 是家常便飯,但你是否知道——即使你明明寫了 DisposeAsync(),它卻從未被呼叫過?本篇文章將揭露一個許多 Blazor 開發者容易忽略的細節:如果不加上 @implements IAsyncDisposable,Blazor 將無法正確釋放資源。這個小疏忽可能導致資料庫連線耗盡、記憶體飆高,甚至讓你的應用卡死。本文將透過實例對比與修正建議,幫助你徹底理解這個問題,並建立正確的資源管理習慣 ...

2025-04-19 23:04:53 | 3 reads

Blazor Server 長時間運行 CPU 飆升到 99%?你可能忽略了這些細節

主題:Blazor Server 長時間運行導致 CPU 飆升的根本原因與解法。 在使用 Blazor Server 架構開發網站時,我發現一個非常詭異的現象 ...

2025-04-18 02:37:49 | 3 reads

用 Blazor Server 開發內容網站時,我為什麼不強求 HTTP 404

在用 Blazor Server 建立自己的內容網站時,我曾經面臨一個看似簡單、實際卻頗為麻煩的問題:當使用者請求一篇不存在的文章時,我該怎麼處理? 一般來說,網站都會回傳 404 Not Found 狀態碼,讓使用者與搜尋引擎都清楚這個資源不存在。但在 Blazor Server 中,事情沒有這麼簡單 ...

2025-04-06 18:49:53 | 5 reads

為什麼32位的DLL能運行在64位的EXE?深入解析.NET DLL與Win32 DLL的差異

在開發過程中,遇到DLL加載問題並不罕見。許多開發者認為32位的DLL只能在32位應用程式中運作,但有時你會發現,明明檢查顯示DLL是32位的,卻能在64位的EXE中正常運作。這究竟是為什麼?本文將帶你了解背後的原因,並介紹如何使用各種工具檢查與確認DLL的真實狀況 ...

2025-03-18 02:14:25 | 3 reads

什麼是 dotnet ef migrations script?

在使用 Entity Framework Core(EF Core)進行數據庫管理時,我們經常需要更新數據庫的結構,而 dotnet ef migrations script 是一個非常實用的命令,專門用來生成 SQL 腳本。這篇文章將簡要介紹它的功能及常見使用場景。 什麼時候需要用到 dotnet ef migrations script? 當你需要把 ...

2025-01-28 08:22:30 | 17 reads

Entity Framework Core Code First 使用 MySQL 的常用命令總結

​以下是使用 Entity Framework Core Code First 搭配 MySQL 時最常用的命令彙總,幫助您快速掌握如何操作遷移和數據庫。 1. 創建遷移文件 用於生成遷移(Migration)文件,描述數據庫的結構變化。 Package Manager Console: Add-Migration [遷移名稱] 範例: Add-Migration InitialCreate .NET CLI: dotnet ef migrations add [遷移名稱] 範例: dotnet ef migrations add InitialCreate 2. 應用遷移到數據庫 將遷移應用到 ...

2025-01-28 08:08:19 | 4 reads

C# DbContext 的兩種寫法

在 .NET 和 Entity Framework Core 應用中,DbContext 有兩種常見的實現方式:標準構造函數與記錄型構造函數 (Primary Constructor)。以下是它們的比較與選擇建議 ...

2025-01-20 08:12:16 | 66 reads

如何在 Blazor 應用中檢測裝置類型(如行動裝置或桌面裝置)

發現在代網頁應用程式時,根據使用者的裝置類型(如行動裝置或桌面裝置)來調整使用者體驗是一個常見的需求。本文將教大家如何在 Blazor Server 中使用 IHttpContextAccessor 來檢測使用者的裝置類型,並根據檢測結果提供不同的呈現方式 ...

2025-01-19 06:40:26 | 74 reads

一個簡單的 SignalR Hub 示例

下面是一個簡單的 SignalR Hub 示例,包括服務器端和客戶端的基本配置與使用說明。 1. 服務器端 a. 建立 Hub 類別 首先,在 v2knowBlazor(Server)專案中新增一個 SignalR Hub 類別,例如 ChatHub.cs ...

2025-01-17 00:03:41 | 81 reads

.NET 8 混合 Blazor 應用:如何由 Server Host 客戶端

在 .NET 8 混合 Blazor Web App 模式下,你的解決方案通常包含兩個專案:一個伺服器專案(例如 v2knowBlazor)和一個客戶端專案(例如 v2knowBlazor.Client)。在這個架構中,實際運行應用程序的是伺服器專案,它同時負責 host 和提供客戶端的 Blazor WASM 應用 ...

2025-01-16 07:51:40 | 86 reads

Blazor 元件之間的傳值方式極簡總結

Blazor 中的數據傳遞主要通過以下方式:父組件向子組件傳遞參數:<ChildComponent Parameter="Value" />。 子組件向父組件通知事件:使用 EventCallback。 雙向數據綁定:通過 bind-。 多層嵌套數據共享: 全局數據:依賴注入 (DI)。 層級數據:Cascading Parameters ...

2025-01-16 07:22:36 | 83 reads

解釋「生命周期」的概念,以及 Singleton、Scoped 和 Transient 的含義

1. 什麼是生命周期? 在 Blazor 或 ASP.NET Core 中,服務的生命周期 指的是 一個服務實例的存活時間,也就是說: 從服務創建到釋放期間,它可以被重複使用多少次,或者被誰共享? 當我們註冊一個服務時(例如:builder.Services.AddScoped()),我們需要告訴系統: 這個服務應該存活多久 ...

2025-01-16 06:02:48 | 89 reads

如何在 Blazor Web App 中實現關閉註冊並啟用唯一授權賬號

本文介紹如何在 Blazor Web App 使用獨立賬號驗證(Identity)並關閉用戶註冊功能,同時開啟唯一授權賬號功能。以下步驟包括修改註冊頁面、為特定賬號授權,以及在數據庫中檢查授權是否生效 ...

2025-01-08 07:11:18 | 132 reads

Blazor <NavLink> 中的 Match 屬性詳解

在 Blazor 應用中,導航鏈接 <NavLink> 是一個非常常用的組件,用於實現頁面的路由導航。<NavLink> 提供了一個 Match 屬性,允許開發者控制鏈接的激活邏輯。本文將詳細解釋 Match="NavLinkMatch.All" 和 Match="NavLinkMatch.Prefix" 的區別,並提供使用場景和最佳實踐 ...

2025-01-06 06:04:32 | 137 reads

從 WinForms 到 Web:重用 App.config 的 Settings.Designer.cs 改造實踐

隨著軟件應用從桌面遷移到 Web 平台,開發者經常面臨如何在新的架構下重用現有代碼的挑戰。對於基於 WinForms 的桌面應用程序,Settings.Designer.cs 和 App.config 是一種常見的配置管理模式,然而,當這些代碼直接移植到 Wisej.NET 或 ASP.NET 的 Web 項目中時,會遇 ...

2024-12-05 08:24:08 | 289 reads

[.NET 8.0] 從零開始理解Blazor WebAssembly——_Imports.razor

在 Blazor 專案中,_Imports.razor 文件是一個共享的設定檔,主要用來集中管理 Blazor 組件中的常見命名空間和指令的引用。透過定義 @using 指令等全域性設定,所有位於該文件範圍內的 Razor 組件或頁面都可以自動引用這些命名空間和資源,無需在每個組件或頁面中重複寫入相同的引用 ...

2024-09-06 08:06:06 | 591 reads

[.NET 8.0] 從零開始理解Blazor WebAssembly——Program.cs

關鍵部分解釋 using 指令: Microsoft.AspNetCore.Components.Web 和 Microsoft.AspNetCore.Components.WebAssembly.Hosting 是 Blazor WebAssembly 專案中常用的命名空間,提供 Blazor 所需的基本功能。 BlazorApp 是專案的命名空間,這裡它包含應用程式的根組件 App ...

2024-09-06 02:45:09 | 581 reads

[.NET 8.0] 從零開始理解Blazor WebAssembly——App.razor

總結來說,這段代碼的主要作用是在Blazor應用程序中設置路由導航的行為,指定了匹配和不匹配路徑時應該渲染的組件或顯示的內容。這使得應用程序可以根據不同的URL來呈現不同的頁面,並處理未找到路由的情況 ...

2024-09-06 00:10:56 | 569 reads