簡介 背景和優勢 ASP.NET Core 自 .NET Core 1.0(2016 年)起支持跨平台,Linux 部署具有以下優勢: 高性能:Linux 服務器(如 Ubuntu)資源佔用低,適合高併發。 成本效益:開源操作系統,降低服務器成本。 生態支持:支持 MySQL、Docker、Nginx 等,適配微服務和雲原生。 社區活躍:Linux 是雲部署(如 AWS、Azure)的首
簡介 全局異常攔截是構建健壯企業級應用的關鍵基礎設施,它能統一處理系統中未捕獲的異常,提供友好的錯誤響應,同時記錄完整的異常信息。 背景和作用 在 ASP.NET Core 應用中,異常可能在控制器、數據庫操作或中間件中發生。如果每個動作方法都手動處理異常(如 try-catch),代碼會變得冗長且難以維護。全局異常攔截器解決了以下問題: 統一錯誤處理:集中捕獲所有未處理異常,返回標準化的錯誤
簡介 核心概念對比 特性 IActionResult ActionResultT 引入版本 ASP.NET Core 1.0 ASP.NET Core 2.1 主要用途 表示HTTP響應(狀態碼+內容) 類型化HTTP響應 返回值類型 接口(多種實現) 泛型類
簡介 ControllerBase 是 ASP.NET Core 中構建 Web API 控制器的基類,位於 Microsoft.AspNetCore.Mvc 命名空間。它提供了豐富的功能來處理 HTTP 請求,但不包含視圖支持。 核心功能: HTTP 響應:提供方法(如 Ok、NotFound)生成標準 HTTP 響應。 模型綁定:自動將請求數據綁定到參數(如查詢字符串、請求體)。 驗證
特性基礎 什麼是特性 特性是附加到代碼元素(程序集、類型、成員、參數等)上的元數據。編譯後寫入 IL,可在運行時通過反射讀取或由運行時/框架識別並做相應處理。 定義特性 自定義特性需繼承自 System.Attribute,並可通過 AttributeUsage 限制其作用目標和允許多重使用。 [AttributeUsage(AttributeTargets.Class | AttributeTa
簡介 路由是 ASP.NET Core 的核心基礎設施,負責將 HTTP 請求映射到對應的處理程序(如控制器方法)。它決定了 URL 如何與應用程序代碼交互,是現代 Web 開發的關鍵組件。 在 ASP.NET Core 中,路由系統解決了以下問題: URL 映射:將用户友好的 URL 映射到具體的處理程序。 靈活性:支持多種路由配置(如 RESTful 路徑、動態參數)。 性能優化:高效
簡介 在許多應用程序中,緩存是提升性能的常見方法,尤其是在訪問頻繁且不經常變化的數據時。MemoryCache 是 .NET 提供的一個內存緩存實現,它允許在內存中存儲數據,以減少對數據庫、文件系統或其他遠程服務的訪問,進而提升系統響應速度。 MemoryCache 的核心優勢是: 高效:內存操作非常快速,適合用於緩存短期有效的數據。 輕量:它是一個線程安全的緩存系統,且易於在 .NET 應
簡介 DbContext 池是 Entity Framework Core 中的高性能數據庫連接管理機制,通過重用已初始化的 DbContext 實例,顯著減少創建和銷燬上下文對象的開銷,特別適合高併發場景。尤其在高併發場景(如 Web API)中,頻繁創建和釋放 DbContext 會導致: 性能瓶頸:實例化 DbContext 涉及反射、元數據初始化和連接池分配。 內存壓力:頻繁創建和釋
簡介 Random 是 .NET 中 System 命名空間提供的一個類,用於生成偽隨機數。它廣泛應用於需要隨機化操作的場景,如生成隨機數據、模擬、遊戲開發或測試用例生成。 偽隨機數生成 在計算機中,Random 類用於生成偽隨機數,這些數值在一定程度上看起來是隨機的,但它們實際上是通過數學公式從一個初始種子值計算得到的,因此稱之為“偽隨機數”。 廣泛應用 Random 類常用於遊戲開
簡介 SemaphoreSlim 是 .NET 中 System.Threading 命名空間提供的一個輕量級同步原語,用於限制對共享資源的併發訪問。它是傳統 Semaphore 類的輕量替代,專為高性能、異步場景設計,特別適合結合 async/await 的現代 .NET 應用(如 ASP.NET Core)。 在多線程或高併發應用中,共享資源的訪問需要同步以避免競爭條件。傳統的 Semapho
簡介 Tinyproxy 是一款輕量級 HTTP 代理服務器,使用最少的資源,非常適合硬件有限的系統。儘管體積小,但它可以處理大量流量,而不會出現明顯的性能問題。旨在處理簡單的代理任務。它通常用於路由網絡流量以保護隱私、緩存或訪問受限資源。 它的設計初衷是快速而小巧,是嵌入式部署等用例的理想解決方案。 Tinyproxy佔用空間小,並且只需要很少的系統資源。使用 glibc 時,內存佔用大約為2
簡介 JetBrains IDE(如IntelliJ IDEA, WebStorm, PhpStorm和PyCharm)自帶一個內置的HTTP客户端,允許直接從IDE發送HTTP請求,而無需使用第三方工具,如Postman或cURL。 JetBrains IDE 中的 HTTP 客户端是什麼? JetBrains IDE 中的HTTP客户端是一個輕量級但功能強大的功能,它允許開發人員直接從IDE中
一、什麼是Composer? Composer 是 PHP 中的依賴管理工具。它允許聲明項目所依賴的庫,並且它將為您管理(安裝/更新)它們。 二、如何安裝? Linux 系統和 MacOS 系統 直接下載最新穩定版: 然後執行下列命令,放到/usr/local/bin下面 sudo mv composer.phar /usr/local/bin/composer sudo chmod +x /
腳本目的: init 腳本主要的作用是:從 environments 目錄中複製配置文件,確保應用適配不同環境(例如開發、生產環境等)。 工作流程: 獲取 $_SERVER 的 argv 參數 加載 environments/index.php 文件,拿到不同環境配置指定的配置文件關係。 如果執行 init 腳本時提供了 --env 選項,例如:--env=Development 則直接應
文本替換 (:s) 這是 Vim 中最強大和最常用的進階功能之一。 基本語法: :[range]s/old/new/[flags] [range]: 指定替換操作的範圍。省略時默認為當前行。 %:整個文件 (例如 :%s/old/new/) 5,10:第 5 行到第 10 行 (例如 :5,10s/old/new/) .,$:從當前行到文件末尾 (例如 :.,$s
簡介 :vimgrep 是 Vim 提供的「直接在指定文件集裏用正則查找」的命令 與外部 grep 不同,vimgrep 在查到結果後會將匹配行寫入 快速修復列表(quickfix list),並可通過 :copen、:cnext、:cfirst 等命令逐條跳轉 支持 Vim 的正則引擎,允許靈活使用 Vim 正則、分組、魔法模式等 基本語法 :vimgrep[!] /{pattern}
簡介 RepoDB 是一個“混合” ORM(Hybrid ORM),旨在彌合微型 ORM(如 Dapper)和全功能 ORM(如 EF Core)之間的鴻溝,既提供對 SQL 的直接控制,又封裝了常用的高級操作 核心特性 混合 ORM 功能 支持微型 ORM 的原始 SQL 查詢(ExecuteQueryT)和 Fluent API(QueryAllT)。 提供完
簡介 概念定位 FluentMigrator 是一個基於 “流式 API”(Fluent API)的 .NET 數據庫版本遷移框架。 核心目標:以代碼形式對數據庫結構(Schema)進行增量變更管理,支持 SQL Server、PostgreSQL、MySQL、SQLite、Oracle 等多種數據庫。 核心優勢: 可讀性高:以鏈式方法描述表、列、索引等,而非手寫 SQL
簡介 FluentValidation 是一個基於“流式 API”(Fluent API)的 .NET 驗證框架,用於在應用層對模型(DTO、ViewModel、Entity 等)進行聲明式驗證。 核心優勢: 高可讀性:通過鏈式方法配置驗證規則,邏輯清晰; 可複用:將驗證代碼從業務邏輯中分離,易於單元測試; 豐富的內置規則:郵箱、長度、正則、多字段聯動、集合驗證
簡介 ASP.NET Core 的配置系統旨在提供統一、靈活的方式來讀取應用程序設置。它具備以下特點: 支持多種配置源:JSON、XML、INI、環境變量、命令行、內存、用户機密、數據庫、自定義等; 層級合併與覆蓋:後添加的配置源會覆蓋前面的同名鍵; 鍵名稱統一:默認使用“冒號”分隔的層級鍵(如Logging:LogLevel:Default); 與DI 整合:通過IConfigurat
簡介 在複雜項目中,為了保持 SQL 靈活性與可讀性,開發者往往需要手寫大量拼接字符串或使用 ORMs 附帶的 LINQ,但兩者各有侷限:手寫拼接易出錯、難以維護;LINQ 在某些場景下生成的 SQL 不夠直觀或性能不佳。 SqlKata 是一款輕量級、數據庫無關的查詢構建器(Query Builder),提供—— 流式 API,鏈式調用拼裝 SQL 可切換編譯器,支
簡介 在使用 SqlKata 構建 SQL 時,雖然其鏈式 API 強大靈活,但仍需通過字符串或匿名字段進行表與列的映射,缺乏對實體類型和字段的靜態檢查。FluentSqlKata 基於 SqlKata,提供了一套基於表達式的強類型查詢構建能力,能夠: 通過 Lambda 表達式指定實體與列,更安全、可重構 保留 SqlKata 的所有特性與多數據庫編譯器支持 在運行時動態構造 ORDER
簡介 ArrayPoolT 是 .NET 中一個高性能的內存管理工具,位於 System.Buffers 命名空間。它通過重用數組而非頻繁分配新數組,顯著減少 GC(垃圾回收)壓力,提升內存敏感型應用的性能。特別適合處理大型數組和臨時緩衝區。 工作原理圖解 背景與動機 GC 和大對象開銷:頻繁分配與釋放大數組(特別是超過 LOH 閾值 ~85 KB 的數組)會導致大量垃圾回收壓力和內存碎片化
簡介 NCrontab 是 .NET 平台下功能完備的 Cron 表達式解析與調度計算庫,用於處理類似 Unix Cron 的時間調度邏輯。它不依賴外部系統服務,純託管實現,是構建定時任務系統的核心組件。 解決的關鍵問題 Cron 表達式解析:將字符串表達式轉換為可計算的時間模型 時間序列生成:計算下次執行時間或生成時間序列 跨平台支持:純 .NET 實現,無操作系統依賴 輕量高效:無外