國內文章
低成本高可用方案!Linux系統下SQL Server數據庫鏡像配置全流程詳解
https://www.cnblogs.com/lyhabc/p/18660810/linux-sql-server-database-mirroring-configuration-guide
本文詳細介紹了如何在Linux系統下配置SQL Server數據庫鏡像,以實現低成本高可用方案。作者首先明確客戶的需求,并指出在SQL Server 2017及之后版本中支持Linux系統的同時,鏡像技術在高可用性要求不高的情況下是個不錯的選擇。文章提供了具體的搭建步驟,包括環境要求、主機配置及證書創建等,強調了搭建過程的簡便和類似于Windows的特性。該方案適合要求不高的生產環境。
Phi小模型開發教程:用C#開發本地部署AI聊天工具,只需CPU,不需要GPU,3G內存就可以運行,不輸GPT-3.5
https://www.cnblogs.com/chingho/p/18681020
本文討論了AI應用的趨勢,強調程序員學習AI技能的重要性,尤其是Phi小模型。Phi模型是微軟推出的語言開源模型,最新版本Phi-4在多個基準測試中表現優異。文章提供了C#開發調用此模型的示例,介紹了ONNX的使用和依賴庫的安裝,以及如何創建控制臺應用。作者分享了具體代碼示例,以幫助讀者理解如何應用這一技術。
C#使用yield關鍵字提升迭代性能與效率
https://www.cnblogs.com/Can-daydayup/p/18684357
這篇文章詳細介紹了C#中的yield關鍵字。yield簡化了數據迭代,實現按需生成數據。文章通過對比傳統迭代和yield迭代,展示了yield如何提高性能和效率。使用yield時,數據在需要時才生成,優化了內存使用。文章提供了代碼示例,展示了yield關鍵字的應用和效果。還討論了yield break的用法,表明如何顯式地結束迭代。同時,指出了yield關鍵字的限制。總體而言,文章內容豐富,易于理解,對C#開發者有實用價值。
回顧我的軟件開發經歷(1)
https://www.cnblogs.com/Rong-/p/18685820
這篇文章講述了作者的職業生涯,從大學畢業后的第一份工作開始,逐步深入軟件開發的各個方面。作者回顧了從搭建BBS論壇到開發綜合鉆井平臺的經歷,強調了在工作中學習ASP、C#和面向對象編程的重要性。同時,作者分享了對單元測試和代碼生成器的理解與實踐,說明了敏捷開發對團隊的影響。書籍如《程序員修煉之道》和《.NET框架設計》也對作者的發展產生了重要影響。這些經歷幫助作者在軟件開發領域不斷成長和深化理解。文章內容豐富,體現了個人成長與技術深度的結合。
C# WebAPI 插件熱插拔
https://www.cnblogs.com/BFMC/p/18687474
WebAPI插件熱插拔使應用程序無需重啟即可動態加載、更新或卸載功能模塊。這種設計適用于需要頻繁更新的大型系統,增加了系統的穩定性和靈活性。文章展示了如何使用Postman進行查詢、添加、更新、刪除插件功能,以及相關代碼實現,包括接口定義和數據庫連接配置。主要依賴NuGet程序包如Newtonsoft.Json和SqlSugarCore,以實現數據轉換和存儲功能。
擁有自己的解析器(C#實現LALR(1)語法解析器和miniDFA詞法分析器的生成器)
https://www.cnblogs.com/bitzhuwei/p/18683262/my-own-parsers
文章介紹了一款C#實現的解析器生成器bitParser,支持LALR(1)語法解析和miniDFA詞法分析。該生成器參考了lex和yacc輸入格式,采用了現代編譯原理的算法,實現了多種類型的語法和詞法分析器。提供了詳盡的注釋和狀態圖,方便學習和調試。生成器無需依賴第三方庫,可直接使用類庫調用,具備多行和單行注釋的自定義功能,并能快速生成解析器代碼和文檔,優化顯著。文章開頭和結尾提供了額外的鏈接以獲取更多資源和示例。
.NET 9 new features-C#13新的鎖類型和語義
https://www.cnblogs.com/tianqing/p/18653870
C# 13 引入了新的鎖類型 System.Threading.Lock,以增強多線程編程中的同步機制。這種新鎖替代了傳統的 lock 關鍵字,解決了性能瓶頸和死鎖風險。System.Threading.Lock 提供了更高效、安全的線程同步操作,適用于高性能的多線程應用和復雜的同步需求。新語義簡化了鎖定行為的控制,降低了死鎖幾率。示例代碼展示了如何安全更新共享資源,演示了使用新的鎖的有效性和實用性。
.NET9 AOT部署
https://www.cnblogs.com/hudean/p/18685670
AOT(Ahead-of-Time)是將C#程序提前編譯為機器代碼的方法,能提高應用的啟動速度和減少內存占用。AOT適合在未安裝.NET運行時的環境中運行。與JIT(Just-in-Time)相比,AOT有更快的啟動速度和更低的內存占用,但編譯時間較長且缺乏靈活性。選擇AOT或JIT取決于應用場景、性能需求和開發周期。通過創建控制臺項目,可以實踐AOT和JIT的不同應用。
回顧我的軟件開發經歷:我與代碼生成器的涅槃之路
https://www.cnblogs.com/Rong-/p/18682641
這篇文章講述了作者從簡單的代碼生成器發展到強大的ORM框架的過程。通過學習與實踐,作者逐漸掌握了重構、設計模式和系統架構的重要性。初次接觸代碼生成器時,作者對面向對象開發尚感模糊,后期通過閱讀《C# Primer Plus》不斷完善代碼生成器。經過多次重構,作者實現了支持多種數據庫的ORM框架,并在開發過程中逐漸理解設計模式的應用。作者還探討了前端控件、輸入驗證和模板技術等方面,讓框架更加高效和靈活。最終,作者反思了框架與庫的關系,認為可以拆分為多個獨立庫以實現最佳效果。
【譯】我們最喜歡的2024年的 Visual Studio 新功能
https://www.cnblogs.com/MeteorSeed/p/18687409
Visual Studio 團隊在2024年推出了多項新功能以提升開發者的生產力。圖像懸停預覽功能優化了引用圖像的查看,錯誤復制改進讓用戶可以僅復制所需的錯誤信息。新增加的重命名建議功能針對不明確的變量命名,以幫助開發者進行合理命名。內存布局查看器和異步調試器分別優化了內存使用和調試流程。同時,.NET MAUI 模板更新和 Copilot 功能增強了項目啟動和代碼建議的效率。新擴展管理器簡化了擴展安裝過程,而整合虛幻引擎則為游戲開發提供了便利。這些創新皆源于開發者社區的反饋。
記一次 .NET某數字化協同管理系統 內存暴漲分析
https://www.cnblogs.com/huangxincheng/p/18681199
這篇文章討論了在Linux上運行.NET程序時出現的內存泄露問題。作者分享了一位朋友在高級調試訓練營中遇到的情況,并解釋了如何使用sos提供的!maddress命令來分析內存使用情況。文章詳細描述了內存暴漲的原因,并通過具體示例展示了內存的分布情況。盡管主要針對技術調試人員,內容清晰且實用。
Phi小模型開發教程:C#使用本地模型Phi視覺模型分析圖像,實現圖片分類、搜索等功能
https://www.cnblogs.com/chingho/p/18691002
這篇文章介紹了如何利用AI模型進行非結構化數據的處理。主要講述了Phi-vision模型的下載、設置和使用,尤其是在.NET 9環境下。作者提供了詳細的步驟,包括下載ONNX模型、創建控制臺應用及相應的代碼示例。通過該模型,可以實現圖像的分類和搜索。文章內容簡潔明了,適合有一定編程基礎的讀者,但對初學者可能稍顯復雜。
.NET Core GC壓縮(compact_phase)底層原理淺談
https://www.cnblogs.com/lmy5215006/p/18676634
文章詳細描述了垃圾回收(GC)的清除和壓縮步驟。首先,GC通過清除不可到達的對象,釋放內存。接著,通過創建空閑列表和更新相關結構,來管理碎片。文章隨后闡述了壓縮階段,包括對象移動和地址更新。這一過程復雜,涉及多個根的掃描和更新。提供了代碼示例來演示GC的工作機制,明確展示了GC前后的對象地址變化。整體上,文章內容豐富,結合了理論和實踐。
.NET 中 Logger 常被忽視的方法 BeginScope
https://www.cnblogs.com/chenyishi/p/18682492
BeginScope 方法是 .NET ILogger 接口的一部分,用于創建日志記錄的作用域,提升日志可讀性和調試效率。必須在日志配置中啟用作用域信息,如在 appsettings.json 中設置 IncludeScopes 為 true。代碼中使用 BeginScope 添加上下文信息,并在日志中包含該信息。此外,可以通過實現 ILogger 接口,將作用域信息以 JSON 格式輸出,有助于結構化日志記錄,提高系統可維護性。
.NET Core 中如何構建一個彈性的 HTTP 請求機制?
https://www.cnblogs.com/liyongqiang-cc/p/18683913
文章介紹了彈性 HTTP 請求機制的概念及其重要性,強調在分布式系統中應對故障的能力。通過重試、斷路器、超時、降級和負載均衡等策略,提升系統的可用性、用戶體驗和降低運維成本。接著,文章講解了 .NET Core 中 HttpClient 的使用,并介紹了 HttpClientFactory 的引入,以解決直接使用 HttpClient 時可能面臨的問題,包括 DNS 更新和套接字耗盡。
菜單權限的設計與實現
https://www.cnblogs.com/cyzf/p/18683001
本文介紹OverallAuth2.0權限與可視化流程管理系統的設計與實現。通過詳細講解菜單權限的管理,文章強調用戶、角色與菜單之間的關系。從角色到菜單的權限分配,涉及數據表設計和接口實現,支持不同公司和系統的權限管理。文章建議讀者先閱讀系列前文以便理解。可供新手與老手學習,內容清晰且詳細。
Winform-耗時操作導致界面渲染滯后
https://www.cnblogs.com/snowoct/p/18690950
文章討論了Winform的線程機制,強調單線程模型與依賴消息循環的特性。主線程管理所有UI操作,耗時任務會阻塞UI線程,導致控件繪制滯后。通過示例代碼說明,pictureBox1的顯示受事件處理的影響。最佳解決方案是將耗時任務移至后臺線程,以保持UI線程空閑,使用Task.Run或async/await可優化性能。并且強調了主線程必須通過控制.invoke等方法更新UI控件,確保多線程的安全性。
ASP.NET Core 快速輕量級的瀏覽器檢測和設備檢測庫
https://www.cnblogs.com/netcore5/p/18687375
在 .NET Framework 4.7 中,HttpContext.Request 的 Browser 屬性提供了瀏覽器信息,ASP.NET Core 則通過 BrowserDetector NuGet 包實現瀏覽器、設備類型和操作系統的檢測。支持 .NET 6/7/8。使用方法包括安裝 NuGet 包并調用 AddBrowserDetection 方法啟用服務。IBrowserDetector 可用于控制器、視圖和中間件,以獲取瀏覽器相關信息并執行相應邏輯。
.Net類型 值類型
https://www.cnblogs.com/AntToolStuido/p/18683124
本文介紹了C#中的預定義類型和基本數據類型,包括整型、浮點型、decimal、布爾型和字符型。整型包括sByte、short、int、long、byte、ushort、uint和ulong,各種類型具有不同的范圍。浮點型包含float和double,分別支持32位和64位精度,而decimal類型則用于高精度貨幣計算。bool類型用于表示真或假。char類型用于存儲單個字符,并支持多種表示方式。C#使用這些類型提供高效的數據處理。
語音處理 開源項目 EchoSharp
https://www.cnblogs.com/shanyou/p/18691590
EchoSharp 是一個開源項目,旨在實現近實時音頻處理,集成多個 AI 模型,支持語音轉文本和語音活動檢測。該項目采用靈活的架構,目標是簡化模型部署和提升性能。它具有實時音頻處理和模塊化AI組件等特點,為開發人員提供定制功能。項目還整合了多種先進的語音識別技術,適用于高質量音頻分析。預計未來會不斷發展,拓展更多功能,成為 .NET 生態中的輕量級語音處理工具。
.Net類型 引用類型
https://www.cnblogs.com/AntToolStuido/p/18687112
本文介紹了C#中的兩種預定義引用類型:object和string。object是所有類型的根類型,支持裝箱和反射,包含基本方法如Equals和ToString。用戶需重寫這些方法以提供自定義實現。string類型用于處理Unicode字符串,雖然表現為值類型,但實際上是引用類型,存儲于堆中。修改字符串將創建新對象,因此字符串不可改變。總體上,文章內容清晰詳細,適合對C#感興趣的讀者。
并發編程 - 線程同步(一)
https://www.cnblogs.com/hugogoos/p/18688670
本文討論了線程同步的概念及其重要性。線程同步確保多線程環境中共享資源的安全使用,避免競爭條件導致的數據不一致。如文中銀行賬戶轉賬的例子,未同步的線程可能造成錯誤的余額更新。作者還提到torn read現象,顯示了多線程帶來的共享資源問題。通過共享變量的代碼示例,文中反映了線程同步的必要性和實際應用。總體而言,本文對線程同步進行了深入淺出的闡述,適合多線程編程學習者。
ef 值轉換與值比較器
https://www.cnblogs.com/aoximin/p/18579017
本文介紹了C#中的值轉換器和值比較器的概念與應用。通過實例說明如何將枚舉值存儲為字符串,方便數據處理。作者詳細描述了如何配置模型,將自定義轉換器與數據庫映射結合,提升了數據存取效率。此外,文章提到值比較器的功能,通過優化更新語句以提高運行效率。這些知識對開發者在實際業務邏輯中處理數據具有參考價值。
應用程序取得當前目錄和退出
https://www.cnblogs.com/assassinx/p/18691774
該文章探討了在C#中獲取當前應用程序目錄和退出的方法。作者提到多種獲取路徑的方式,如Assembly和Process類。通過示例代碼,讀者可以學習如何使用System.Reflection和System.AppDomain獲取exe文件路徑,以及Process類中的方法。文章還講解了關于應用程序集、進程和應用程序對象的概念,強調了它們之間的關系。盡管信息豐富,但結構稍顯松散,概念也有點重復。
主題
Uno 平臺 5.6 - 2.5 倍的性能改進、渦輪增壓的熱重載和擴展的應用程序打包
https://platform.uno/blog/5-6/
發布 4.3.0 · Shouldly/Shouldly
https://github.com/shouldly/shouldly/releases/tag/4.3.0
發布 7.0.0 · Cysharp/MagicOnion
https://github.com/Cysharp/MagicOnion/releases/tag/7.0.0
發布 [預發布] v8.2.250129-preview2 · 社區工具包/Windows
https://github.com/CommunityToolkit/Windows/releases/tag/v8.2.250129-preview2
文章、幻燈片等
C# 定式 - MessageBox - 居中父屏并隱藏 X 按鈕 - Qiita
https://qiita.com/chai0917/items/99cc68c9d1ab2fa22b86
用 C# 編寫 .NET 垃圾回收器 - 第 1 部分
https://minidump.net/2025-28-01-writing-a-net-gc-in-c-part-1/
自定義折疊文本指示器 - Visual Studio Blog
https://devblogs.microsoft.com/visualstudio/customizing-collapsed-text-indicators/
如何在 .NET 8 構建時不在輸出路徑中包含平臺
https://zenn.dev/dio0550/articles/e19b8a1c0dc2a5
將 GenericHost 放入 WPF 中,方便使用最新功能的最小集成方法 - Qiita
https://qiita.com/spc_ksudoh/items/622e7c58beedb310b64f
“Parsable” 似乎比 “Parseable” 更合適 -.NET 類型名稱在正式發布前更改- - Qiita
https://qiita.com/RyotaMurohoshi/items/9033e13303ed449f4c4e
在 Blazor 中實現服務器發送事件 - Qiita
https://qiita.com/k-yamamoto/items/da92203669bbc7742790
使用 GitHub Copilot Edits(預覽版)更高效地迭代多個文件 - Visual Studio 博客
https://devblogs.microsoft.com/visualstudio/iterate-across-multiple-files-more-efficiently-with-github-copilot-edits-preview/
在分析器和源生成器中支持多個 .NET SDK 版本
https://andrewlock.net/supporting-multiple-sdk-versions-in-analyzers-and-source-generators/
Shift_JIS 和 CP932 - Qiita
https://qiita.com/chai0917/items/17708cc4d7f3be46430e
C# AWS ALB?Lambda 模擬測試工具在本地環境中調試
https://zenn.dev/ktnd111/articles/141c31ec2a7238
將 Svelte 嵌入到 ASP.NET Core 項目中(沒有 SvelteKit)
https://zenn.dev/zead/articles/svelte-aspnetcore
C# IncrementalGenerator(SourceGenerator) 的入門使用
https://zenn.dev/cadcad_sat/articles/b0645a4c8c19a9
C# - XML - CDATA 部分
https://zenn.dev/chai0917/articles/b1cb826ee4e672
我將我的圖片查看器從 WPF 重寫為 Avalonia
https://www.reddit.com/r/csharp/comments/1idlern/i_rewrote_my_picture_viewer_from_wpf_to_avalonia/
C# 用戶的 PowerShell 備忘單 - Qiita
https://qiita.com/yamarah/items/867697f2cd1b30a43eee
使用 Blazor Server 托管 React
https://dev.to/ruxozheng/host-react-with-blazor-server-6ff
使用 MySQL、Entity Framework 和 ASP.NET Core 以及 .NET Aspire 依賴項創建遷移
https://zenn.dev/kei_lr/articles/dc80c29c8c7181
當你因為無法使用 FluentTextField 而放棄使用 Fluent UI Blazor 的時該怎么辦
https://zenn.dev/microsoft/articles/fluentuiblazor-workaround
避免搜索字典兩次 - Qiita
https://qiita.com/h084/items/3573d4a680fd56eadcfa
使用 Visual Studio 性能探查器 “Memory Usage” 調查內存泄漏 - Qiita
https://qiita.com/pea1205/items/3943e9e76dc90374c25f
使用 StackExchange.Redis 跟蹤 Redis 故障轉移
https://tech.guitarrapc.com/entry/2025/01/25/235900
本文由博客一文多發平臺 OpenWrite 發布!