.NET週報 【5月第1期 2023-05-06】

2023-05-09 09:00:30

國內文章

聊一聊 Valgrind 監視非託管記憶體洩露和崩潰

https://www.cnblogs.com/huangxincheng/p/17374315.html、

只要是程式總會出現各種莫名其妙的問題,比如:非託管記憶體洩露,程式崩潰,在 Windows 平臺上一般用微軟自家的官方工具 App Verifier 就可以洞察,那問題出在 Linux 上怎麼辦呢?由於 Linux 崇尚自由,需要在各種牛鬼蛇神寫的非官方開源軟體中尋找一個比較靠譜的,比如本篇所說的 Valgrind

個人感覺 ValgrindApp Verifer 定位是差不多的,技術上前者使用 hook 勾點,後者使用模擬cpu,有點像 windbg 的 TTD 偵錯,具體資訊參考:https://valgrind.org/

C#處理醫學影像(四):基於Stitcher演演算法拼接人體全景脊柱骨骼影像

https://www.cnblogs.com/Uncle-Joker/p/17373754.html

在拍攝脊柱或胸片時,經常會遇到因裝置高度不夠需要分段拍攝的情況,對於影像科診斷查閱影像時希望將分段影像合併成一張影像,有助於更直觀的觀察病灶。

聊一聊 GDB 偵錯程式時的幾個實用命令

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

用慣了宇宙第一的 Visual Studio 再用其他的開發工具還是有一點不習慣,不習慣在於想用的命令或者面板找不到,總的來說還是各有千秋吧,今天我們來聊一下幾個在偵錯中比較實用的命令:

  • 檢視記憶體
  • 硬體斷點
  • 虛擬記憶體佈局

使用 Semantic Kernel 實現 Microsoft 365 Copilot 架構

https://www.cnblogs.com/shanyou/p/17367521.html

3月16日,微軟釋出了微軟365 Copilot[1]。 Microsoft 365 Copilot 將您現有的 Word、Excel、PowerPoint、Outlook 和 Teams 與大型語言模型 (LLM) 的強大功能以及來自 Microsoft Graph 和 Microsoft 365 應用的資料相結合,以建立前所未有的體驗。正如您在官方視訊中看到的那樣,Microsoft 365 Copilot的核心是一個名為Copilot System的編排器。 今天Semantic Kernel 部落格上釋出了一篇文章介紹了Copilot 聊天範例程式[2]。 我認為很容易從這個Copilot 聊天範例程式開始 實現這樣的一個架構。

ChatGPT Plugin 外掛開發:基於 ASP.NET Core Minimal API

https://www.cnblogs.com/savorboard/p/chatgpt-plugin.html

這是一篇ChatGPT外掛開發教學,描述如何使用 ASP.NET Core Minimal API 開發 ChatGPT 外掛,以最簡單的 Todo List 指導範例作為入門教學。

這個Todo List外掛主要功能是以自然語言的方式向ChatGPT發起指令,ChatGPT將根據合適的時機選擇呼叫此外掛。例如:我明天下午3點有一個會議,請幫我記錄。此時 ChatGPT將會根據外掛的後設資料功能描述,然後選擇呼叫外掛,將明天下午3點有一個會議通過API記錄到待辦列表中。

話題

【英文】介紹 Temporal .NET - .NET 中的確定性工作流編寫

https://temporal.io/blog/introducing-temporal-dotnet

宣佈 Temporal 工作流引擎支援 .NET。

文章介紹了用 C# 實現和呼叫工作流的程式碼範例以及相關機制等。

目前 .NET SDK 處於 Alpha 釋出階段,API 可能會發生變化,但所有功能都已實現,預計不久將釋出 Beta 和 GA。

【英文】亞馬遜網頁服務推出 Bob's Used Books - 一個新的、真實的 .NET 範例應用程式

https://aws.amazon.com/jp/blogs/aws/introducing-bobs-used-books-a-new-real-world-net-sample-application/

AWS 釋出了用 .NET 6 構建的名為 Bob's Used Books 的虛構二手書店電商網站範例應用程式。

該應用程式實現了電商網站的一系列功能,並作為使用 Amazon Web Service 各種服務的範例而建立。

未來計劃準備部署到 App Runner 或 Amazon EKS 等內容。

【英文】在 VS Code 中宣佈 .NET 移動偵錯。使用 Uno Platform 或 .NET MAUI 進行 VS Code 移動開發。

https://platform.uno/blog/announcing-net-mobile-debugging-in-vs-code-mobile-development-in-vs-code-with-uno-platform-or-net-maui/

Uno Platform 的 Visual Studio Code 擴充套件功能支援移動開發。

通過這個支援,可以在 Windows、macOS、Linux 上使用 Visual Studio Code 構建和偵錯 Uno Platform 和 .NET MAUI。

【英文】釋出 2.2.6 · mysql-net/MySqlConnector

https://github.com/mysql-net/MySqlConnector/releases/tag/2.2.6

Async MySQL Connector 2.2.6 已釋出。

包括在 TransactionScope 中回滾時由於死鎖異常導致的記憶體漏失問題等一些修復。

【英文】釋出 2.6.111 · StackExchange/StackExchange.Redis

https://github.com/StackExchange/StackExchange.Redis/releases/tag/2.6.111

StackExchange.Redis 2.6.111 已釋出。

包括使用 Envoy 代理時的多槽命令支援以及一些錯誤修復和改進。

【英文】釋出釋出 v2.53.0 · grpc/grpc-dotnet

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

gRPC (grpc-dotnet) v2.53.0 已釋出。

包括錯誤訊息的改進以及在 .NET 6 中啟用修剪時的異常修復等一些修復。

【英文】Fleet 中的 C# 支援:解決方案檢視、單元測試等!| .NET 工具部落格

https://blog.jetbrains.com/dotnet/2023/05/04/csharp-support-in-fleet-solution-view-unit-testing-and-more/

JetBrains Fleet 的 C# 支援新增瞭解決方案檢視和單元測試。

文章介紹瞭解決方案檢視和單元測試相關功能以及多目標框架專案支援的改進、解決方案屬性、快捷鍵對映的新增、執行設定更改的需要等。

【英文】Rider 2023.2 路線圖 | .NET 工具部落格

https://blog.jetbrains.com/dotnet/2023/05/03/rider-2023-2-roadmap/

JetBrains Rider 2023.2 的路線圖。

  • 語言支援和改進
  • 重建構建工具視窗
  • 新 UI
  • 新解決方案嚮導
  • 遊戲開發
    • Unity
      • 繼續支援 DOTS
      • UI Toolkit
      • 著色器
    • Unreal Engine
      • 效能改進
      • 偵錯
  • 設定同步
  • 其他改進

【英文】ReSharper 2023.2 路線圖 | .NET 工具部落格

https://blog.jetbrains.com/dotnet/2023/05/03/resharper-2023-2-roadmap/

JetBrains ReSharper 2023.2 的路線圖。

  • 語言支援和改進
  • 效能
  • 預測性偵錯程式
  • 程式碼風格

【英文】宣佈支援 .NET MAUI 和 Azure Functions 的 .NET 升級助手的新版本!- .NET 部落格

https://devblogs.microsoft.com/dotnet/upgrade-assistant-general-availability/

釋出了 .NET Upgrade Assistant 的新版本。

該版本支援升級 .NET MAUI 和 Azure Functions。

  • 支援 .NET 8
  • 從 Xamarin.Forms 升級到 .NET MAUI
  • 升級 Azure Functions
  • 從 UWP 升級到 WinUI
  • 支援 ARM64

文章介紹了功能增強以及 .NET MAUI 和 Azure Functions 升級等方面的內容。

【英文】宣佈 Copilot Chat | 語意核心

https://devblogs.microsoft.com/semantic-kernel/announcing-copilot-chat/

Semantic Kernel 新增了名為 Copilot Chat 的機制。

通過使用 Copilot Chat,可以將基於 LLM 的自定義聊天機器人整合到應用程式中。

文章、幻燈片等

【英文】使用 Blazor、SignalR 和 ApexCharts 實現實時圖表

https://blog.genezini.com/p/real-time-charts-with-blazor-signalr-and-apexcharts/

關於使用 Blazor WebAssembly、SignalR 和 ApexCharts 實現實時圖表應用程式的實現。

【英文】解鎖 NuGet 的力量:.NET REST API 或微服務的必備軟體包

https://levelup.gitconnected.com/unlock-the-power-of-nuget-essential-packages-for-net-rest-api-or-microservices-b1c25cfbdefa

介紹 .NET 伺服器應用程式中常用的 NuGet 包的彙總。

【英文】在 ASP.NET Core Web 應用程式中執行 Vite

https://khalidabuhakmeh.com/running-vite-with-aspnet-core-web-applications

關於在 ASP.NET Core Web 應用程式中使用 Vite(如 TypeScript 等)進行前端開發的步驟。

【英文】在 ASP.NET Core 中上傳大檔案 - Code Maze

https://code-maze.com/aspnetcore-upload-large-files/

關於在 ASP.NET Core 中處理巨大檔案上傳的內容。

【英文】將 .NET 應用程式遷移到雲端

https://www.infoq.com/presentations/net-apps-cloud/

關於將 .NET 應用程式遷移到雲的會議記錄。

涉及提升和轉移、容器平臺、雲原生注意事項、無伺服器計算和可移植性等。

【英文】JetBrains .NET Day Online 2023 - 演講者徵集 | .NET 工具部落格

https://blog.jetbrains.com/dotnet/2023/05/04/jetbrains-net-day-online-2023-call-for-speakers/

關於 9 月 26 日舉行的 JetBrains .NET Day Online 2023 演講者徵集的資訊。(英語)

【日文】使用 Semantic Kernel 在 GTP-4 中實現聊天應用程式

https://zenn.dev/tomokusaba/articles/4fcc3f865036ad

關於如何使用 Blazor Server 和 Semantic Kernel 實現 Azure OpenAI Services 的 GPT-4 聊天應用程式。

【日文】自定義控制元件進行自由繪製(C# / WinUI 3)

https://zenn.dev/shinta0806/articles/custom-control-draw

關於在 WinUI 3 中實現自由繪製的自定義控制元件的方法。

【日文】使用 Postman 偵錯 SignalR

https://zenn.dev/satoppepper/articles/8bdcff559d6c86

關於使用 Postman 與 SignalR 通訊的應用程式進行訊息互動以進行偵錯的步驟。

【英文】Visual Studio 2022 中的 Web API 開發 - Visual Studio 部落格

https://devblogs.microsoft.com/visualstudio/web-api-development-in-visual-studio-2022/

介紹了 Visual Studio 2022 版本 17.6 預覽中增強的 Web API 開發功能

  • 整合的 HTTP 編輯器使用者端
  • API 端點瀏覽器
  • 腳手架
  • Visual Studio 中的 Entity Framework 工具

【日文】日本微軟的大田先生 (@okazuki) 的 Semantic Kernel 文章

【英文】使用 C# .NET 進行 JWT 認證

https://dev.to/rmaurodev/jwt-authentication-with-c-net-1h4c

介紹了在 ASP.NET Core 中使用 JWT 進行 Bearer 認證的實現步驟。

【英文】.NET Annotated Monthly | 2023年5月 | .NET 工具部落格

https://blog.jetbrains.com/dotnet/2023/05/02/net-annotated-monthly-may-2023/

JetBrains 提供的 3 月份 .NET 相關資訊彙總。

【英文】在 iOS 16 上使用 .NET MAUI 和 Xamarin.Forms 執行時鎖定方向

https://msicc.net/how-to-lock-orientation-at-runtime-on-ios-16-with-net-maui-and-xamarin-forms/

關於在 iOS 16 上的 .NET MAUI 和 Xamarin.Forms 應用程式如何在執行時鎖定旋轉的方法。

【英文】在 .NET Framework 中使用結構體時出現的 VerificationException

https://minidump.net/verificationexception-in-net-framework-when-using-structs-6269eb3df448

.NET Framework 中,將值型別設定為唯讀欄位並在部分信任狀態下執行時會丟擲 VerificationException 的問題原因及解決方法。

【英文】在單元測試中呼叫內部建構函式

https://haacked.com/archive/2023/05/01/calling-internal-ctors/

主要在單元測試中使用外部庫等型別時,關於呼叫非公開建構函式的方法。

【日文】在 .netstandard 程式集中完全使用 .NET Framework 和 .NET 的 API

https://zenn.dev/benutomo/articles/3365c3dc61a9d3

關於從為 .NET Standard 構建的程式集中使用 .NET Framework 和 .NET (Core) 的 API 的方法。

採用為 .NET Standard 準備的構建入口,然後載入並呼叫各個執行時目標的程式集。

【英文】Figma 的 Uno Platform 預覽 5:為設計師和開發者增強的功能

https://www.infoq.com/news/2023/04/uno-platform-figma-plugin-5/

介紹了 Uno Platform 針對 Figma 的外掛預覽版 5 中功能得到加強的地方。

深入研究

EgorBo 提交的 SIMD 比較常數摺疊拉取請求 · Pull Request #85584 · dotnet/runtime

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

https://twitter.com/egorbo/status/1653014086534266881?s=12

SIMD 比較的常數摺疊 PR。

在凍結段(非 GC 堆)上分配 Array.Empty · Pull Request #85559 · dotnet/runtime

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

https://twitter.com/egorbo/status/1653716548517806080?s=12

Array.Empty<T> 物件將在與 GC 目標不同的段上分配。

引入時間抽象 - .NET 8 預覽 4 中的新功能 [WIP] · Issue #8234 · dotnet/core

https://github.com/dotnet/core/issues/8234

https://twitter.com/ufcpp/status/1653208094888046593?s=12

時間相關的抽象化 API TimeProvider 將在 .NET 8 預覽 4 中。

版權宣告

由於筆者沒有那麼多時間對國內的一些文章進行整理,歡迎大家為《.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,歡迎大家加入。