MSTest 實作類似 NUnit Assert.Throws 的例外斷言擴充方法
前言 NUnit 提供 `Assert.Throws(Action)` 讓測試碼更簡潔,而 MSTest 內建僅有 `[ExpectedException]`
使用 PDFBox 實現 PDF 文字萃取與合併功能 (.NET 互操作 IKVM)
前言 Apache PDFBox 是強大的 Java PDF 處理庫。透過 IKVM.NET 可將其編譯為 .NET 組件 (`PDFBox-0.7.3.dll
C# 使用 LINQ 讀取分隔符文字檔並轉換為強型別集合
前言 CSV/TSV 等分隔符文字檔是常見資料交換格式。C# LINQ 提供 `File.ReadAllLines` 搭配 `Select`、`Where` 即
ASP.NET MVC 使用 jQuery 模板引擎 JTemplates 渲染表格
前言 ASP.NET MVC 回傳 JSON 資料,前端需動態產生複雜表格。手工拼接 HTML 字串難維護,JTemplates (jQuery Templat
C# DataTable 行轉列 (Pivot) 通用方法實作
前言 資料呈現時常需將「長表格」(行導向) 轉為「寬表格」(列導向),例如將月份由行轉為列。ADO.NET `DataTable` 無內建 Pivot 方法,本
log4net 設定檔配置與基本使用快速入門
前言 log4net 是 .NET 經典日誌框架,透過 XML 設定檔即可靈活控制輸出目標、格式、等級,無需修改程式碼。本文提供最小可用設定檔、Global.a
ASP.NET 使用 NPOI 讀取 Excel 模板並導出下載完整教學
前言 傳統 `Microsoft.Office.Interop.Excel` 需在伺服器安裝 Office、處理 COM 權限、進程殘留導致記憶體洩漏,且無法支
ASP.NET 使用 DbProviderFactory 實現資料庫廠商無關的資料存取
前言 硬編碼 `SqlConnection`、`SqlCommand` 會將程式鎖死在 SQL Server。`DbProviderFactory` 抽象廠模式
ASP.NET 驗證碼圖片產生與驗證完整實作 (GDI+ 繪圖)
前言 驗證碼是防止自動化腳本提交表單的基礎防線。ASP.NET 透過 `System.Drawing` (GDI+) 動態產生包含雜訊線、雜訊點、漸層文字的 G
C# List 泛型自訂排序:指定元素優先置頂的 Lambda 寫法
前言 C# `List.Sort` 接受 `Comparison` 委派,配合 Lambda 運算式即可實現靈活的自訂排序。常見需求:依特定 ID 清單將符合項
log4net 進階教學:多 Logger 儲存庫、動態配置與日誌自動維護
前言 log4net 預設單一 Logger 滿足大部分需求,但企業級應用常需:不同模組獨立日誌檔、不同等級閾值、動態新增 Logger、自動清理舊日誌。本文示
ASP.NET iframe 跨域導致 Session 遺失問題與 P3P 解決方案
前言 當網頁以 `` 嵌入不同網域(或子網域)的應用程式時,IE 7/8 會因隱私保護機制阻擋第三方 Cookie,導致 Session ID 無法持久化,每次
ASP.NET 後台註冊 JavaScript 的四種方法完整教學
前言 在 ASP.NET WebForms 後端程式碼中動態產生或註冊 JavaScript,是整合伺服器邏輯與客戶端互動的常見需求。.NET Framewor
ASP.NET 頁面間傳遞資料的九大方法完整比較指南
前言 ASP.NET 提供多種頁面間資料傳遞機制,各有適用場景、容量限制、安全性考量。選錯方式會導致效能低落、資料外洩、維護困難。本文系統整理九大方法,附上比較
ASP.NET 網頁生命週期十大事件完整解析
前言 ASP.NET WebForms 頁面從接收請求到輸出回應,會依序觸發十個關鍵事件。深入理解各階段的執行時機、可存取的物件狀態、適合放置的邏輯,能避免常見
ASP.NET 自訂分頁使用者控制項 完整實作教學
前言 ASP.NET 內建 GridView 分頁功能雖方便,但 UI 風格固定、難以客製化。建立可重複使用的分頁使用者控制項,可統一專案分頁風格、集中邏輯維護
ASP.NET GridView 伺服器端與客戶端全選功能兩種實作比較
前言 GridView 列選取是常見需求。ASP.NET WebForms 提供兩種全選實作路徑:伺服器端(CheckBox AutoPostBack)與 客戶
C# 將文字檔內容繪製成圖片儲存的實用方法
前言 將純文字或 Log 檔案轉換為圖片,適用於防止內容被複製、產生驗證碼圖片、生成報表快照等場景。.NET System.Drawing 命名空間提供 GDI