.NET週報 【6月第4期 2023-06-25】

2023-06-28 12:01:53

國內文章

如何在long-running task中呼叫async方法

https://www.cnblogs.com/eventhorizon/p/17497359.html

long-running task 是指那些長時間執行的任務,比如在一個 while True 中執行耗時較長的同步處理。本文帶你瞭解在long-running task中呼叫async方法的姿勢。

使用 C# 進行AI工程開發-基礎篇(二):NativeAOT

https://zhuanlan.zhihu.com/p/638859407

NativeAOT 是 dotnet 新增加的執行模式。其中,AOT是 Ahead-Of-Time 的縮寫,和 JIT 邊執行邊編譯不同,NativeAOT 直接將 IL 程式碼編譯為目標平臺的機器碼釋出,它的檔案大小、啟動時間和記憶體佔用均比 JIT 低。

C#使用企業微信群機器人推播生產資料

https://www.cnblogs.com/hello-momo/p/17504219.html

在日常的工作生產中,經常會有將將生產資料或者一些資訊主動推播給相關的管理人員,我們公司在開發WMS系統時,為了倉庫的儲存安全,需要在危廢品庫存達到一定的儲量時,自動通知倉管員去處理危廢品,所以就需要程式自動的通過企業微信告知倉管員,這個時候就需要用到企業微信的機器人了。

如何取消Blazor Server煩人的重新連線?

https://www.cnblogs.com/hejiale010426/p/17498629.html

許多Blazor使用者在開發內部系統時會選擇更快的Blazor Server模式。由於基於SignalR實現,它在存取時會建立WebSocket長連線,用於互動和介面渲染。這可能導致使用者在操作介面時,伺服器寬度被佔用。會在無操作情況下自動斷開連線,導致不美觀的重連線介面及灰色效果。我們將使用微軟提供的解決方案來處理這個問題。

C#/.Net的多播委託到底是啥?徹底剖析下

https://www.cnblogs.com/tangyanzhi1111/p/17489381.html

委託在.Net裡面被受控程式碼封裝了之後,看起來似乎有些複雜。但是實際上委託即是函數指標,而多播委託,即是函數指標鏈。本篇來只涉及底層的邏輯,慎入。

聊聊 ASP.NET 6 整潔架構開發模板

https://www.cnblogs.com/edisonchou/p/aspnet6_clean_architecture_template_sample.html

大家好,我是Edison。最近看了一些整潔架構(CleanArchitecture)的文章,自己和同事也簡單寫了一個基於整潔架構的ASP.NET 6開發模板在玩。這裡就僅僅拋個磚,案例主要以自己根據小組實際情況做了一些裁剪,可能不具有通用的應用性,大家看看就好。

記一次 .NET 某企業內部系統 崩潰分析

https://www.cnblogs.com/huangxincheng/p/17490807.html

前些天有位朋友找到我,說他的程式跑著跑著就崩潰了,讓我看下怎麼回事,其實沒怎麼回事,抓它的 crash dump 就好,具體怎麼抓也是被問到的一個高頻問題,這裡再補一下連結: [.NET程式崩潰了怎麼抓 Dump ? 我總結了三種方案] https://www.cnblogs.com/huangxincheng/p/14811953.html ,採用第二種 AEDebug 的形式抓取即可。

ASP.NET Core 6框架揭祕範例演示[39]:使用最簡潔的程式碼實現登入、認證和登出

https://www.cnblogs.com/artech/p/inside-asp-net-core-6-39.html

認證是一個確定請求存取者真實身份的過程,與認證相關的還有其他兩個基本操作——登入和登出。ASP.NET Core利用AuthenticationMiddleware中介軟體完成針對請求的認證,並提供了用於登入、登出以及「質詢」的API,本篇文章利用它們使用最簡單的程式碼實現這些功能。(本文提供的範例演示已經同步到《ASP.NET Core 6框架揭祕-範例演示版》)

主題

釋出版本 v2.54.0 grpc/grpc-dotnet

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

grpc-dotnet (gRPC for .NET) v2.54.0 已釋出。

此版本包含多項改進和錯誤修復,包括在身份驗證攔截器中支援 CancellationToken。

Microsoft Forms Service 的 .NET 6 之旅 - .NET 部落格

https://devblogs.microsoft.com/dotnet/microsoft-forms-services-journey-to-dotnet-6/

將 Microsoft Forms(一種用於建立調查的服務)微服務遷移到 .NET 6 的案例研究。

Microsoft Forms 是使用 .NET Framework 4.7.2 的 WebForms 和 Web API 構建的微服務,但前端 REST API 和後端 REST API 服務已遷移到 .NET 6。

本文介紹了遷移方法和實施結果。遷移的方法是首先刪除HttpContext,然後更新依賴項並將專案更改為多目標構建,例如netstandard2.0、net472、net6.0。當時我們還介紹了多目標構建增加帶來的問題。引入後,CPU使用率和響應延遲得到了極大的改善。

ReSharper 和 Rider 2023.1.3 – 另一組錯誤修復現已釋出 | .NET 工具部落格

https://blog.jetbrains.com/dotnet/2023/06/23/rsrp-and-rd-2023-1-3-bug-fix/

ReSharper 和 Rider 2023.1.3 釋出。

它包括對 Visual Studio 中 ReSharper 效能問題的修復、對 dotTrace 和 dotMemory 錯誤的修復、對 Rider 更新程式崩潰問題的修復以及其他 IDE 錯誤的修復。

NPOI 2.6.1 中的新增功能

https://tonyqus.medium.com/whats-new-in-npoi-2-6-1-92b5f07c479c

NPOI 2.6.1 已釋出。

此版本包括多項改進和錯誤修復,包括增加了對面積圖和餅圖的支援。

為 fsharpConf 2023 做好準備!-.NET 部落格

https://devblogs.microsoft.com/dotnet/tune-in-for-fsharpconf-2023/

介紹 F# 社群活動 fsharpConf 2023 的文章。

fsharpConf 2023 是 6 月 26 日舉行的虛擬 F# 社群活動。文章介紹了活動的時間表。

介紹適用於 .NET 的新 T4 命令列工具 - .NET 部落格

https://devblogs.microsoft.com/dotnet/t4-command-line-tool-for-dotnet/

推出適用於 .NET 的 T4 命令列工具,自 Visual Studio 2022 17.6 起可用。

Visual Studio 2022 17.6 及更高版本現在附帶可與 .NET 6 配合使用的新版本 T4(文字模板)執行命令列工具。

該工具的新版本可與 .NET 6 執行時配合使用,允許您使用 T4 模板中的現代 .NET 庫。當前的限制是不支援從 IDE 執行和使用 MSBuild Task 執行。

我們還要求您提供反饋,甚至文章中還連結了一項調查。

文章、幻燈片等

【日文】使用 C# 中的 MSTest 的精細程式碼覆蓋率測量覆蓋率 - Qiita

https://qiita.com/YoshijiGates/items/efc700574edbf8eb1ab2

如何在 Visual Studio 2022 社群中檢查程式碼覆蓋率。

本文介紹如何安裝和檢查 Fine Code Coverage 擴充套件。

【英文】如何使用 Memgraph、C# 和 D3.js 構建基於航班網路分析圖的 ASP.NET 應用程式

https://memgraph/how-to-build-a-flight-network-analysis-graph-based-asp-net-application-with-memgraph-c-and-d3-js-601d7e7a6bdb

有關使用記憶體圖形資料庫 Memgraph 在 ASP.NET 應用程式中通過 D3.js 構建視覺化工具的教學。

【日文】C# 中的 ChatGPT API:與 AI 組合(使用函數呼叫)- Qiita

https://qiita.com/fsdg-adachi_h/items/7b2e75fa916cd6d4d804

如何使用ChatGPT的API與AI進行音樂創作並建立MIDI檔案文章中是使用ChatGPT的Function Calling來實現的。

【英文】使用 Html Agility Pack 或 AngleSharp 解析 C# 網站

https://blog.elmah.io/parsing-websites-in-c-with-html-agility-pack-or-anglesharp/

如何使用 Html Agility Pack 和 AngleSharp 抓取網站。

【英文】通過源連結改進 .NET 偵錯體驗 - NDepend

https://blog.ndepend.com/improved-net-debugging-experience-with-source-link

介紹如何使用 Source Link 改善 .NET 偵錯體驗。

【英文】使用 YubiKey .NET SDK 在 C# 中進行雜湊簽名和簽名驗證

https://medium.com/@matt.heimlich/hash-signing-and-signature-validation-in-c-using-the-yubikey-net-sdk-dbaa227255dd

如何使用 YubiKey 的 .NET SDK 通過 YubiKey 進行雜湊簽名和簽名驗證。

【英文】如何在 Java 中構建共用庫並從 .NET 程式碼呼叫它

https://medium.com/@sixpeteunder/how-to-build-a-shared-library-in-java-and-call-it-from-dotnet-code-b47c22300456

如何從 .NET 呼叫構建為共用庫的 Java 庫。

本文介紹瞭如何通過 C 語言套件裝器從 .NET 呼叫 GraalVM 的本機庫。

【日文】使用 GitHub Actions 自動部署用 C# 建立的 AWS Lambda 函數 - Qiita

https://qiita.com/shin4488/items/20660044f6c86cfdead2

瞭解如何從 GitHub Actions 部署適用於 .NET 的 AWS Lambda 函數。

【日文】NCMB 的 C# (MAUI/Xamarin) SDK 現在支援推播通知操作 - Qiita

https://qiita.com/goofmint/items/585b63dcb6374382afb1

關於 Nifuku 移動後端 (NCMB) 社群對 SDK 的推播通知操作的支援以及如何使用它。

【日文】nanoFramework 從 XIAO ESP32C3 ADC 開始

https://zenn.dev/matsujirushi/articles/8bdbccd464d571

如何在 Seeed Studio XIAO ESP32C3 中使用 nanoFramework 讀取 ADC 值。

【日文】告別 Xamarin.Mac 並轉向 .NET 7

https://zenn.dev/dogfortune/articles/51d1b2aa17be27

一篇文章總結了從 Xamarin.Mac 到 .NET 7 的遷移工作中的一些要點。

【日文】關於在 Power 上執行 .NET 的故事 #4 - 使用 ODBC 驅動程式連線到 MariaDB - Qiita

https://qiita.com/Nakaji1106/items/429034b3707c65c4d6ff

關於在 Power 架構上執行 .NET 並使用 ODBC 驅動程式連線到 MariaDB 的文章。

【日文】嘗試將應用提交到 Microsoft Store-Qiita

https://qiita.com/dhq_boiler/items/781b2ef98ce26a090566

說明從向 Microsoft Store 提交應用程式到釋出應用程式的過程。

【英文】使用委派許可權和 Microsoft Graph 在 ASP.NET Core 中重置密碼

https://damienbod.com/2023/06/19/reset-passwords-in-asp-net-core-using-delegated-permissions-and-microsoft-graph/

瞭解如何在 ASP.NET Core 應用程式中使用 Microsoft Graph 重置使用者密碼。

【英文】使用自定義執行時檢查器和安裝程式安裝 .NET 桌面執行時

https://weblog.west-wind.com/posts/2023/Jun/21/Creating-a-Runtime-Checker-and-Installer-for-a-NET-Core-WPF-Application

用於檢查 .NET 執行時的安裝狀態並安裝它的自定義安裝程式。

本文涵蓋了執行時分發、獨立分發、共用執行時以及安裝程式的實現說明。

【日文】修復WSL2的.NET SDK無法識別的現象 - kkamekawa的部落格

https://kkamegawa.hatenablog.jp/entry/2023/06/24/191525

當 WSL 2 不再正確識別 .NET SDK 時進行故障排除。

【英文】使用 MiniValidation 遞迴地驗證巢狀的 DataAnnotation IOptions

https://andrewlock.net/validating-nested-dataannotation-options-recursively-with-minivalidation/

使用標準「ValidateDataAnnotations」作為 IOptions 驗證時如何解決缺少巢狀驗證的問題本文介紹瞭如何使用MiniValidation進行驗證。

【日文】可以建立Windows安裝程式的wixtoolset概述(v4) - Qiita

https://qiita.com/skitoy4321/items/194888be042e5c4c32ad

關於 WiX v4 的概述文章。它解釋了 WiX 使用的檔案以及如何構建它。

【日文】C# 12.0 中的新增功能

https://ufcpp.net/study/csharp/cheatsheet/ap_ver12/

C# 12 中引入的新功能的描述(當前為預覽版)。

【日文】在 .NET 字串比較中檢測未指定的區域性

https://ufcpp.net/blog/2023/6/ca-specify-culture/

當未指定區域性時,如何在字串比較中發出警告/錯誤,以便提前通知您。

本文介紹了一種使用 .NET 5 中引入的 NetAnalyzers 和 .editorconfig 來出錯的方法。

【英文】宣佈在 Visual Studio 中建立拉取請求 - Visual Studio 部落格

https://devblogs.microsoft.com/visualstudio/create-a-pull-request-in-visual-studio/

引入了建立 Visual Studio 2022 17.7 預覽版 2 中新增的拉取請求的功能。

【英文】如何檢測堆分配

https://bartwullems.blogspot.com/2023/06/how-to-detect-heap-allocations.html

關於如何檢測堆分配。

本文介紹了使用 Visual Studio 的探查器和 ClrHeapAllocationAnalyzer 進行程式碼檢測。

【英文】將您的 .NET Minimal API 端點視為應用程式層

https://timdeschryver.dev/blog/treat-your-net-minimal-api-endpoint-as-the-application-layer

將 ASP.NET Core 的最小 API 視為架構應用程式層的設定。

【英文】List 在 .NET 的底層是如何工作的?

https://steven-giesel.com/blogPost/06e2c8e8-0119-4e8d-9227-3cb922a8c916

List<T> 內部實現的簡要描述。

網站、檔案等

推文

在 Visual Studio 2022 17.6 中,GC 和 CPU 現在能夠通過遙測看到高負載情況。

在接下來的執行緒中,我解釋了它如何在什麼樣的系統中使用。

https://twitter.com/davkean/status/1672295235026829312?s=12

版權宣告

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

格式如下:

  • 10~50字左右的標題
  • 對應文章或專案網址存取連結
  • 200字以內的簡介,如果太長會影響閱讀體驗

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

.NET效能優化交流群

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

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

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

如果提示已經達到200人,可以加我微信,我拉你進群: lishi-wk

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

抽獎送書活動預熱!!!

感謝大家對我公眾號的支援與陪伴!為慶祝公眾號一週年,抽獎送出一些書籍,請大家關注公眾號後續推文!