.NET

📌

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

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

| | 2k reads

Blazor Server 與 CLS:Google 搜尋排名的潛在隱憂

最近我在 Google Search Console 的 Core Web Vitals 報表中,發現大量頁面被標示為「CLS 表現不佳」。這讓我開始深入探究自己的網站是否因為使用 Blazor Server 框架而導致 Cumulative Layout Shift(CLS) 分數過高,進而影響 SEO 排名 ...

| | 2 reads

手動移除 <PackageReference> 後,為什麼還要執行 dotnet restore?

在 .NET 開發中,我們常透過 NuGet 套件來引入外部功能模組。這些套件的引用是透過 .csproj 中的 <PackageReference> 來控制的。然而,當你手動編輯 .csproj、移除某些套件時,是否就已經完成了「卸載」 ...

| | 3 reads

在 Blazor 中實作 IDisposable:釋放 JavaScript 資源的重要性

在使用 Blazor 開發互動式應用時,常常會需要與 JavaScript 互通(interop)。這些互操作行為可能會註冊事件、建立全域物件或產生其他瀏覽器端資源。如果不妥善清理這些資源,就可能導致 記憶體洩漏(Memory Leak)、事件重複綁定 或 性能下降 等問題 ...

| | 2 reads

How I Unblocked a Hanging WinForms + psql Tool

Keywords: ProcessStartInfo, pipe dead-lock, stdout / stderr, -w, async I/O Background App: a custom WinForms “PgBackupRestoreTool” Check: on Connect it spawns psql -l to test the connection Stack: PostgreSQL 15 on Windows 10 Everything worked on PC-A, but on PC-B the progress bar spun forever. Manual CLI tests succeeded ...

| | 0 reads

WinForms+psql 工具卡死完整排查筆記

關鍵詞:ProcessStartInfo、管道死鎖、stdout/stderr、-w、非同步 I/O 背景 工具:自行開發的 WinForms「PgBackupRestoreTool」 功能:點擊 Connect → 呼叫 psql -l 測試連線 環境:PostgreSQL 15、Windows 10 ...

| | 1 reads

WinForms + psql 卡死排查全纪录

WinForms + psql 卡死排查全纪录 关键词:ProcessStartInfo、WaitForExit、管道缓冲区、stdout/stderr、-w、异步读取 背景 工具:自写的 WinForms “PgBackupRestoreTool” 功能:按钮点击 → 调用 psql -l 检测连接 环境:PostgreSQL 15,Windows 10 ...

| | 0 reads

✅ 撤銷 dotnet dev-certs https --trust 的方法

​ 撤銷 dotnet dev-certs https --trust 的方法 🧼 方法 1:刪除開發憑證(最乾淨) 在命令列(cmd 或 PowerShell)執行: dotnet dev-certs https --clean 這會: ❌ 刪除目前使用中的 ASP.NET Core HTTPS 憑證(包含已信任的) ✅ 相當於「清除 --trust 的後悔藥」 ✅ Visual Studio 之後啟動會問你要不要重新產生憑證 ​ ...

| | 3 reads

🧊讓 WinForms 的 DataGridView 在滾動時變得流暢:啟用 DoubleBuffered 技術

主題為「如何讓 WinForms DataGridView 在滾動時不再卡頓 —— 使用 DoubleBuffered 技術」。 WinForms 的 DataGridView 控制項雖然功能強大,但在面對大量資料、圖片或複雜格式時,滾動畫面經常會出現「卡頓」、「閃爍」的現象。這不僅影響使用者體驗,也讓介面顯得不夠專業。 幸好,透過啟用 DoubleBuffered,我們可以大幅改善這個問題,讓畫面滾動更加順暢 ...

| | 7 reads

因 DateTime.Now 而當機:EF Core 寫入 timestamptz 的致命陷阱

以下是一篇以部落格形式撰寫的技術分享,用來說明「為什麼用原生 SQL 傳入 DateTime.Now 不會出問題,但透過 Entity Framework Core(EF Core)卻會拋出 Kind=Local 到 timestamptz 的異常」,並給出三種解決方案。 EF Core 與原生 Npgsql 在 DateTime 映射上的差異 ...

| | 4 reads

我在用 Npgsql 搭配 EF Core 遇到的超大陷阱:UseSnakeCaseNamingConvention() 根本不存在!

我在使用 Npgsql.EntityFrameworkCore.PostgreSQL 搭配 Entity Framework Core 開發 PostgreSQL 專案時,想讓 KobetuCd 這類 C# 屬性自動對應資料表中的 kobetu_cd 欄位。網路上許多文章提到 .UseSnakeCaseNamingConvention(),說加上就能解決命名不對應的問題。 結果我死命找都找不到 UseSnakeCaseNamingConvention(),查了半天才發現這個方法根本不屬於 Npgsql,而是來自另外一個社群套件 ...

| | 6 reads

.NET 8 WinForms 使用 PostgreSQL + LINQ 實例教學

​ 如果你正在啟用 .NET 8 WinForms 對 PostgreSQL 執行 LINQ 操作,這篇簡明教學就是為你擾備的。 ᵀ. 安裝 NuGet 套件 打開 NuGet 套件管理器,執行: dotnet add package Npgsql.EntityFrameworkCore.PostgreSQL ᵁ. 建立 DbContext 新增 BKDbContext.cs ​ ...

| | 2 reads

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

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

| | 2 reads

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

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

| | 3 reads

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

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

| | 24 reads

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

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

| | 5 reads

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

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

| | 3 reads

什麼是 dotnet ef migrations script?

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

| | 20 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. 應用遷移到數據庫 將遷移應用到 ...

| | 4 reads

C# DbContext 的兩種寫法

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

| | 66 reads