1024 程式員節快樂!從世紀佳緣爬蟲談公開 API 的安全隱患
節日快樂,程式員們! 每年的 10 月 24 日,是屬於程式員的節日——1024(210)。祝各位代碼無 Bug、部署不回滾、薪資漲不停!今晚別加班,回家吃頓好
C# 實作線程安全的字典結構:基於 ReaderWriterLockSlim 的高效封裝
前言:為什麼需要線程安全的字典? 在多線程程式設計中,Dictionary<TKey, TValue> 是非線程安全的集合。當多個線程同時進行讀寫操
Java 開發者轉 C# 之 ASP.NET WebForms 入門指南
前言 Java 陣營習慣 Servlet/JSP (或 Struts2)。ASP.NET WebForms 雖為舊世代技術,但理解其事件驅動、ViewState
開放 API 介面簽名驗證設計:防篡改、防重放、身份認證三重保障
前言 對外開放 API 面臨三大安全風險: 身份偽造:非授權呼叫者冒充合法客戶端 參數篡改:中間人竄改請求參數 (金額、ID 等) 重
程式碼產生器實戰:從資料庫 View 反推欄位中文備註 (SQL Server / Oracle)
問題背景 程式碼產生器需為實體屬性/介面欄位提供中文說明。資料表可直接讀取 sys.extended_properties (SQL Server) 或 USE
Apple LZFSE 壓縮算法解析:有限狀態熵編碼與 LZ77 混合實現
前言 Apple 開源的 LZFSE (LZ + Finite State Entropy) 結合 LZ77 字典壓縮與有限狀態熵編碼 (FSE),在壓縮率與速
.NET 架構核心模式收藏:IOC、DI、DIP 與 Unity 容器實戰
精選學習資源彙整 整理 .NET 架構核心模式 (IOC/DI/DIP) 的經典部落格與教學,建立知識庫供隨時查閱。 核心概念 術語全稱核心思想 DIPD
C# HtmlAgilityPack 封裝庫:XPath 查詢、節點提取與網頁採集實戰
前言 網頁採集常需解析 HTML 提取結構化資料。HtmlAgilityPack (HAP) 是 .NET 事実標準 HTML 解析器,支援 XPath、容錯解
C# 32 位元程式在 64 位元系統解決檔案系統重導向問題
問題背景 64 位元 Windows 為相容 32 位元程式,實作 WOW64 檔案系統重導向: 32 位元程式存取 C:\Windows\Syste
C# 遞歸刪除資料夾下所有檔案與子目錄完整實作
前言 清空資料夾是常見需求。Directory.Delete(path, true) 雖簡單但無法處理唯讀、鎖定、權限不足等例外。本文提供健壯的遞歸刪除實作。
C# 並行程式設計範例:Thread、ThreadPool、Task 與跨執行緒 UI 更新
前言 .NET 提供多種並行機制:Thread、ThreadPool、Task (TPL)。本文透過 WinForms 範例展示各種啟動方式、參數傳遞、跨執行緒
C# 文字檔解析存入 DataSet 通用實作:支援多表、欄位對應與資料清洗
前言 專案常需匯入結構化文字檔 (CSV、Tab 分隔、定寬) 至 DataSet 進行後續處理。本文提供一個可復用的解析器,支援: 多表單檔 (以
WPF 自訂 RoutedEvent 程式碼片段 (Snippet) 建立與使用
前言 WPF 路由事件 (RoutedEvent) 樣板代碼固定且冗長。透過 Visual Studio 程式碼片段 可一鍵生成,提升開發效率。 建立 Sni
Emit 學習筆記 (一):動態建立組件、模組、類型與 IL 生成基礎
前言 研究 Dapper、CYQ.Data 等 ORM 原理時發現 Emit 是核心技術。Emit 允許運行時動態生成 IL 碼,適用於: 高效能動態
ExtJS 檔案上傳 IE 回調失敗問題解決:Content-Type 設定關鍵
問題現象 ExtJS form.submit() 上傳檔案,Chrome/Firefox 正常,IE (含高版本) 回調報錯: result 為 null
C# 參數修飾符完全指南:ref、out、params 與值/引用傳遞本質
前言 C# 方法參數預設為按值傳遞。理解 ref、out、params 如何改變此行為,是寫出正確、高效程式碼的基礎。 一、預設:按值傳遞 值類型 void
深入理解 Thread.Sleep(0):讓出 CPU 時間片與執行緒排程
前言 Thread.Sleep(0) 乍看毫無意義,實則是主動讓出 CPU 時間片的關鍵 API。本文從作業系統排程原理切入,徹底釐清其行為與用途。 兩個思考
SqlDataAdapter.Update() 與 SqlCommandBuilder 自動產生命令完整解析
前言 SqlDataAdapter 配合 SqlCommandBuilder 可自動產生 INSERT/UPDATE/DELETE 命令,實現 DataSet