Quartz.NET 入門指南 - 打造可靠的.NET排程系統
前言排程任務在後端開發裡幾乎無所不在:定期備份資料、產生報表、發送郵件、執行系統維護。Quartz.NET 是 .NET 生態裡最成熟的開源排程框架,提供豐富的功能,也有足夠的彈性應對各種場景。 Scheduler Job Store Thread Pool Jobs Triggers Listeners Plugins Quartz.NET 是什麼?Quartz.NET 是 Java Quartz 排程框架的 .NET 移植版,提供企業級的排程功能: 支援複雜的排程模式(Cron 表達式) 具備叢集功能,可確保高可用性 提供任務持久化 彈性的錯誤處理機制 豐富的監控與管理功能 基本概念Quartz.NET 有三個核心元件: J...
圖解 C# yield - 5分鐘讓你輕鬆掌握迭代器
C# yield 執行流程(caller ↔ iterator) <!-- Caller 欄 --> <rect x="30" y="60" width="180" height="360" rx="8" fill="none" stroke="#9E9E9E" stroke-width="1.5" stroke-dasharray="4,3"/> <text x="120" y="82" text-anchor="middle" font-size="13" fill="#555">呼叫端(foreach)</text> <!-- Iterator 欄 --> <rect x="350" y=&...
IIS環境下使用C#操作LibreOffice進行檔案轉換
在 IIS 環境下使用 C# 操作 LibreOffice 進行檔案轉換Web 應用要把使用者上傳的 Excel 轉成 ODS、或把報表轉成 PDF,最省事的做法之一是裝一套 LibreOffice,從後端用 soffice.exe --headless --convert-to 去跑。本機開發測試時一切正常,一部署到 IIS 就翻車:程式沒回應、找不到輸出檔、或是直接權限不足。 最容易踩進去的坑不是資料夾權限,而是「身分模擬到底有沒有作用在那支 soffice.exe 上」。網路上很多範例會教你 LogonUser 取得權杖、ImpersonateLoggedOnUser 模擬使用者,然後 Process.Start() 啟動 soffice——這套流程在 ASP.NET 裡其實達不到目的。下面先把為什麼會這樣講清楚,再給出能真正生效的寫法。 環境與會遇到的問題需要的東西很單純: Windows Server 加 IIS LibreOffice(本文以預設安裝路徑 C:\Program Files\LibreOffice 為例) .NET Framework 的 Web 專案...
C# 常用命名空間參考指南
C# 常用命名空間參考指南筆記一些常用到的命名空間 1. 基礎核心命名空間12345678910using System; // 基礎類型、例外處理using System.Collections; // 非泛型集合using System.Collections.Generic; // 泛型集合using System.Linq; // LINQ 查詢using System.ComponentModel; // 資料綁定、型別轉換using System.Text; // 文字處理using System.Text.RegularExpressions; // 正則表達式using System.Globalization; // 地區和文化資訊using System.Configuration; // 應用程式配置(.NET Core/5+ 需另裝 System.Configuration.ConfigurationManager ...
System.Text.Json 與 Newtonsoft.Json 的深入比較
上一篇文章提到從 Newtonsoft.Json 遷移到 System.Text.Json 的實際經驗,這篇專注在兩者的功能與行為差異,讓你在選型時有具體依據。 歷史背景Newtonsoft.Json(又稱 Json.NET)由 James Newton-King 於 2006 年首次發布,長期是 .NET 生態系的預設 JSON 工具。ASP.NET Core 2.x 的 MVC 框架預設使用它進行模型序列化,直到 ASP.NET Core 3.0 才改為 System.Text.Json。 System.Text.Json 隨 .NET Core 3.0(2019 年)一起推出,由微軟直接整合進執行時期,設計目標是效能與低配置開銷——代價是功能集比 Newtonsoft.Json 精簡。 效能根據 BenchmarkDotNet 的公開測試,System.Text.Json 的序列化吞吐量約比 Newtonsoft.Json 快 20–35%。記憶體配置差距因資料形狀差異很大:小物件可能只差一點,大批次 JSON 串流場景下 System.Text.Json 因避免中間字串配...




