.NET周刊【7月第3期 2025-07-20】
國內文章
從 Redis 客戶端超時到 .NET 線程池挑戰:饑餓、竊取與阻塞的全景解析
http://www.rzrgm.cn/code-daily/p/18985234
本文探討了在使用 StackExchange.Redis 作為 Redis 客戶端時,出現超時問題的根源。問題通常涉及 .NET 線程池的管理,尤其是在高并發環境下。作者分析了線程饑餓、線程竊取和線程池阻塞等現象,并提供詳細的代碼示例及優化建議。StackExchange.Redis 依賴于底層線程資源,超時的原因可能源于網絡負載、CPU 負載或線程池飽和。了解線程池的動態調整機制,對解決這些問題至關重要。
Visual Studio 現已支持新的、更簡潔的解決方案文件(slnx)格式
http://www.rzrgm.cn/Can-daydayup/p/18985033
解決方案文件是Visual Studio中用于管理項目的文件,后綴為.sln,包含項目引用關系和其他設置。現在支持新格式.slnx,提供更簡潔的XML格式。文中展示了.sln文件的內容,包括不同項目的配置,如Entity、ConsoleApp、Service等,以及全局配置部分。這些信息幫助開發者理解解決方案的結構和配置方式。
dotnetty 內存泄漏的BUG修復了
http://www.rzrgm.cn/fanliang11/p/18991484
本文探討了物聯網平臺中dotnetty框架的內存泄漏問題,強調了內存和CPU穩定性的重要性。作者通過dump分析發現線程阻塞導致資源耗盡,并指出SingleThreadEventExecutor中的Task.Factory.StartNew是性能瓶頸。文章深入講解了問題的來源和修改的代碼,展示了如何通過微服務架構和異步編程來優化系統性能。凱亞物聯網平臺基于.NET8.0進行開發,支持多種協議和功能,具有強大的管理與監控能力。整體內容清晰且具有實用性。
Maui 實踐:用 Channel 實現數據庫查詢時讀取速度與內存占用的平衡
http://www.rzrgm.cn/zhally/p/18989817
本文探討了在數據庫查詢中過濾數據的方法,強調了優化性能與內存占用的重要性。作者提出使用 Channel 技術分批加載數據,逐個處理以節省內存并加速查詢。此方法通過在加載階段進行簡單過濾,允許復雜運算在內存中進行,減少了數據庫的負擔。作者還考慮了在特定條件下提前終止數據加載以優化性能,具有較強的實用性和技術深度。
一個遵循 Material Design 設計規范、開源免費的 Blazor 組件庫
http://www.rzrgm.cn/Can-daydayup/p/18990504
MASA Blazor是一個遵循Material Design規范的開源Blazor組件庫,旨在提高Web應用的開發效率。Blazor基于HTML、CSS和C#,允許開發者創建可重用組件。MASA Blazor提供豐富的預設組件如布局、彈框和全局異常處理,極大減少開發者的時間成本。項目開源且易于入門,包含多種模板供開發者快速使用。用戶通過運行簡潔的命令可快速創建和啟動項目。該項目被收錄于C#/.NET優質項目和框架中,有助于開發者了解最新動態。
如何用Roslyn干掉令人煩躁的硬編碼Dbse
http://www.rzrgm.cn/gmmy/p/18990157
本文探討了如何在.NET中通過使用EF Core ORM來減少在DbContext中硬編碼DbSet的情況。作者提出使用Roslyn和SourceGenerator來在編譯期自動生成DbSet,從而避免運行時反射的性能開銷。操作流程涉及將DbContext類標記為partial,并分析可注入類型。接著,生成新的efcontext.g.cs文件以完成編譯。作者詳細說明了SourceGenerator的機制,強調了其在提高代碼維護性和執行效率方面的重要性。內容適合.NET 6及以上版本。
[原創]《C#高級GDI+實戰:從零開發一個流程圖》第07章:來吧,自定義“畫布”控件!
http://www.rzrgm.cn/lesliexin/p/18985184
本文講述了如何獨立出一個“畫布”控件,以解決程序復用問題。通過創建類庫和自定義控件,實現了流程圖功能的完整性。文中詳細介紹了控件的構建步驟,包括雙緩沖、重寫OnPaint方法、鼠標事件處理以及形狀和連線的管理。此外,文中還有公共方法的定義,方便與外部交互。最后,作者提供了完整的代碼供讀者參考和嘗試。
探索 MCP C# SDK:實現大語言模型與應用的無縫對接
http://www.rzrgm.cn/zhulige/p/18990558
本文探討了MCP C# SDK,以實現大語言模型與應用的無縫對接。MCP是一個開放協議,標準化了應用如何向大語言模型提供上下文信息。MCP C# SDK為開發者提供了便利,支持客戶端和服務器端的開發。SDK主要包含三個包,分別用于主機、HTTP服務器和低級API。通過具體示例,文章展示了如何實現簡單的MCP客戶端和服務器,使得LLMs與外部系統的集成更加高效。
.Net Minimal APIs實現動態注冊服務
http://www.rzrgm.cn/ZYPLJ/p/18988989
.Net Minimal APIs動態注冊服務的實現是文章的重點。本文詳細講解了如何通過修改EndpointExtensions類和IEndpoint接口,實現端點和服務的自動注冊。代碼示例展示了如何查找所有實現IEndpoint的類,并動態調用其MapEndpoints方法。同時,介紹了IEndpoint接口的修改,包括新增服務注冊方法AddServices。文章邏輯清晰,適合需要實踐的開發者解決具體問題。
Semantic Kernel Agent Orchestration編排
http://www.rzrgm.cn/chenyishi/p/18989861
Semantic Kernel的Agent Orchestration框架通過協調不同專業的代理,克服了傳統單代理系統的限制,提升了復雜工作流處理能力。文章詳細介紹了五種編排模式,包括并發編排、順序編排和群聊編排等。這些模式適應不同的實際場景,如并行分析和文檔處理,展示了各個代理如何協同完成任務。雖然當前API處于實驗階段,可能存在變化,但整體框架具有創新性和實用性。文章內容清晰易懂,適合相關領域的開發者參考。
【Container App】創建Container App后發現Application URL不完整
http://www.rzrgm.cn/lulight/p/18992109
這篇文章討論了在內部訪問環境中創建Container App服務后,Application Url不完整的問題。原因是Container App服務取消了默認域名,導致用戶需要自定義域名并完成ICP備案。文章詳細描述了備案的必要性和相關規定。為了解決這一問題,作者提出了兩種自定義域名的配置方法,并提供了逐步的解決方案,包括創建Private DNS Zone、配置DNS后綴和生成自簽名證書。使用自定義域名后,可以成功訪問Container App。
多Agent協作入門:并發編排模式
http://www.rzrgm.cn/edisontalk/p/-/quick-start-agent-orchestration-concurrent
本文討論了Semantic Kernel中多Agent協作的不同編排模式,重點介紹了并發編排模式。傳統單Agent系統在處理復雜任務時受到限制,因此需采用多Agent編排。Semantic Kernel支持多種模式,適配不同需求。通過簡單的代碼示例,展示如何實現并發編排,利用多個Agent獨立處理同一任務,從而獲得多角度的解答。此外,文中還說明了如何設置.NET項目和API配置,以方便開發和實驗。整體結構清晰,便于理解。
多Agent協作入門:順序編排模式
http://www.rzrgm.cn/edisontalk/p/-/quick-start-agent-orchestration-sequential
本文介紹了Semantic Kernel中的順序編排模式,適用于文檔審閱、數據處理等任務。作者通過示例演示如何創建一個廣告文案生成工作流,并詳細說明了實現步驟,包括Agent的設置和.NET項目的配置。文章清晰地描繪了每個Agent在工作流中的作用,并包括了必要的代碼示例以幫助讀者理解和應用。考慮到當前技術的實用性和相關性,文章內容具有較高的技術深度和實用性,且易于閱讀。
【譯】借助 AI 驅動的代碼審查,大規模提升代碼質量
http://www.rzrgm.cn/MeteorSeed/p/18988988
微軟開發的AI驅動代碼審查助手顯著提高了開發人員的生產力和代碼質量。它通過自動檢查、建議改進和生成PR摘要來優化拉取請求(PR)的審查流程,幫助工程師快速發現問題,從而節省了時間。AI助手像人類審查員一樣參與討論,并能回答審查人員的問題。通過無縫集成到工作流程中,AI助手提升了審查效率和代碼質量。實踐表明,該助手在提高PR完成速度和代碼整體質量方面具有明顯成效。
Maui 實踐:不要把 DataPackagePropertySetView 看作一層皮
http://www.rzrgm.cn/zhally/p/18991307
文章詳細探討了在控件上動態擴展DragDrop能力的實現,強調了DragGestureRecognizer與DropGestureRecognizer之間的相互配合。重點介紹了DragStartingEventArgs、DragEventArgs和DataPackage等重要事件參數,闡明了數據傳輸的過程。作者提供了代碼示例,說明了數據如何在應用程序中封裝和傳遞。文中對各個類的功能進行了清晰的解讀,適合開發者深入理解DragDrop機制和實施方法。整體內容具有實用性和技術深度。
DotNetty 1.0 發布,希望不會太晚。
http://www.rzrgm.cn/fanliang11/p/18994761
本文介紹了dotnetty 1.0版本的發布,重點修復了內存泄漏問題并測試了運行穩定性。平臺基于.NET8.0,支持微服務和物聯網的開發,具備多協議適配能力。文章提供了演示鏈接和使用說明,建議通過nuget下載安裝,并對任務調度進行優化的示例代碼也進行了展示。凱亞物聯網平臺為用戶提供統一管理和數據可視化等功能,有助于快速構建微服務系統。
【EF Core】帶主鍵實體與無主鍵實體
http://www.rzrgm.cn/tcjiaan/p/18993171
本文介紹了 EF Core 中主鍵的概念及其用法。主鍵在數據表中用于唯一標識記錄,具有 UNIQUE 和 NOT NULL 的特性。文章詳細列舉了 EF Core 中如何自動識別主鍵,包括如何創建控制臺應用,定義實體類,并使用 Sqlite 數據庫。通過實例展示了主鍵識別的過程,強調了屬性命名的重要性。同時,文中還提到了輔助工具使用的注意事項,對開發者有實用性。整體內容清晰易懂,適合初學者。
主題
MCP C# SDK 獲得重大更新:支持協議版本 2025-06-18 - .NET 博客
https://devblogs.microsoft.com/dotnet/mcp-csharp-sdk-2025-06-18-update/
NuGet.org 包刪除 – 學習與預防 · NuGet/主頁 · 討論 #14429
https://github.com/NuGet/Home/discussions/14429
宣布推出 Uno 平臺 6.1:CommandBarFlyout、Studio 更新等
https://platform.uno/blog/uno-platform-6-1/
Aspire 路線圖(2025 → 2026) · dotnet aspire · 討論 #10644
https://github.com/dotnet/aspire/discussions/10644
JetBrains .NET Tools 即將發生的變化 | .NET Tools 博客
https://blog.jetbrains.com/dotnet/2025/07/25/upcoming-changes-to-dotnet-tools/
發布
- aws/aws-sdk-net
- Azure/azure-cosmos-dotnet-v3
- Azure/azure-sdk-for-net
- Azure.AI.Agents.Persistent_1.1.0, Azure.Communication.CallAutomation_1.4. 1,Azure.ResourceManager_1.13。 2, Azure.ResourceManager.RedisEnterprise_1.2. 0 Azure.ResourceManager.RedisEnterprise_1.2.1,Azure.Storage.DataMovement_12.2. 0, Azure.Storage.DataMovement.Blobs_12.2. 0, Azure.Storage.DataMovement.Files.Shares_12.2. 0、Microsoft.Azure.WebJobs.Extensions.SignalRService_2.1。 0、Microsoft.Azure.WebJobs.Extensions.Storage_5.3。 5、Microsoft.Azure.WebJobs.Extensions.Storage.Blobs_5.3。 5, Microsoft.Azure.WebJobs.Extensions.Storage.Queues_ 5.3.5
- dotnet/奧爾良
- dotnet/SqlClient
- googleapis/google-cloud-dotnet
- Google.Cloud.Bigtable.V2-3.20.0、 Google.Cloud.Compute.V1-3.11. 0, Google.Cloud.Container.V1-3.35. 0、Google.Cloud.Firestore.Admin.V1-3.14。 0、Google.Cloud.NetworkConnectivity.V1-2.11。 0、Google.Cloud.PolicySimulator.V1-1.3。 0、Google.Cloud.Run.V2-2.15。 0、Google.Cloud.Video.Transcoder.V1-2.10。 0、Google.Maps.AddressValidation.V1-1.5。 0
- StackExchange/StackExchange.Redis
- unoplatform/uno
文章、幻燈片等
自行車輸入裝置系統建設
https://qiita.com/NSS_FS_ENG/items/046b7b2d77c76b9c3297
如何利用天文學在 C# 中計算太陽的位置
https://qiita.com/haystacker/items/22ac24d4e15f20ea46fc
在 ASP.NET Core Identity 中保存上次登錄日期和時間
https://qiita.com/omt_teruki/items/b509774cba24109a1842
.NET MAUI 中的縱桿導航 UI
https://dev.to/icebeam7/joystick-navigation-ui-in-net-maui-5974
在 ASP.NET Core 中使用 Azure Monitor OpenTelemetry 輸出日志
https://zenn.dev/zead/articles/application-insight
使用 C# SDK 配置的 MCP 工具創建 Azure AI Foundry 代理
https://qiita.com/ns_asaka/items/f5ee4b06aa7b4ed0fa5d
Pluralsight 上現已提供適用于 VS 訂閱者的全新學習路徑 - Visual Studio Blog
https://devblogs.microsoft.com/visualstudio/vss-pluralsight-2025-2/
ASP.NET Core 和 .NET 10 中的實時服務器發送事件
https://dev.to/antonmartyniuk/real-time-server-sent-events-in-aspnet-core-and-net-10-349b
快速編寫 C# 需要了解的內容
https://zenn.dev/aakei/articles/b858aee98b602e
ReSharper 和 .NET Tools 2025.2 候選版本現已推出 | .NET Tools 博客
https://blog.jetbrains.com/dotnet/2025/07/24/resharper-dot-net-tools-2025-2-release-candidate/
The Rider 2025.2 候選版本來了! | .NET Tools 博客
https://blog.jetbrains.com/dotnet/2025/07/24/the-rider-2025-2-release-candidate/
通過設置 Microsoft 信任簽名進行戰斗
https://weblog.west-wind.com/posts/2025/Jul/20/Fighting-through-Setting-up-Microsoft-Trusted-Signing
解決 .NET 10 中的源生成器“標記屬性”問題:探索 .NET 10 預覽版 - 部分 4
詢問模式與代理模式 - 為 .NET 選擇正確的 Copilot 體驗 - .NET 博客
https://devblogs.microsoft.com/dotnet/ask-mode-vs-agent-mode/
使用 JSON 模式和 .NET 進行組合、多態性和模式匹配 | 端金
https://endjin.com/blog/2025/07/composition-polymorphism-pattern-matching-with-json-schema-dotnet
如何在 Blazor 中測試導航管理器 - Qiita
https://qiita.com/KM_20005/items/0a8c8911b641e50e7ebd
嘗試在 ASP.NET 核中通過IP地址控制訪問 - 奇塔
https://qiita.com/omt_teruki/items/267b3fefc5d846d6d085
.NET Aspire 2:開發人員儀表板
https://www.telerik.com/blogs/net-aspire-2-developer-dashboard
解決 .NET 中的跨平臺彈出問題
https://platform.uno/blog/solving-the-cross-platform-flyout-problem-in-net/
將文件拖放到服務器 (MudBlazor)
https://zenn.dev/tetr4lab/articles/3172abc12bad43
適用于 WPF 的 WinUI 3:在 Template Studio 中生成并允許在未打包中調試的步驟
https://zenn.dev/suusanex/articles/7deb1dbdf092fa
在 ASP.NET Core OData + Blazor WebAssembly + Kiota 中實現 Cookie 身份驗證
https://zenn.dev/hat_kotap/articles/f54cf9519bfbd5
鉤住 C# 中的非托管庫加載以隨心所欲地求解路徑
https://zenn.dev/yamachu/articles/c17326623d3837
在 C# 中創建 MCP 服務器
https://zenn.dev/yakumo3/articles/acae16a28ddf47
[.NET 10.0] dnx 等 [預覽 6]
https://zenn.dev/sator_imaging/articles/8535ccd699f677
深入探討
[提案]: 從約束中推斷類型參數 · 期數 #9453 · dotnet/csharplang
https://github.com/dotnet/csharplang/issues/9453
C# .NET 交流群
相信大家在開發中經常會遇到一些性能問題,苦于沒有有效的工具去發現性能瓶頸,或者是發現瓶頸以后不知道該如何優化。之前一直有讀者朋友詢問有沒有技術交流群,但是由于各種原因一直都沒創建,現在很高興的在這里宣布,我創建了一個專門交流.NET性能優化經驗的群組,主題包括但不限于:
- 如何找到.NET性能瓶頸,如使用APM、dotnet tools等工具
- .NET框架底層原理的實現,如垃圾回收器、JIT等等
- 如何編寫高性能的.NET代碼,哪些地方存在性能陷阱
希望能有更多志同道合朋友加入,分享一些工作中遇到的.NET問題和寶貴的分析優化經驗。目前一群已滿,現在開放二群。可以加我vx,我拉你進群: ls1075 另外也創建了QQ Group: 687779078,歡迎大家加入。

浙公網安備 33010602011771號