.NET週刊【4月第1期 2024-04-07】

國內文章

一個程序員的編年史

https://www.cnblogs.com/lunacy/p/18117213

作者擁有15年軟件開發經驗,曾在多家公司工作,項目和團隊起伏充滿變數。2007年,在太皓電子擔任.net工程師,參與開發遠程教育系統,因一行代碼節省了5萬元,但項目最終未成功。2008年,作爲.net工程師,參與政務審批項目,並解決了一家銀行系統對賬出現的一分錢誤差問題。2009年,擔任中軟宏大.net項目經理,負責中工網三個子系統,中工網上線後因價格問題受到非議,作者解釋其價格合理性。

C#/.NET/.NET Core優秀項目和框架2024年3月簡報

https://www.cnblogs.com/Can-daydayup/p/18107444

公衆號定期分享C#/.NET/.NET Core相關的優秀開源項目和框架,並提供項目介紹、功能特點、使用方式和源碼地址。採用固定頻率更新(每週至少兩次),節假日除外,鼓勵大家提交PR。分享的項目包括Unity圖表庫XCharts、.NET Git管理工具SourceGit、EF Core通用倉庫、截圖錄屏工具ShareX、商城系統Module Shop、繪圖庫ScottPlot、Windows啓動器Flow Launcher、Blazor數據可視化庫BlazorChartjs、電子表格組件ReoGrid、密碼庫BouncyCastle、翻譯OCR工具STranslate和WinForm UI庫AntdUI。

.NET分佈式Orleans - 9 - 貪喫蛇項目演示

https://www.cnblogs.com/chenyishi/p/18107217

這個項目採用Orleans7、SignalR等技術,實現了一個分佈式的貪喫蛇遊戲。Orleans7是一個開源.NET分佈式系統框架,能夠簡化分佈式系統的開發,提供水平擴展、高可用性、易於編程和狀態管理等特性,適用於建設大規模、高性能、可靠性強的分佈式系統。遊戲客戶端通過SignalR與服務器實時通信,支持多玩家。玩家可以先啓動Snake.Server服務,然後打開Snake.Client來進行遊戲。項目的源碼託管在Gitee上。

WPF實現樹形表格控件(TreeListView)

https://www.cnblogs.com/qushi2020/p/18109923

本文介紹瞭如何使用WPF框架開發樹形表格控件TreeListView,包括自定義控件與實現列頭綁定。文章首先提供了控件的默認和自定義樣式預覽,然後詳細說明了創建繼承TreeView的TreeListView控件,並討論瞭如何支持列頭顯示和滾動同步問題。

如何自動申請免費的HTTPS證書?

https://www.cnblogs.com/hejiale010426/p/18113997

作者分享瞭如何使用FastGateway自動申請和續期SSL證書的方法。首先介紹了通過Docker或Docker Compose安裝部署FastGateway的步驟,然後引導使用者如何通過FastGateway的管理界面添加和管理證書。在添加域名證書時,需要正確填寫域名和郵箱以成功申請。提醒讀者,所申請的域名需解析到相應服務器,並開放80端口進行http驗證。證書申請成功後還指導瞭如何設置HTTPS的服務端口。文章最後提到,FastGateway是一個開源且可商用的項目,提供了GitHub和Gitee的鏈接以及技術交流羣。

TensorRT C# API 項目介紹:基於C#與TensorRT部署深度學習模型

https://www.cnblogs.com/guojin-blogs/p/18108220

項目通過TensorRT C# API在C#中部署深度學習模型,與TensorRT高性能深度學習推理SDK集成,提供了模型轉換、推理等接口,便於開發者使用TensorRT加速深度學習模型推理過程。版本2.0優化了接口並解決了數據傳輸的問題,提供了源碼和應用案例。同時提供安裝流程,包括對CUDA、Cudnn和TensorRT的配置。

.NET 8使用日誌功能以及自定義日誌提供程序

https://www.cnblogs.com/hudean/p/18117551

.NET 8引入了日誌功能和自定義日誌提供程序。日誌分級從Trace到Critical,提供了不同級別對應的擴展方法與描述。文章介紹了使用log4net進行日誌管理,包含安裝Nuget包、編寫log4net.config配置文件等步驟,並詳述了日誌文件的各種參數設置。

.Net單元測試xUnit和集成測試指南(1)

https://www.cnblogs.com/ruipeng/p/18112221

xUnit.net 是一個用於 C# 和 F# 的免費開源.NET 單元測試工具,它遵循 Arrange、Act、Assert 的測試模式,有助於清晰地編寫單元測試。文章通過創建數學計算類和相應的測試類演示瞭如何使用 xUnit 進行測試,並強調了命名規範的重要性。xUnit 支持通過 Fact 和 Theory 屬性標記測試方法,Theory 屬性結合 InlineData 屬性允許進行數據驅動的測試。

Advanced .Net Debugging 6:程序集加載器

https://www.cnblogs.com/PatrickLiu/p/18096963

本文是《Advanced .Net Debugging》系列的第六篇,主要講解.NET中程序集加載器的相關知識,像CLR加載器介紹、程序集加載問題及其調試方法。文章通過實例代碼配合具體的操作系統、調試工具、開發環境的版本信息來展示調試過程,幫助讀者深入理解CLR加載程序集的機制和上下文,增強解決程序集加載錯誤的能力。

C# 通過ARP技術來觀察目標主機數據包

https://www.cnblogs.com/qwqwQAQ/p/18118712

文章討論瞭如何使用C#調用ARP包來觀察其他電腦上網數據包,並涉及如何防備ARP攻擊。介紹了ARP協議在網絡中的作用和ARP欺騙的原理。通過使用開源的.net庫SharpPcap和PacketDotNet,展示瞭如何獲取本機網絡設備、IP、MAC地址、網關IP,以及如何發送ARP包來獲取網關MAC地址。同時,文章還提供了局域網掃描活動IP和MAC地址的方法,並附帶了完整的代碼和工具介紹。

基於新版寶塔Docker部署在線客服系統過程小記

https://www.cnblogs.com/sheng_chao/p/18118837

作者在業餘時間自主開發並維護了一款免費開源的升訊威在線客服系統,並通過這個項目深入理解了TCP/IP協議的重要性,特別是在網絡不穩定的環境下保證信息傳輸的穩定性。隨着用戶的增多,他發現即使是在網絡中斷的情況下,也能確保消息的不丟失。作者展示了客服系統在新版寶塔 Docker 上的部署過程,包括安裝寶塔面板、Nginx 和 Docker 管理器,並從倉庫獲取鏡像至創建容器以及使用客戶端軟件。同時,該系統也支持訪客端跨平臺使用,並能追蹤並收集訪客信息。作者還計劃分享更多關於該系統併發高性能技術的實現細節,希望可以爲.net社區貢獻優秀的開源產品。

WPF開發分頁控件:實現可定製化分頁功能及實現原理解析

https://www.cnblogs.com/qushi2020/p/17932338.html

本文深入講解了如何使用WPF開發具有高可定製性的分頁控件,分析了控件的基本構成部分,如總條目數、每頁條目數、總頁數等。文章還詳細介紹了與分頁控件相關的命令和事件處理,並使用XAML結合C#代碼展示了具體實現過程。

gRPC入門學習之旅(五)

https://www.cnblogs.com/chillsrc/p/18117157

本系列文章向讀者介紹如何創建和使用gRPC服務端應用。詳細描述了在Visual Studio 2022中創建gRPC控制檯客戶端項目的步驟,包括啓動新項目嚮導、選擇項目類型與框架、添加項目名稱和安裝必要的NuGet包。還討論瞭如何添加.proto協議文件及其引用到客戶端項目,並解釋瞭如此操作會使客戶端項目自動同步服務端的任何更改。

體驗Semantic Kernel圖片內容識別

https://www.cnblogs.com/wucy/p/18111091/sementic-kernel-image-to-text

文章介紹瞭如何使用Semantic Kernel和HuggingFace對圖片進行內容識別,區別於OCR的是它描述圖片的主要內容。示例中展示瞭如何使用相關包和API進行圖片識別,但作者在實際操作中遇到了連接問題,進而提出了本地部署模型的解決方案。作者建議下載Salesforce/blip-image-captioning-base模型到本地,並通過Semantic Kernel調用自己實現的API完成圖片識別任務。

.NET Emit 入門教程:第六部分:IL 指令:5:詳解 ILGenerator 指令方法:創建實例指令

https://www.cnblogs.com/cyq1162/p/18112967

這篇文章詳細介紹了.NET中使用ILGenerator創建實例的指令。主要包括無參數的Newobj指令和用於創建數組的Newarr指令。文章通過實例代碼講解了如何獲取構造函數、創建對象實例及數組實例,並對數組進行賦值,讓讀者能夠理解並應用.NET Emit技術。

記一次 .NET某管理局檢測系統 內存暴漲分析

https://www.cnblogs.com/huangxincheng/p/18118821

朋友的WPF程序出現內存泄漏,作者通過WinDbg分析發現提交內存爲3.1G,對於窗體程序而言偏大。利用!address命令和!eeheap -gc命令分別觀察了提交內存和託管堆內存的使用情況。分析過程中強調基於數據分析,不要單純依賴他人觀點。

WPF動畫教程(PointAnimationUsingPath的使用)

https://www.cnblogs.com/mingupupu/p/18113095

PointAnimationUsingPath是一個WPF類,用於沿指定路徑移動點。它的主要屬性包括定義動畫路徑的PathGeometry,設置動畫持續時間的Duration,定義重複行爲的RepeatBehavior和設置是否自動反向的AutoReverse。PathGeometry類代表連接的線和曲線集,通過其Figures屬性可以操作路徑內容。示例中展示瞭如何使用PathGeometry繪製直線、矩形和圓,以及如何解析SVG路徑數據格式字符串來創建PathFigureCollection對象。

Avalonia的UI組件

https://www.cnblogs.com/chenyishi/p/18116258

Avalonia是一個支持跨平臺的UI框架,用於構建桌面應用程序,搭載各種UI組件、佈局系統、定製樣式和事件處理功能。文章通過示例代碼詳細介紹瞭如何使用和配置UI組件(包括按鈕、文本框等)、組件的生命週期(創建到銷燬)、如何使用佈局容器(如StackPanel、Grid)進行UI佈局,如何定義樣式以及如何處理事件(如按鈕點擊、文本變化)。這些內容有助於開發者理解並運用Avalonia框架來創建功能強大的桌面應用。

WPF中封裝一個自己的MessageBox

https://www.cnblogs.com/qushi2020/p/18107749

這篇文章介紹瞭如何在WPF中自定義MessageBox以適應不同的軟件界面風格,讓其與現代應用程序的設計更加協調。文章先進行了需求分析,接着詳細闡述了通過創建自定義MessageBox類、利用反射技術創建窗口、用戶控件實現參數下按鈕和圖標切換的具體實現步驟。最後,展示了自定義MessageBox在MaterialDesign和HandyControl兩種不同UI庫下的運行效果,並說明了使用方法與原生MessageBox一致。

單元測試篇2-TDD三大法則解密

https://www.cnblogs.com/ruipeng/p/18118155

測試驅動開發(TDD)是一種編程方法,強調先寫單元測試再編寫生產代碼。文章基於UncleBob的TDD概念,介紹了三條TDD原則:不允許寫生產代碼除非讓失敗單元測試通過、不編寫過多單元測試及生產代碼。通過MathCalculator實例闡述瞭如何應用TDD原則,並指出TDD能夠確保代碼質量和可維護性,促使開發者編寫高質量代碼。

.NET Emit 入門教程:第六部分:IL 指令:4:詳解 ILGenerator 指令方法:參數存儲指令

https://www.cnblogs.com/cyq1162/p/18111772

介紹了IL指令中參數存儲指令的使用方法和場景。參數存儲指令包括starg、stloc、stfld、stsfld和數組操作指令。starg用於將值存儲至方法參數,stloc用於存儲至局部變量,stfld用於存儲至對象字段,stsfld用於靜態字段,並提供了相應的示例代碼。詳細說明了每個指令的功能,以及如何在動態方法中使用這些指令進行數據存儲。示例代碼突出顯示了IL編碼的具體應用。由於教程未完全展示,不能評估其全部內容。

學習Source Generators之IncrementalValueProvider

https://www.cnblogs.com/fanshaoO/p/18108051

本文介紹了IIncrementalGenerator中重要部分IncrementalValueProvider,這是一種基於管道模式的編碼實用工具,使得源代碼輸出經過處理轉換。作者列舉了幾種官方提供的Provider,並以AdditionalTextsProvider爲例通過創建項目、添加文件和調試等步驟展示了它的基本使用方法。還介紹瞭如何處理多個文件、過濾特定類型文件、處理數據以及如何組合使用多個IncrementalValueProvider。文章提供了相關代碼倉庫地址,便於讀者實操學習。

C#數據去重的5種方式,你知道幾種?

https://www.cnblogs.com/Can-daydayup/p/18111630

本文介紹了5種C#中的數據去重的方法:使用HashSet保證元素唯一性,利用Linq的Distinct()方法和GroupBy()方法篩選不重複元素,自定義比較器配合循環遍歷以及直接循環遍歷進行去重,每種方法根據不同需求選擇。同時提供了源碼鏈接。

學習Source Generators之從swagger中生成類

https://www.cnblogs.com/fanshaoO/p/18109928

本文介紹瞭如何使用Source Generators通過讀取並解析swagger.json文件自動生成請求響應類的代碼。首先創建兩個項目,一個控制檯程序和一個類庫;然後添加swagger.json文件至控制檯程序,並標記爲AdditionalFiles;接着安裝Newtonsoft.Json包以解析JSON,並修改項目文件以防止編譯異常;最後通過構建管道篩選swagger文件並實現生成代碼邏輯,動態生成代碼並添加至項目中。

學習Source Generators之輸出生成的文件

https://www.cnblogs.com/fanshaoO/p/18110823

本文講解了如何利用EmitCompilerGeneratedFiles輸出Source Generators生成的文件,介紹了通過修改項目屬性組指定文件輸出目錄,並通過環境變量實現動態目錄。輸出文件後可供編輯,但方法有缺點,僅當需要修改和移動輸出文件時適合使用。文章最後提供了代碼倉庫鏈接。

Avalonia的自定義用戶組件

https://www.cnblogs.com/chenyishi/p/18118770

Avalonia是.NET UI框架,可用於創建桌面應用。文章介紹自定義用戶控件的創建與使用,展示了創建包含按鈕和文本框的用戶控件,定義自定義屬性和事件,以及在其他XAML中如何使用此控件。

Visual Studio 2022的安裝 - 編程手把手系列文章

https://www.cnblogs.com/lzhdim/p/18100292

本文介紹了Visual Studio 2022的安裝步驟。包括在線和離線兩種下載方式,在線方式直接安裝最新版,離線方式需更新到最新版。安裝時涵蓋了ASP.NET、.Net桌面開發和C++開發等選項。文章還指導瞭如何激活VS 2022、更新到最新版本以及登錄。最後暗示將會有系列文章講解如何使用Visual Studio 2022進行編程。

.NET Emit 入門教程:第六部分:IL 指令:3:詳解 ILGenerator 指令方法:參數加載指令

https://www.cnblogs.com/cyq1162/p/18102455

本文主要介紹了CIL(Common Intermediate Language)中的參數加載指令以及它們的使用方法。介紹了ldarg、ldarga、ldc_X、ldloc、ldloca和ldfld等加載指令,並詳細解釋了這些指令的功能和用例。還區分了短格式和長格式指令的用途,以及通過示例代碼展示瞭如何在方法中加載參數和常量。

Csharp線程

https://www.cnblogs.com/wenlong-4613615/p/18101331

C#中操作線程的方式主要有Thread、ThreadPool、Task三種。Thread是.net Framework 1.0時代的類,提供了啓動線程、線程等待、線程控制等API。線程池ThreadPool用於管理線程資源。Task是當前主流的異步編程模型,可以開啓線程並支持多進程技術。文章還提到了多線程編程中的線程等待問題、批量開啓線程的方法Paralell、線程異常處理、線程取消等高級話題。

WPF中動畫教程(DoubleAnimation的基本使用)

https://www.cnblogs.com/mingupupu/p/18108029

本文介紹了Windows Presentation Foundation (WPF)中DoubleAnimation動畫的使用,以實現一個隨鼠標點擊移動的小球效果。文中首先展示了通過XAML設置的界面,其中包含了一個Ellipse(表示小球)放在一個Border內。然後介紹了後臺代碼設置,創建了TranslateTransform實例來控制小球的位移,並將其應用於Ellipse的RenderTransform屬性。該Transform使小球能夠沿X和Y軸移動,響應鼠標點擊事件完成動畫效果。

C#的無邊框窗體改變大小解決方案 - 開源研究系列文章

https://www.cnblogs.com/lzhdim/p/18114056

文章講述瞭如何實現無邊框窗體的可調整大小功能,並提供防閃爍技術的相關說明。作者提供了源碼,並封裝到基類中,便於複用。讀者可以直接複製代碼來使用,並根據自己需求進行修改,同時提供了源碼下載鏈接。

主題

介紹適用於 .NET 的 AWS 消息處理框架(預覽版)| Amazon Web Services

https://aws.amazon.com/jp/blogs/developer/introducing-the-aws-message-processing-framework-for-net-preview/

適用於 .NET 的 AWS 消息處理框架的預覽版現已推出。

使用 AWS 的 SQS 和 .NET 中的 EventBridge 進行消息處理的框架。處理可以通過編寫消息處理程序來完成,並且這些功能是專門爲AWS定製的。

還支持使用 OpenTelemetry 進行檢測。

.NET 7 將於 2024 年 5 月 14 日終止支持 - .NET 博客

https://devblogs.microsoft.com/dotnet/donet-7-end-of-support/

關於 .NET 7 支持將於 2024 年 5 月 14 日終止。

由於 STS(標準期限支持),對 .NET 7 的支持將於 2024 年 5 月 14 日結束,即發佈後 18 個月。建議升級到.NET 8。

此外,在支持結束後,.NET 7 將成爲 Visual Studio 17.6 和 17.4 服務更新中不受支持的組件。

全新的 MSBuild 編輯體驗 - Visual Studio 博客

https://devblogs.microsoft.com/visualstudio/experimental-msbuild-editor/

發佈實驗性 Visual Studio 擴展,使編輯 MSBuild 文件獲得更好的體驗。

該擴展可在源代碼編輯器中編輯 MSBuild 項目文件(例如 .csproj 文件)時提供快速提示、彈出窗口、導航和代碼完成等高級幫助。

它目前是 Visual Studio 的擴展,但計劃將來將其移植到 Visual Studio Code。

發佈版本 v2.62.0 · grpc/grpc-dotnet

https://github.com/grpc/grpc-dotnet/releases/tag/v2.62.0

grpc-dotnet v2.62.0 已發佈。

此版本修復了 UWP 上的檢測錯誤。

測試您的本機 AOT 應用程序 - .NET 博客

https://devblogs.microsoft.com/dotnet/testing-your-native-aot-dotnet-apps/

支持本機 AOT 單元測試的 MSTest 早期預覽版已發佈。

此預覽提供了一種使用本機 AOT 編譯 MSTest 單元測試並運行測試的機制。這允許您在作爲本機 AOT 運行時檢查運行時錯誤。

此預覽支持代碼覆蓋率和 TRX 報告生成,但僅支持測試用例檢測等。

Bing on .NET 8:動態 PGO 的影響 - .NET 博客

https://devblogs.microsoft.com/dotnet/bing-on-dotnet-8-the-impact-of-dynamic-pgo/

Bing 推出適用於 .NET 8 的動態 PGO。

當我們在 .NET 8 上實際測試 Dynamic PGO 時,穩態性能有所提高,但在某些工作負載中觀察到延遲峯值。經過調查,發現代碼庫太大,re-JIT隊列堆積太多。通過添加預熱查詢並更改設置已解決此問題。

結果,該公司實現了性能改進,例如 CPU 週期減少了 13%,以及受 GC 影響的查詢百分比減少。

停用:Azure Functions 中對 .NET 應用程序內模型的支持將於 2026 年 11 月 10 日結束。

https://azure.microsoft.com/en-us/updates/retirement-support-for-the-inprocess-model-for-net-apps-in-azure-functions-ends-10-november-2026/

Azure Functions 對 .NET 應用程序內模型的支持將於 2026 年 11 月 10 日終止。

應用程序必須在截止日期之前遷移到進程外模型。

停用:對 .NET 6 的支持將於 2024 年 11 月 12 日結束 - 將 Azure Functions 應用升級到 .NET 8

https://azure.microsoft.com/en-us/updates/retirement-support-for-net-6-ends-on-12-november-2024-upgrade-your-azure-functions-apps-to-net- 8/

Azure Functions 對 .NET 6 的支持將於 2024 年 11 月 12 日結束。

當前在 .NET 6 上運行的應用程序需要升級到 .NET 8。

ODP.NET 23c — 主要開發版本更新

https://medium.com/@alex.keh/odp-net-23c-major-dev-release-update-016297dea26c

ODP.NET 23c 開發人員版本 23.3.2 已發佈。

此版本包括對 Metrics API 和 OpenTelemetry 的支持、從 Azure Key Vault 和 OCI Vault 等配置提供程序檢索連接信息、mTLS 證書選擇以及更快的連接建立等更改。

發佈 ILSpy 9.0 預覽版 1 · icsharpcode/ILSpy

https://github.com/icsharpcode/ILSpy/releases/tag/v9.0-preview1

ILSpy 9.0 預覽版 1 已發佈。

此版本包括對讀取 ECMA-335 元數據和 WebCIL 的支持、增強的語言支持和性能改進。

https://x.com/ilspy/status/1774839673870852465?s=12

文章、幻燈片等

Lock class

https://ufcpp.net/blog/2024/4/lock-class/

關於 .NET 9 和 C# 13 中引入的“Lock”類。

ref/ref 結構變量可以在異步方法中使用

https://ufcpp.net/blog/2024/4/ref-in-async/

一個與 Lock/lock 相關的故事,計劃在 C# 13 中支持,並允許在異步方法中使用 ref/ref struct

如何使用註釋提示 GitHub Copilot for Visual Studio - Visual Studio 博客

https://devblogs.microsoft.com/visualstudio/how-to-use-comments-to-prompt-github-copilot-visual-studio/

關於 Visual Studio 的 GitHub Copilot 使用註釋作爲提示並自行生成註釋的功能。

dotInsights | 2024 年 4 月 | .NET 工具博客

https://blog.jetbrains.com/dotnet/2024/04/03/dotinsights-april-2024/

JetBrains 的 2024 年 4 月 .NET 相關信息摘要。

使用 Redis 讓 AI 驅動的 .NET 應用程序更加一致和智能 - .NET 博客

https://devblogs.microsoft.com/dotnet/redis-makes-intelligent-apps-smarter-and-concient/

瞭解如何在結合 Redis 和 Azure OpenAI 服務的 .NET 應用程序中將 RAG 與語義內核結合使用並緩存頁面輸出。

如何在 Visual Studio 中安裝 GitHub Copilot - Visual Studio 博客

https://devblogs.microsoft.com/visualstudio/how-to-install-github-copilot-in-visual-studio/

有關如何在 Visual Studio 中安裝 GitHub Copilot 的說明。

從用戶角度介紹語義內核 v1

https://zenn.dev/microsoft/articles/semantic-kernel-v1-004

語義內核簡介。本文介紹瞭如何使用 OpenAI 的 API 調用、模板引擎、插件和規劃器。

在 ASP.NET Core 中運行控制器和服務時自動插入日誌

https://zenn.dev/kos59125/articles/82b4d827d4a581

如何自動記錄對 ASP.NET Core 控制器等中使用的 DI 派生服務的調用。介紹在使用 Microsoft.Extensions.DependencyInjection 解析服務時如何使用 DispatchProxy 執行日誌記錄。

單獨使用 .NET Aspire 儀表板 - Qiita

https://qiita.com/takashiuesaka/items/338ae64ca2033e078f7f

如何使用爲 .NET Aspire 提供的示例儀表板應用程序作爲 OpenTelemetry 的容器(無需 Aspire)。

使用 Lambda Web Adaptor 在 Lambda 上運行 ASP.NET Core MVC 應用程序

https://zenn.dev/awwa500/articles/556d1ea8ca5c9f

有關使用 Lambda Web Adaptor 在 AWS Lambda 上運行典型 ASP.NET Core MVC 應用程序的說明。

使用 .NET Aspire 處理數據庫 - SQL Server 版本 - Qiita

https://qiita.com/takashiuesaka/items/6d5ec4d4994649c5dca5

瞭解如何將 SQL Server 與 .NET Aspire 應用程序結合使用。本文還涉及在開發環境的容器中運行 SQL Server、填充初始值以及實際部署期間的注意事項等內容。

使用 .NET Aspire 處理數據庫 - PostgreSQL 版 - Qiita

https://qiita.com/takashiuesaka/items/137cb1450c3d9fbc8d1e

瞭解如何在 .NET Aspire 應用程序中使用 PostgreSQL。本文還涉及在開發環境的容器中運行 PostgreSQL、填充初始值以及實際部署過程中的注意事項等內容。

WinUI 3 的多語言化

https://zenn.dev/shinta0806/articles/winui3-multi-lang

關於WinUI 3(Windows App SDK)應用程序中支持多種語言的機制。

在 C# 中用類型表示狀態時,使用 Json 反序列化數據持久化失敗的原因以及解決方法

https://zenn.dev/jtechjapan_pub/articles/28f84dad6b435b

關於在PostgreSQL的JSONB列中保存帶有.NET類型信息的JSON時反序列化失敗的問題。

如何將私有方法也輸出到 DocFX(記錄 C# XML 註釋)- Qiita

https://qiita.com/mountainn/items/270c8ca34dd67bf257ce

使用 DocFx 創建文檔時如何輸出包括私有方法。

4 周內:Visual Studio LIVE!芝加哥 2024 - Visual Studio 博客

https://devblogs.microsoft.com/visualstudio/visual-studio-live-2024-chicago/

關於名爲 Visual Studio LIVE! Chicago 2024 的活動,該活動將於 4 周後(2024 年 4 月 29 日)舉行。

Blazor C# 教程 - 嘗試使用 Claude API - Qiita

https://qiita.com/firesign2023/items/702407263cdfff117e05

有關在 Blazor 應用程序中使用 Claude API 的教程。

Rider 2024.1 候選版本現已推出 | .NET 工具博客

https://blog.jetbrains.com/dotnet/2024/03/27/the-rider-2024-1-rc/

Rider 2024.1 候選版本已發佈。

此版本包含各種新功能,包括新的監控窗口、集合可視化工具、改進的終端窗口、Blazor WASM 的熱重載等等。

ReSharper 2024.1 候選版本現已推出 | .NET 工具博客

https://blog.jetbrains.com/dotnet/2024/03/27/the-resharper-2024-1-rc/

ReSharper 2024.1 候選版本已發佈。

我在 C# Tokyo 做了一個關於“使我自己的庫與 Aspire 兼容後的印象......”的演講

https://zenn.dev/jtechjapan_pub/articles/685212103358fe

本次會議的後續文章介紹瞭如何使您自己的庫與 .NET Aspire 兼容。

使用新的 Box .NET SDK

https://medium.com/box-developer-japan-blog/新しいbox-net-sdkの使 %E7%94%A8-17a51df64e00

介紹並輕鬆使用 Box 基於代碼生成的新 .NET SDK。

新的Box SDK涵蓋了廣泛的Box API,並且基於代碼生成,使得快速合併最新的API成爲可能。

使用 .NET、Redis 和 Keycloak 實現具有令牌處理程序模式的 API 網關

https://medium.com/@ahmedmohamedelahmar/implement-api-gateway-with-token-handler-pattern-using-net-redis-and-keycloak-38250bfbd733

瞭解如何使用 YARP、Redis 和 Keycloak 實現令牌身份驗證 API 網關。

.NET Framework - 2024 年 3 月累積更新預覽 - .NET 博客

https://devblogs.microsoft.com/dotnet/dotnet-framework-march-2024-cumulative-update-preview/

.NET Framework 2024 年 3 月累積更新的預覽版已發佈。

此版本修復了線程池問題、32 位應用程序中的 Interlocked.Read 速度緩慢以及 ASP.NET 1 月更新的性能問題。

使用 GitHub Actions 製作漂亮的 .NET 測試報告

https://seankilleen.com/2024/03/beautiful-net-test-reports-using-github-actions/

如何使用 GitHub Actions 生成測試和代碼覆蓋率報告並將其反映爲評論。

C# Win32API完整介紹 - Qiita

https://qiita.com/nekotadon/items/f376d17de85dfb84fbd5

介紹如何在 C# (.NET) 中使用 Win32 API,包括定義、實際 API 介紹和代碼示例。

將 .NET MAUI Blazor 應用程序部署到 ProgramFiles

https://mitchelsellers.com/blog/article/deploying-net-maui-blazor-app-to-programfiles

關於 WebView2 在將 .NET MAUI Blazor 應用程序放置在 Program Files(或不可寫)目錄中時出現問題的情況。

20240326_NET Aspire 概述 | Doxel

https://www.docswell.com/s/tanaka_733/ZXYX8N-2024-03-26-aspire

這張幻燈片總結了 .NET Aspire 是什麼、它的功能以及如何使用預覽版 4 的信息編寫代碼。

活動

2024年4月.NET實驗室學習會暨Azure Waigaya會議 (2024/04/27 13:00~)

https://dotnetlab.connpass.com/event/314310/

讓我們學習 .NET:容器(日語)- YouTube

https://www.youtube.com/watch?v=PFUy3W-FeAY

庫、存儲庫、工具等。

Cysharp/Utf8StreamReader:基於 Utf8 的 StreamReader,用於高性能文本處理。

https://github.com/Cysharp/Utf8StreamReader

用於從 Stream 中高效讀取 UTF-8 文本的庫。

endjin/dotnet-adr:用於創建和管理架構決策記錄 (ADR) 的跨平臺 .NET 全局工具。

https://github.com/endjin/dotnet-adr

用於創建架構決策記錄 (ADR) 的工具。

網站、文檔等

推文

添加了從 .NET API 文檔跳轉到 learn.microsoft.com 上的源代碼的鏈接。

https://twitter.com/screechowl25/status/1775934677330862488?s=46&t=ca5OZfzUD88PkVRWAC0PMg

image-20240410202821326

深入探索

添加 Task.WhenEach 以處理任務完成,由 stephentoub · Pull Request #100316 · dotnet/runtime

https://github.com/dotnet/runtime/pull/100316

爲 Task.WhenEach 添加了 PR,等待多個任務並從完成的任務返回。

版權聲明

由於筆者沒有那麼多時間對國內的一些文章進行整理,歡迎大家爲《.NET週刊-國內文章》板塊進行貢獻,需要推廣自己的文章或者框架、開源項目可以下方的項目地址提交Issue或者在我的微信公衆號私信。

格式如下:

  • 10~50字左右的標題
  • 對應文章或項目網址訪問鏈接
  • 200字以內的簡介,如果太長會影響閱讀體驗

https://github.com/InCerryGit/.NET-Weekly

.NET性能優化交流羣

相信大家在開發中經常會遇到一些性能問題,苦於沒有有效的工具去發現性能瓶頸,或者是發現瓶頸以後不知道該如何優化。之前一直有讀者朋友詢問有沒有技術交流羣,但是由於各種原因一直都沒創建,現在很高興的在這裏宣佈,我創建了一個專門交流.NET性能優化經驗的羣組,主題包括但不限於:

  • 如何找到.NET性能瓶頸,如使用APM、dotnet tools等工具
  • .NET框架底層原理的實現,如垃圾回收器、JIT等等
  • 如何編寫高性能的.NET代碼,哪些地方存在性能陷阱

希望能有更多志同道合朋友加入,分享一些工作中遇到的.NET性能問題和寶貴的性能分析優化經驗。目前一羣已滿,現在開放二羣。

如果提示已經達到200人,可以加我微信,我拉你進羣: ls1075

另外也創建了QQ羣,羣號: 687779078,歡迎大家加入。

image-20230703203249615

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章