「.NET」標籤的文章
帶有「.NET」標籤的文章共 72 篇,依發布日期由新到舊排列。
-
Time Travel Debugging ── 把長期運轉中無法重現的問題「錄下來」再倒回去
一個月才出現一次的問題,當機傾印只拍得到結果。本文說明如何用 WinDbg 的 Time Travel Debugging(TTD) 錄下執行並倒回,涵蓋 TTD.exe 的錄製設計、環形緩衝區、TTD.Calls 查詢,以及和傾印的分工。
-
引數為什麼會壞掉 ── Windows 命令列引數的規則
在 Windows 上並不存在引數的陣列,傳給 CreateProcess 的是一條字串,分割由接收端負責。本文說明 CommandLineToArgvW・CRT・.NET 的分割規則,以及 .NET 的 ArgumentList 與 C++ 中正確的組裝方式。
-
Windows 列印驅動程式停止提供 ── 業務應用程式的報表與標籤列印如何因應
Microsoft 正分階段推動 v3/v4 列印驅動程式的停止提供,從 2026 年 7 月起會優先選用 IPP 類別驅動程式。本文整理 Windows protected print mode 之下會消失哪些東西,並以判斷表梳理業務應用程式的報表、標籤列印中相依處的盤點與因應方式。
-
企業內部 Proxy 與 Windows 應用程式 ── 整理 WinINET、WinHTTP、.NET 的 Proxy 解析
瀏覽器連得上,只有業務應用程式過不了企業內部 Proxy。原因多半出在 WinINET、WinHTTP、環境變數、.NET 之中,誰讀哪一套 Proxy 設定的落差。本文整理 PAC 與 WPAD、需要驗證的 Proxy、TLS 檢查,一直到疑難排解步驟。
-
多執行緒的實務最佳實踐 .NET篇 ── 在增加執行緒之前先決定的事
針對 .NET/C# 整理能防止「建立執行緒後偶爾當機、卡死」的設計定石。內容涵蓋不自行建立執行緒而改用 Task、減少共享可變狀態、鎖的紀律、以 CancellationToken 設計停止機制,以及 UI 執行緒的處理方式。
-
在 C# 與 PowerShell 中使用 WMI/CIM ── 硬體資訊取得、處理程序監控、遠端查詢實務指南
取得 PC 序號、監控磁碟可用空間、偵測處理程序啟動,這些需求的標準答案就是 WMI/CIM。本文說明 Get-CimInstance 等 CIM Cmdlet 的用法與從舊版 Get-WmiObject 的遷移、C# 中 System.Management 與 CIM API 的取捨,並整理實際範例與陷阱。
-
Windows I/O 的深層(第 5 回) ── NTFS 的內部結構:從 MFT 理解檔案系統
本文是以圖解說明 NTFS 內部結構的系列第 5 回。從開發者視角整理 MFT 與檔案記錄、多重資料流(Zone.Identifier)、硬連結與 8.3 短檔名、重新解析點、兩種日誌,一直到稀疏與壓縮。
-
Windows I/O 的深層(第 4 回) ── 快取管理員:你的 WriteFile 究竟何時送達磁碟
本文是以圖解說明 Windows 快取管理員的系列第 4 回。整理了以檔案對應方式實作的快取、預先讀取與延遲寫入、FlushFileBuffers 與 FILE_FLAG_NO_BUFFERING 的分別使用時機,以及斷電導致資料消失的條件。
-
Windows I/O 的深層(第 3 回) ── I/O 完成埠(IOCP)與 .NET 執行緒集區:async/await 的地下室
本文是以圖解說明 I/O 完成埠(IOCP)的系列文章第 3 回。將完成佇列與執行緒數控制合而為一的設計、並行值與 LIFO 釋放、.NET 執行緒集區,直到 async/await 接續實際執行的執行緒為止,逐一整理。
-
MSMQ 還能用多久 ── 「連淘汰都稱不上」的遺留佇列遷移判斷
MSMQ 並未列入官方的淘汰清單,但 System.Messaging 只存在於 .NET Framework,會阻礙遷移到 .NET。本文以事實釐清廢除傳聞與實際現況,整理繼續使用或遷移的判斷基準,以及遷移目標的選擇方式。
-
Windows I/O 的深層(第 2 回) ── 同步 I/O 與非同步 I/O:OVERLAPPED 的真正含義
本文為以圖解說明 Windows 同步 I/O 與非同步 I/O(重疊 I/O)的系列文章第 2 回,將完整整理 FILE_FLAG_OVERLAPPED 的意義、完成通知的 4 種方式、明明是非同步卻同步完成的條件、取消的作法,直到與 .NET 的對應關係。
-
Windows I/O 的深層(第 1 回) ── 所有讀寫都會變成 IRP:I/O 系統全貌
本文是從根本解說 Windows I/O 系統的系列文章第 1 回,透過圖解整理物件管理員的命名空間、驅動程式・裝置・檔案這三種物件、IRP 的生命週期,直到 CloseHandle 幕後的機制。
-
PowerShell 呼叫 COM 與 .NET 的實戰 ── 一口氣擴大腳本能觸及的範圍
從 PowerShell 呼叫 .NET 類別的方法、透過 Add-Type 組入 C# 與 Win32 API、COM 操作、Excel 的處理程序殘留與後續處理、Office 無人執行不受支援的原因,到 5.1 與 7 的差異,皆以實務角度解說。
-
業務系統的代碼設計 ── 商品代碼・客戶代碼的訂定方式與檢查碼
商品代碼・客戶代碼等業務系統代碼體系的實務指南。有意義代碼與無意義流水號的判斷表、JAN・Luhn等檢查碼算式與C#實作、Excel的0消失對策,乃至位數溢位與遷移一次整理清楚。
-
DLL・COM 介面的向後相容性 ── 哪些變更會破壞呼叫端的判斷表
DLL 或 COM 元件的哪些變更會破壞呼叫端?本文整理二進位相容・原始碼相容・行為相容三層,依變更內容列出判斷表、COM 介面不可變的鐵則,以及 semver 的運用方式,作為實務指南彙整。
-
為業務應用程式的 DB 結構做版本管理 ── 防止「各客戶端 DB 不一致」的遷移實踐
為分散在各客戶端的業務應用程式 DB 結構做版本管理的實務指南。整理 PRAGMA user_version 與前進遷移的 C# 實作、EF Core Migrations・DbUp・自行實作的判斷表,一直到兩階段發佈。
-
WinForms / WPF 應用程式的 CI/CD 實務 ── 用 GitHub Actions 把從建置到簽章・發布全部自動化
本文整理用 GitHub Actions 為 WinForms / WPF 應用程式建置 CI/CD 的實務指南,內容涵蓋在 windows-latest 上進行建置+測試的最小 YAML、以標籤驅動的版本編號、透過 signtool 整合簽章,以及依 MSI/MSIX/ClickOnce/xcopy 分類的 C...
-
為沒有測試的遺留業務應用程式安全地動手修改 ── 特性化測試與重構的實踐
為了在沒有測試的業務應用程式上安全地進行修改,本文以 C# 為例,說明固定目前行為的特性化測試(黃金主檔法)步驟、建立接縫(seam)的方法,以及不將重構與功能新增混在一起的運用規則。
-
自行開發的 Windows 應用程式被當成病毒處理時 ── Microsoft Defender 誤判的因應方式,以及與效能影響的相處之道
整理自行開發的 Windows 應用程式被 Microsoft Defender 誤判時的正規因應方式。從現代防毒機制的原理、向 Microsoft 回報誤判、從隔離還原,到排除設定的正確做法與風險,一併解說。
-
睡眠・休眠・Modern Standby 與長時間執行的應用程式 ── 用設計預防「半夜停止運轉」
本文將從 S3 睡眠、休眠、Modern Standby 的差異出發,整理長時間執行的 Windows 應用程式「早上一看才發現已經停止」的原因,並解說睡眠期間計時器與 TCP 連線的行為,以及透過 SetThreadExecutionState 進行抑止的做法。
-
Arm 版 Windows 能執行業務應用程式嗎 ── x64 模擬(Prism)與原生 DLL・COM 的現實
本文為開發者・資訊系統部門解答「Arm 版 Windows 能執行業務應用程式嗎」這個問題,整理 x64 模擬(Prism)的運作原理、驅動程式等無法執行的層級、.NET 的 AnyCPU 與 P/Invoke 問題,以及 Arm 對應檢查清單。
-
MAX_PATH 與 Windows 路徑・檔案名稱的陷阱 ── 260 字元限制、保留名稱、結尾句點、大小寫
本文整理「找不到檔案」這類問題的常見原因──路徑與檔案名稱的限制。內容涵蓋 MAX_PATH=260 字元的組成、透過 LongPathsEnabled 啟用長路徑、CON 等保留名稱、結尾句點的正規化,直到 Path.Combine 的陷阱。
-
網路磁碟機與 UNC 路徑的陷阱 ── 業務應用程式處理檔案伺服器(共用資料夾)的實務
整理業務應用程式對共用資料夾進行輸出・監控時常見的麻煩。說明磁碟機代號(Z:)為何無法從服務中看到、各執行帳戶所需的權限、錯誤 1219,以及 FileSystemWatcher 的注意事項。
-
Windows 應用程式的工作列通知區常駐與 Toast 通知 —— NotifyIcon 的陷阱與 AppNotification 的選型
本文整理將業務用 Windows 應用程式常駐於工作列通知區,並透過 Toast 通知告知使用者的實作要點。內容涵蓋 NotifyIcon 的正確用法與「關閉後仍留在通知區」的設計、檔案總管重新啟動時的重新註冊、三種 Toast API(Windows App SDK AppNotification / Comm...
-
VB6 應用程式能用到什麼時候 ── 執行環境的支援現況與務實的 .NET 遷移做法
VB6 應用程式究竟能用到什麼時候?本文整理 VB6 執行環境的支援政策(Windows 11 也在支援範圍內)與 IDE 支援早已終止這種不對稱現況,並以實務指南的形式,說明全面重寫、自動轉換、階段性遷移的判斷表、遷移前的資產盤點、VB6 與 .NET 的不相容之處,以及 C# 與 VB.NET 的選擇。
-
業務應用程式的日本年號・國定假日・結算日處理 ── 抗改元設計與 JapaneseCalendar・營業日計算實務
報表要顯示「令和8年」、營業日計算要排除國定假日、20日結算次月底付款──日本業務應用程式特有的日期處理,背後藏著「日後會變動的規格」:改元、國定假日的法規修訂、月底的進位。本文整理以 JapaneseCalendar 顯示年號、抗改元的設計方式,國定假日不可寫死在程式碼中的原因,以及運用內閣府 CSV 建立國定...
-
WinForms/WPF 應用程式的多語言化 ── resx、附屬組件與文化特性切換的實務
本文從實務角度整理 Windows 桌面應用程式的多語言化,包括 CurrentCulture 與 CurrentUICulture 的差異、resx 與附屬組件(Satellite Assembly)所構成的資源機制、WinForms 的 Localizable 屬性、WPF 現實可行的方式選擇、執行時的語言切...
-
CSV不是「純文字」而已 ── C# 業務應用程式的 CSV 實務(字元編碼・Excel 相容性・注入攻擊防範)
整理業務應用程式在 CSV 讀寫時容易出事故的典型模式──用 Split(',') 自行解析、無 BOM 的 UTF-8 在 Excel 中亂碼、開頭零消失、CSV 注入攻擊──從 RFC 4180 的規則、.NET 中 Shift_JIS 的處理方式(CodePagesEncodingProvider),到用 ...
-
不要用 using 包住 HttpClient ── C# 商用應用程式的 HTTP 通訊實務(生成模式・逾時・重試)
C# 的 HttpClient 若每次都用 using 生成,會導致 Socket 枯竭;改用 static 又無法跟上 DNS 變更──本文從 Windows 商用應用程式的實務角度,整理這兩大問題的成因,以及透過 PooledConnectionLifetime、IHttpClientFactory 的正確生...
-
用 PerfView 與 dotnet-trace 找出「變慢」的原因 ── .NET 效能調查實務入門
當商用應用程式「變慢」「CPU 卡住不動」「偶爾當掉」時,該用哪個工具看什麼?本文整理 PerfView 與 dotnet-trace 的角色分工、CPU 取樣的讀法(inclusive/exclusive)、用 ThreadTime 調查阻塞時間,以及與 EventSource 自訂事件組合使用,涵蓋實務上的效...
-
Windows 事件記錄・ETW 入門 ── 讓業務應用程式的日誌搭上 OS 標準機制
Windows 業務應用程式的日誌,是不是只靠檔案日誌解決?事件記錄與 ETW,是維運人員與 OS 標準工具能看到的另一個層級的記錄。本文說明三種手段的分工、.NET 的寫入方式、透過 EventSource 進行 ETW 儀器化、收集與調查的實務,以及來源未註冊、日誌肥大化等常見陷阱。
-
不只是 appsettings.json ── Windows 商用應用程式的組態管理實務(環境別設定・機密資訊・寫入位置)
本文從實務角度整理 Windows 商用應用程式的組態管理,涵蓋 appsettings.json 的分層、IConfiguration 與 IOptions/IOptionsSnapshot/IOptionsMonitor 的選用方式、環境別設定、可寫入設定的存放位置、機密資訊的處理、執行期設定變更,以及從 a...
-
Windows 業務應用程式的列印與 PDF 輸出 ── System.Drawing.Printing / WPF / 報表函式庫的取捨
本文以要件別判斷表整理 PrintDocument 的 WinForms 列印、WPF 的 FlowDocument/FixedDocument 列印,以及 PDF 輸出的各種選項。並從實務角度說明分頁控制、DPI 落差等實作陷阱,以及從 Windows 服務列印、依賴預設印表機的風險。
-
把OSI參考模型看得明明白白 ── 解剖一個HTTP請求的七層結構
不靠死記硬背來理解OSI參考模型,而是看真實的東西。本文用C#組出一個承載HTTP GET請求的Ethernet訊框並加以解剖,透過十六進位傾印和Wireshark確認L2〜L7如何以位元組序列的形式一層層物理地嵌套在一起。文章從實務角度整理各層與.NET API(HttpClient/SslStream/Soc...
-
如何理解 Windows 的工作階段隔離 ── Session 0・RDP・多使用者同時執行
整理 Windows 應用程式開發者容易混淆的「工作階段」概念。說明服務無法顯示 UI 的 Session 0 隔離原因、RDP 連線時工作階段的行為、具名物件的工作階段隔離,以及共用 PC・RDS 環境常見的設計失誤,從實務角度解說。
-
用 WinDbg + SOS 解讀當機傾印檔 ── 收集之後的實務分析入門
本文說明如何用 WinDbg 與 SOS 擴充功能實際讀取已收集的 Windows 當機傾印檔。內容涵蓋符號路徑設定、以 !clrstack・!pe・!dumpheap -stat・!gcroot 追蹤例外與記憶體洩漏的方法、原生當機的 !analyze -v,以及與 dotnet-dump analyze 的使...
-
防止 Windows 應用程式重複啟動 ── 具名 Mutex 與重複執行時的視窗前置
整理業務用 Windows 應用程式的常見需求「不讓同一個應用程式啟動兩次」,如何用具名 Mutex 實作。涵蓋 Global\ 與 Local\ 命名空間差異在 RDP 環境中的陷阱、擁有執行緒限制與 AbandonedMutexException、考量 SetForegroundWindow 限制下的既有執行...
-
在 C# 中安全呼叫 Win32 API — P/Invoke 實務指南(DllImport / LibraryImport / CsWin32)
本文整理在 C# 中透過 P/Invoke 呼叫 Win32 API 或原生 DLL 時的實務要點:DllImport 與 LibraryImport 的差異、CsWin32 自動產生簽章、字串封送的陷阱、用 SafeHandle 管理控制代碼、SetLastError 與錯誤處理、結構的 StructLayou...
-
在 WinForms/WPF 應用程式中導入 Entra ID 驗證 ── MSAL.NET 與 WAM 代理的實務架構
從實務角度整理在 WinForms/WPF 桌面應用程式中導入 Entra ID(原 Azure AD)驗證的做法。內容涵蓋公用客戶端的概念、ROPC 廢除現況、應用程式註冊、MSAL.NET 的 AcquireTokenSilent 模式、WAM 代理、權杖快取持久化,以及導入判斷與維運上的陷阱。
-
業務應用程式的日期時間與時區 ── 從 DateTime 的陷阱到 UTC 儲存原則、測試設計
伺服器搬遷後時間整整差了 9 個小時、只有海外據點的日期會變成前一天──本文從 DateTime 的 Kind 與隱式轉換整理日期時間事故的根本原因。內容涵蓋與 DateTimeOffset 的取捨、UTC 儲存與 ISO 8601 原則、TimeZoneInfo 與夏令時間、和 SQL Server/SQLit...
-
Windows 桌面應用程式的 UI 自動測試 ── UI Automation 的原理與用 FlaUI 打造不易損壞的測試
本文從 Windows UI Automation 的原理(樹狀結構、AutomationId、控制項模式)整理 WinForms/WPF 應用程式的 UI 自動測試。內容涵蓋以 FlaUI 實作的最小範例、WinAppDriver 的現況、透過 AutomationId 設計與條件等待讓測試不易損壞的方法,以及...
-
WPF 高 DPI 對應──「不是應該對 DPI 很強嗎」卻仍模糊、暈邊的原因與對策
WPF 以 DIP(1/96 英吋)進行版面配置,一開始就是 System DPI Aware,但移到 DPI 不同的螢幕時整體會暈邊,點陣圖與細線也會模糊。本文從實務角度整理原因判斷、.NET Framework 4.6.2/.NET 上的 Per-Monitor DPI 對應宣告方式、UseLayoutRou...
-
C# 操作 Excel 時 EXCEL.EXE 殘留的問題 ── COM 參照釋放模式與替換判斷
本文從 COM 參照計數與 RCW 的運作原理,整理 C# 透過 Microsoft.Office.Interop.Excel 操作 Excel 時 EXCEL.EXE 進程殘留的問題。內容涵蓋「兩個點規則」的陷阱、Marshal.ReleaseComObject 派與 GC 派兩種釋放模式、以 Hwnd 定位 ...
-
WinForms 的高DPI支援 - 4K螢幕顯示模糊、版面跑掉的原因與實務對策
本文從 DPI 虛擬化與 DPI 感知模式(System Aware / Per-Monitor V2)的角度,整理 WinForms 應用程式在4K螢幕、150%縮放環境下顯示模糊、版面跑掉的原因,並說明 .NET 與 .NET Framework 各自的設定方式、AutoScaleMode 與設計工具的陷阱,...
-
Windows 的行程間通訊該怎麼選 ── 具名管道 / TCP / gRPC / 共享記憶體 / COM 判斷表
整理 Windows 應用程式之間該如何選擇溝通方式。以判斷表整理具名管道、本機 TCP、gRPC、共享記憶體、檔案協作、COM 各自的強項與陷阱,並從實務角度說明 UI+服務分離・32bit/64bit 橋接・權限邊界等典型架構,以及具名管道的實作範例。
-
在 C# 中將 SQLite 用於業務應用程式 ── WAL 模式・排他控制・損毀對策・與 EF Core 的取捨
整理用 Microsoft.Data.Sqlite 把 SQLite 整合進業務用 Windows 應用程式的實務知識:連線字串與連線池、WAL 模式的原理、SQLITE_BUSY 與寫入路徑單一化、用交易加速、型別對應的陷阱、用 VACUUM INTO 備份,一直到該在什麼場合使用 EF Core。
-
Windows 服務的建立與維運 ── 從工作排程器的取捨到 BackgroundService 服務化
常駐處理該做成 Windows 服務,還是工作排程器就足夠?本文整理判斷表,以及用 .NET Worker Service(UseWindowsService)建立服務的方法、執行帳戶、復原選項、事件記錄、安全停止處理,從實務角度梳理上線維運所需的設計。
-
IE 模式之後改用 WebView2 就好嗎 ── ActiveX 無法運作的限制與現實的遷移設計
本文從內部系統的角度,整理 WebView2 的基本結構、Evergreen 與 Fixed Version 兩種配布策略、使用者資料資料夾的陷阱、原生與 Web 的連結方式,並在「ActiveX 無法運作」這一限制的前提下,梳理出脫離 IE 模式依賴系統的現實遷移順序。
-
Windows應用程式資料儲存位置怎麼選 ── SQLite / JSON / 登錄檔 / Access 判斷表
Windows桌面應用程式的資料該存在哪裡、用什麼格式儲存?本文整理AppData/ProgramData的使用區分,以及SQLite、JSON檔案、登錄檔、Access(.accdb)各自的優勢與陷阱,並附判斷表,從實務角度說明防止資料損毀與位元數問題等注意事項。
-
PDB(程式資料庫)是什麼 ── 理解偵錯資訊、符號與 Source Link
整理 PDB(Program Database / 程式資料庫)是什麼、裡面有什麼、沒有什麼,並從實務角度說明 Debug / Release、Portable PDB、Source Link、符號伺服器、傾印分析之間的關係。
-
什麼是 Roslyn?── 用編譯器的視角讀懂、修正、產生 C# 程式碼
整理 Roslyn(.NET Compiler Platform)的概觀,包括 Syntax Tree、SemanticModel、Workspace、Analyzer、Source Generator,以及在實務上的使用場合與注意事項。
-
委外・委託開發 Windows 應用程式前該整理的事項
在委外・委託開發 Windows 應用程式之前,整理既有軟體改版、設備整合、COM/ActiveX、發布與更新、維護等應留意的重點。
-
在 .NET Framework / .NET 中使用代數資料型別 ── 用型別表示狀態與結果的設計
本文整理在 .NET Framework 與 .NET 中使用代數資料型別,尤其是直和型別(判別共用體)的方法與優點,涵蓋 F#、C# 的類別階層、record、OneOf,以及 C# 15 union 預覽功能。
-
正確處理 Windows 偽裝權杖 - 執行緒層級的權限借用與安全還原方式
本文整理 Windows 偽裝權杖的實務安全處理方式,涵蓋存取權杖、主要權杖、執行緒權杖、偽裝層級、RevertToSelf,以及 .NET 的 WindowsIdentity.RunImpersonated。
-
TCP 中「Send 單位=Receive 單位」的誤解 ── 把 TCP 視為位元組串流來設計接收邏輯
在 TCP 通訊中,若誤以為呼叫 Send / Write 的單位可以直接對應到接收端的單位,就會發生封包分割、合併、亂碼、協定損壞等問題。本文整理把 TCP 視為位元組串流、在應用層自行進行訊框化(framing)的思考方式,並提供 .NET / C# 的實作範例。
-
在 .NET 中區分 GC 延遲與記憶體洩漏 ── 觀測、比較、證明記憶體增長的實務步驟
本文整理如何用 dotnet-counters、dotnet-gcdump、dotnet-dump 來判斷 .NET 應用程式的記憶體增加,究竟是等待垂圾回收(GC)造成的,還是真正的記憶體洩漏。
-
在 C#(CSharp)中執行 PowerShell 並以物件形式接收結果
本文從實務角度整理如何從 C# 啟動 PowerShell,並以 PSObject 而非字串來接收結果,涵蓋 PowerShell SDK、AddCommand、AddParameter、BaseObject、Properties 到錯誤處理。
-
Windows為何演變成現在的樣子:從開發者角度看歷代Windows的演進
本文從相容性、穩定性、權限管理、驅動程式、Win32、.NET、資安等Windows應用程式開發者的角度,整理Windows 95到Windows 11的變化,而不是單純以外觀年表的方式呈現。
-
ClickOnce 是什麼 - 以實務視角整理機制、更新、適合場面・不適合場面
本文以實務視角整理 ClickOnce 是什麼,從 manifest、快取、更新、簽章的構造,到適合公司內部 .NET 桌面業務應用程式的案件與不適合 machine-wide 或 service、driver 等深度 OS 整合的案件,幫助讀者判斷是否採用並掌握 deploymentProvider 與簽章運營要點。
-
Windows 應用程式安全處理子處理程序的檢查清單
在 Windows 應用程式中安全處理子處理程序,比起挑選啟動 API,更重要的是處理程序樹的所有權與結束流程的設計。本文梳理 Job Object、結束傳播、標準輸入輸出與 watchdog。
-
Windows 應用程式的單一檔案散發 - 單一執行檔與 OS 相依性的界線
想把 Windows 應用程式收攏成 1 個 EXE 時,本文梳理「把散發物收成 1 個」與「消除 OS 相依性」的差別,範圍涵蓋 .NET、C++、WebView2、WinUI、服務與驅動程式。
-
序列通訊應用程式的陷阱 - 從重連到日誌設計
以實務角度梳理設備介接與量測儀器控制中應該避開的序列通訊應用程式陷阱,涵蓋訊框切分、逾時、RTS/CTS、DTR/RTS、重連以及日誌設計。
-
從 .NET Framework 遷移到 .NET 的著手前檢核表
從 .NET Framework 遷移到 .NET 之前,用來檢查專案種類、尚未支援的技術、NuGet 相依性、SDK 樣式、WPF/WinForms、CI/CD 與維運的實務檢核表。
-
.NET Generic Host 是什麼 - DI、設定、日誌的基礎
本文從 DI、設定、日誌、IHostedService、BackgroundService 之間的關係梳理 Generic Host 的角色,並以實務角度歸納它在哪裡管用、在哪裡又會顯得過剩。
-
.NET Native AOT 是什麼 - 與 JIT、trimming 的差異
從與 JIT、ReadyToRun、self-contained、single-file、trimming、source generator 的差異梳理 Native AOT 到底是什麼,並以實務角度歸納它適合的情境與吃力的情境。
-
.NET 三種計時器的區分使用 - PeriodicTimer/Timer/DispatcherTimer
梳理 PeriodicTimer / System.Threading.Timer / DispatcherTimer 的差異,以及在 async 處理、ThreadPool callback、WPF 的 UI 更新中該如何區分使用。
-
從 C/C++ 呼叫 C# Native AOT DLL 的方法
本文說明如何以 Native AOT 把 C# 的類別庫發行成原生 DLL,並從 C/C++ 呼叫 UnmanagedCallersOnly 的進入點,從適用時機、實作模式與注意事項梳理這套構成。
-
在桌面應用程式使用 .NET Generic Host 與 BackgroundService 的理由
為了在 Windows 工具與常駐型應用程式中梳理啟動、定期處理、終止處理、日誌、設定與 DI,本文整理 Generic Host 與 BackgroundService 該怎麼用。
-
ActiveX / OCX 現在該怎麼處理 - 保留、包裝、取代的判斷表
整理發現 ActiveX / OCX 時該選保留、包裝還是取代,把 32 位元與 64 位元、註冊、瀏覽器相依性以至於廠商維護都一起納入判斷。
-
以一頁整理 WPF / WinForms 的 async 與 UI 執行緒
本文梳理 WPF / WinForms 中 await 之後的回歸處、Dispatcher / Invoke、ConfigureAwait(false),以及 .Result / .Wait() 的常見卡關處。
-
FileSystemWatcher 實務指南 - 漏掉通知與重複通知的對策
從漏掉通知、重複通知、完成判定的陷阱、重新掃描、原子性 claim、idempotency 等角度,梳理 FileSystemWatcher 的用法與注意事項。
-
C# async/await 實務判斷表 - Task.Run 與 ConfigureAwait
本文以判斷表梳理 C# async/await 的最佳實踐,涵蓋 I/O 等待、CPU 計算、Task.Run、ConfigureAwait(false) 與 fire-and-forget。