.NET週報 【6月第2期 2023-06-11】

2023-06-13 12:00:57

國內文章

如何計算一個範例佔用多少記憶體?

https://www.cnblogs.com/artech/p/size-calculation.html

我們都知道CPU和記憶體是程式最為重要的兩類指標,那麼有多少人真正想過這個問題:一個型別(值型別或者參照型別)的範例在記憶體中究竟佔多少位元組?我們很多人都回答不上來。其實C#提供了一些用於計算大小的操作符和API,但是它們都不能完全解決我剛才提出的問題。本文提供了一種計算值型別和參照型別範例所佔記憶體位元組數量的方法。原始碼從這裡下載。

如何將一個範例的記憶體二進位制內容讀出來?

https://www.cnblogs.com/artech/p/17456172.html

在《如何計算一個範例佔用多少記憶體?》中我們知道一個值型別或者參照型別的範例在記憶體中佔多少位元組。如果我們知道這段連續的位元組序列的初始地址,我們就能夠將代表該範例的位元組內容讀取出來。在接下來的內容中,我們將利用一個簡單的方法輸出指定範例的位元組序列,並此次分析值型別和參照型別範例在記憶體的佈局。

如何在.net6webapi中實現自動依賴注入

https://www.cnblogs.com/SaoJian/p/17462782.html

本文介紹了IOC和DI的概念,原理和應用。IOC是一種設計思想,將控制權從程式設計師轉移到容器中,容器負責管理物件之間的依賴關係。DI是IOC的一種實現方式,通過在執行時動態地將依賴關係注入到物件中。本文還給出了一些程式碼範例,展示瞭如何使用.NET Core的依賴注入機制,以及如何實現自動注入的方法。

.netcore中的虛擬檔案EmbeddedFile

https://www.cnblogs.com/sunyuliang/p/17464934.html

以前一直比較好奇像swagger,cap,skywalking等元件是如何實現參照一個dll即可在網頁上展示介面的,難道這麼多html,js,css等都是寫死寫死在程式碼檔案中的?後面接觸apb裡面也有虛擬檔案的功能,一直沒去深入瞭解,最近仔細看了一下他們的程式碼,發現內部其實就是用嵌入式檔案(EmbeddedFile)來實現的,在專案中將html,css,js等檔案的屬性修改為「嵌入的資源」。

WinUI(WASDK)使用HelixToolkit載入機器人3D模型並進行專案實踐

https://www.cnblogs.com/GreenShade/p/17462143.html

本人之前開發了一個叫電子腦殼的上位機應用,給稚暉君ElectronBot開源機器人提供一些功能,但是由於是結合硬體才能使用的軟體,如果擁有硬體的人員太少,就會導致我的軟體沒什麼人用,於是我就想著能不能將機器人硬體的模型載入到軟體裡,這樣使用者就可以不使用硬體也可以使用我的軟體了。於是就有了在WinUI(WASDK)裡使用3D模型的需求。

Taurus.mvc .Net Core 微服務開源框架釋出V3.1.7:讓分散式應用更高效。

https://www.cnblogs.com/cyq1162/p/17459719.html

自首個帶微服務版本的框架釋出:Taurus.MVC V3.0.3 微服務開源框架釋出:讓.NET 架構在大並行的演進過程更簡單

已經過去快1年了,在這近一年的時間裡,版本經歷了N個版本的迭代。如今,是時候寫文章介紹一下了:以下介紹中,僅以.Net Core 6 為範例程式碼。框架支援在.Net Framework 2.0+、.Net Core 2.1+ 任意版本執行。

Asp-Net-Core開發筆記:API版本管理

https://www.cnblogs.com/deali/p/17460791.html

本文介紹瞭如何在.NET 6.0中使用Asp.Versioning.Mvc包來實現Web API的版本管理。作者講解了API版本的概念,格式,指定方法和存取方式,並給出了程式碼範例。作者還介紹瞭如何使用swagger來生成API檔案,並分享了自己的學習經歷。

【C#/.NET】record介紹

https://www.cnblogs.com/xuyd/p/17459936.html

record是.NET 5中的一種新特性,可以看作是一種概念上不可變的類。records可以幫助我們在C#中更容易地處理資料,同時提供了重要的功能,如物件相等性、hashcode和解構。

Asp-Net-Core開發筆記:API版本管理

https://www.cnblogs.com/deali/p/17460791.html

本文介紹瞭如何在.NET 6.0中使用Asp.Versioning.Mvc包來實現Web API的版本管理。作者講解了API版本的概念,格式,指定方法和存取方式,並給出了程式碼範例。作者還介紹瞭如何使用swagger來生成API檔案,並分享了自己的學習經歷。

C# 使用者端程式 Visual Studio 遠端偵錯方法

https://www.cnblogs.com/BoiledYakult/p/17459749.html

傳統桌面使用者端的遠端偵錯相比UWPASP等專案來說,設定比較麻煩,因為它是非部署的應用程式,原理是複製編譯的檔案到遠端計算機,通過網路來連線和VS的通訊,本文主要講述WPF,WinForm應用程式的遠端偵錯。

C# 版本特性一覽

https://www.cnblogs.com/gaoyunpeng/p/17459660.html

使用 C# 作為開發語言已經 15 個年頭了,受惠於 C# 的不斷更新,伴隨著大量的新特性與大量語法糖,讓我更加容易寫出簡潔、高效的程式碼。日常中大量特性早已信手拈來,當然從未嘗試過的特性更是難以盡數,但是每每回憶程式碼中的特性究竟是哪個版本引入的,卻頗為含糊。索性簡單整理記錄下來,用以備忘,進而能夠更精確地根據想使用的特性確定程式需要的 Framework 版本。

如何獲取 C#程式 核心態執行緒棧

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

在這麼多的案例分析中,往往會發現一些案例是卡死線上程的核心態棧上,但拿過來的dump都是使用者態模式下,所以無法看到核心態棧,這就比較麻煩,需要讓朋友通過其他方式生成一個藍屏的dump,這裡我們簡單彙總下。

主題

【英文】宣佈推出適用於 Visual Studio Code 的 C# 開發工具包 - Visual Studio 部落格

https://devblogs.microsoft.com/visualstudio/announcing-csharp-dev-kit-for-visual-studio-code/

  • [Microsoft 釋出「C# Dev Kit」預覽版~用「VS Code」搭建C#開發環境/從「Visual Studio」到「Visual Studio Code」的概念](https://forest.watch.impress.co. jp/docs/news/1507140.html)

【英文】釋出 4.9.17 unoplatform/uno

https://github.com/unoplatform/uno/releases/tag/4.9.17

【英文】釋出 v7.0.430602 dotnet/diagnostics

https://github.com/dotnet/diagnostics/releases/tag/v7.0.430602

【英文】ReSharper 2023.2 EAP 3:使用原始字串和更多 C++ 功能的改進。| .NET 工具部落格

https://blog.jetbrains.com/dotnet/2023/06/06/resharper-2023-2-eap-3/

【英文】Rider 2023.2 EAP 4 已釋出!| .NET 工具部落格

https://blog.jetbrains.com/dotnet/2023/06/09/rider-2023-2-eap-4/

【英文】Rider 2023.2 EAP 3:對原始字串、GitLab 整合、記憶體快照分析等的改進 | .NET 工具部落格

https://blog.jetbrains.com/dotnet/2023/06/06/rider-2023-2-eap-3/

文章、幻燈片等

【日文】如何使用 System.Formats.Tar - Qiita

https://qiita.com/skitoy4321/items/3ffe5ea62c9a75b6e397

【英文】在 ASP.NET Core 中偵錯 JwtBearer 宣告問題 – Tore Nestenius | 培訓師和高階軟體開發人員

https://nestenius.se/2023/06/02/debugging-jwtbearer-claim-problems-in-asp-net-core/

【英文】增強 .NET IOptions 模式中的資料驗證:利用命名和型別化 IOptions 進行穩健設定。

https://dev.to/ahmedshahjr/enhancing-data-validation-in-net-ioptions-pattern-utilizing-named-and-typed-ioptions-for-robust-configuration-1oo4

【英文】Docker 快速模式如何在 Rider 中工作 | .NET 工具部落格

https://blog.jetbrains.com/dotnet/2023/06/07/how-docker-fast-mode-works-in-rider/

【英文】HackTogether:Microsoft Teams Global Hack - Keynote Recap and What's Coming - .NET 部落格

https://devblogs.microsoft.com/dotnet/hacktogether-recap-whats-coming/

【英文】瞭解 .NET Core 中的依賴注入

https://auth0.com/blog/dependency-injection-in-dotnet-core/

【英文】Visual Studio 的 IntelliSense 列表現在可以引導 GitHub Copilot 程式碼完成。- Visual Studio 部落格

https://devblogs.microsoft.com/visualstudio/github-copilot-visual-studio-intellisense/

【日文】[.NET] 使用 CommunityToolkit.HighPerformance 編寫影象處理

https://zenn.dev/shimat/articles/c08c3522cdbfbb

【英文】Hey Yara,找到一些漏洞 | MSRC 部落格 | Microsoft 安全響應中心

https://msrc.microsoft.com/blog/2023/06/hey-yara-find-some-vulnerabilities/

【英文】Avalonia UI - Vision Pro 對 Windows 開發人員意味著什麼?

https://avaloniaui.net/Blog/what-does-vision-pro-mean-for-windows-developers,3103cff3-0aa4-4952-a9a3-24eab63e7a6f

【日文】Blazor .NET 開發人員開啟未來的新機會 - connpass

https://infragistics.connpass.com/event/286490/

【日文】[VisualStudio2022] 我嘗試使用 LiveUnitTesting-Qiita

https://qiita.com/yusuke-sasaki/items/3cd31a6ab288e1791b3c

【英文】DevCamp 2023:Meadow v1.0、Meadow Cellular、Meadow.Cloud 等!– blog.wildernesslabs.co

https://blog.wildernesslabs.co/devcamp-2023-announcements/

【日文】批次更新EntityFramework Core - Qiita

https://qiita.com/karuakun/items/d2626b2b518d57420a39

【日文】玩轉 C# 開發工具包

https://zenn.dev/tnagata012/articles/play-csharp-dev-kit-2e404533dd7e99

【日文】【研發DevOps交流】研發部.NET基礎架構介紹-三三科技部落格

https://buildersbox.corp-sansan.com/entry/2023/04/13/110000

【英文】.NET 月刊 | 2023 年 6 月 | .NET 工具部落格

https://blog.jetbrains.com/dotnet/2023/06/01/net-annotated-monthly-june-2023/

【英文】使用 Respawn 在 .NET 中輕鬆重置測試資料庫

https://medium.com/@kova98/easy-test-database-reset-in-net-with-respawn-d5a59f995e9d

【英文】.NET 的 Avalonia UI:Mike James 的專案概述

https://www.infoq.com/news/2023/06/avalonia-mike-james/

【日文】在 C# 中製作您自己的響應式程式設計:Select 和 Where 運運算元 - Qiita

https://qiita.com/fsdg-adachi_h/items/01018ab1e0d3e71df9bd

【英文】介紹 Sep - 可能是世界上最快的 .NET CSV 解析器

https://nietras.com/2023/06/05/introducing-sep/

【英文】探索新的 Visual Studio 功能:.http 檔案

https://dev.to/iamprincejkc/exploring-the-new-visual-studio-feature-http-files-1i99

【英文】UWP 應用中的依賴注入

https://kidjenius.medium.com/dependency-injection-in-uwp-apps-82e6eebf9e23

【英文】nameof get 在 C# 12 中好一點

https://steven-giesel.com/blogPost/5b0bcb83-4508-4cde-9299-80940bf4709a

【英文】C# 中的物件分配在哪裡?

https://gevorgchobanyan.medium.com/where-are-objects-allocated-in-c-understanding-heap-and-stack-951febcac8fe

【英文】在 C# 12 中擁抱簡單性:Lambda 表示式中的預設引數

https://medium.com/@dilshanprasad3/embracing-simplicity-in-c-12-default-parameters-in-lambda-expressions-f72f566b63eb

庫、儲存庫、工具等

站點、檔案等

推文

https://twitter.com/marcgravell/status/1666737677922705409?s=12


https://twitter.com/mjovanovictech/status/1666687568832872448?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,歡迎大家加入。

抽獎送書活動預熱!!!

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