.NET週刊【8月第3期 2023-08-20】

國內主題

抓的是周樹人,與我魯迅有什麼關係?

https://www.cnblogs.com/JulianHuang/p/17642511.html

  • 問題:作者看到了一個關於Dictionary.Clear和new Dictionary的問題,想要探究爲什麼在foreach字典的過程中,這兩種操作不會報錯。
  • 分析:作者分析了C#字典的源碼,發現foreach字典會產生一個迭代器,它有一個指向原字典的字段。如果在外部重新new字典,或者清空字典,都不會影響這個字段,所以不會觸發版本檢查的異常。

DateTime 相關的操作彙總【C# 基礎】

https://www.cnblogs.com/hnzhengfy/p/DatetimeInCS.html

在日常開發中,日期值當然是不可或缺的,能夠清晰的在腦海中梳理出最快捷的實現也非常重要,那麼今天就來彙總一下。

使用C#創建安裝Windows服務程序(乾貨)

https://www.cnblogs.com/kimiliucn/p/17637533.html

最近在公司要求使用Windows服務作爲消息隊列的消費者,所以自行研究了一下C#中Windows服務如何創建以及如何使用,以及部署的方式。我是西瓜程序猿,此篇記錄一下供大家參考學習。

長文本拆分

https://www.cnblogs.com/xbotter/p/17637416.html

  1. 企業微信消息長度限制爲2048個字節,字符長度不等於字節長度
  2. 使用字節拆分,會導致中文字符被截斷
  3. 使用文本+字節拆分,無法處理emoji表情
  4. 使用unicode字符拆分,即可解決以上問題

先前在做企業微信的應用接入ChatGPT時遇到一個問題,就是企業微信的消息長度限制爲2048個字節,所以遇到超長文本的時候需要拆分成多條消息發送。

[MAUI]在.NET MAUI中實現可拖拽排序列表

https://www.cnblogs.com/jevonsflash/p/17631233.html

.NET MAUI 中提供了拖放(drag-drop)手勢識別器,允許用戶通過拖動手勢來移動控件。在這篇文章中,我們將學習如何使用拖放手勢識別器來實現可拖拽排序列表。在本例中,列表中顯示不同大小的磁貼(Tile)並且可以拖拽排序。

C# 如何將程序加密隱藏?

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

下面將介紹如何通過LiteDB將自己的程序進行加密,首先介紹一下LiteDB

WPF如何構建MVVM+模塊化的桌面應用

https://www.cnblogs.com/fengjq/p/17630386.html

模塊化是一種分治思想,不僅可以分離複雜的業務邏輯,還可以進行不同任務的分工。模塊與模塊之間相互獨立,從而構建一種松耦合的應用程序,便於開發和維護。

Blazor前後端框架Known-V1.2.12

https://www.cnblogs.com/known/p/17630332.html

Known是基於C#和Blazor開發的前後端分離快速開發框架,開箱即用,跨平臺,一處代碼,多處運行。

  • Gitee: https://gitee.com/known/Known

  • Github:https://github.com/known/Known

  • 基於C#和Blazor實現的快速開發框架,前後端分離,開箱即用。

  • 跨平臺,單頁應用,混合桌面應用,Web和桌面共享一處代碼。

  • 包含模塊、字典、組織、角色、用戶、日誌、消息、工作流、定時任務等功能。

  • 代碼簡潔、易擴展,讓開發更簡單、更快捷!

.NET Core多線 (5) 常見性能問題

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

去年換工作時系統複習了一下.NET Core多線程相關專題,學習了一線碼農老哥的《.NET 5多線程編程實戰》課程,我將複習的知識進行了總結形成本專題。

本篇,我們來繼續複習一下多線程性能問題的相關知識點,預計閱讀時間10分鐘。

首先,我們可以明確一下,多線程場景下的常見問題一般爲:高CPU佔用

主題

【英文】宣佈 .NET 8 預覽版 7 - .NET 博客

https://devblogs.microsoft.com/dotnet/announcing-dotnet-8-preview-7/

【英文】宣佈推出 NuGet 6.7 – 確保您的安全 - NuGet 博客

https://devblogs.microsoft.com/nuget/announcing-nuget-6-7-keeping-you-secure/

【英文】.NET Framework 2023 年 8 月安全和質量彙總更新 - .NET 博客

https://devblogs.microsoft.com/dotnet/dotnet-framework-august-2023-security-and-quality-rollup-updates/

【英文】Visual Studio 2022 – 17.7 現已推出 - Visual Studio 博客

https://devblogs.microsoft.com/visualstudio/visual-studio-2022-17-7-now-available/

【英文】在 .NET 8 Preview 7 中宣佈 .NET MAUI:鍵盤加速器 - .NET 博客

https://devblogs.microsoft.com/dotnet/announcing-dotnet-maui-in-dotnet-8-preview-7/

【英文】.NET 8 Preview 7 中的 ASP.NET Core 更新 - .NET 博客

https://devblogs.microsoft.com/dotnet/asp-net-core-updates-in-dotnet-8-preview-7/

【英文】.NET 2023 年 8 月更新 – .NET 7.0.10、.NET 6.0.21 - .NET 博客

https://devblogs.microsoft.com/dotnet/august-2023-updates/

【英文】Visual Studio 2022 17.8 預覽版 1 已經到來! - Visual Studio 博客

https://devblogs.microsoft.com/visualstudio/visual-studio-2022-17-8-preview-1-has-arrived/

https://github.com/moq/moq/issues/1372

文章、幻燈片等

【英文】從 Moq 遷移到 NSubstitute 的備忘單

https://timdeschryver.dev/blog/a-cheat-sheet-to-migrate-from-moq-to-nsubstitute#method-invoked-with-any-arguments

【日文】將CsWin32分離爲其他項目

https://zenn.dev/shinta0806/articles/cswin32-separation

【英文】結構化 ASP.NET 本地化

https://dev.to/giannoudis/structured-aspnet-localization-35bo

【英文】.NET 中執行上下文的隱藏工作

https://medium.com/net-under-the-hood/hidden-workings-of-execution-context-in-net-43b491726c65

【英文】面向普通受衆的多分支圖 - Visual Studio 博客

https://devblogs.microsoft.com/visualstudio/multi-branch-graph-available-for-general-audiences/

【英文】使用 NBomber 對 C# 進行 HTTP API 負載測試

https://medium.com/@kostash23lena/load-testing-http-api-on-c-with-nbomber-96939511bdab

【英文】如何使用 JetBrains Rider 調試 Docker 和 Docker Compose 解決方案 | .NET 工具博客

https://blog.jetbrains.com/dotnet/2023/08/16/debugging-docker-and-docker-compose-solutions-with-jetbrains-rider/

【日文】在VScode的C#擴展中,繼續使用omnisharp-Qiita

https://qiita.com/skitoy4321/items/c6b0873a37fe649f9ca6

【C#】使用Spanbyte一點點進行散列值計算(IncrementalHash) - Qiita

https://qiita.com/mitsu_at3/items/438b4c4252947b467ef2

【英文】鍵控服務依賴注入容器支持:探索 .NET 8 預覽版 - 第 6 部分

https://andrewlock.net/exploring-the-dotnet-8-preview-keyed-services-dependency-injection-support/

【英文】Visual Studio 17.7 中我最喜歡的功能 - Visual Studio 博客

https://devblogs.microsoft.com/visualstudio/my-favorite-features-in-visual-studio-17-7/

【英文】Visual Studio 2022 – 17.7 性能增強 - Visual Studio 博客

https://devblogs.microsoft.com/visualstudio/visual-studio-2022-17-7-performance-enhancements/

【日文】C# 將自定義記錄器合併到通用主機的 DI 中 - Qiita

https://qiita.com/mxProject/items/41f75c057c855c49efd0

【日文】如何使用 .NET 8 執行 Blazor 服務器(Blazor 服務器模板消失)

https://zenn.dev/microsoft/articles/blazor-server-on-net8-pre6

【英文】在 Kubernetes 上收集 .NET Core 的內存轉儲

https://cezarypiatek.github.io/post/memory-dump-on-kubernetes/

【英文】.NET 遷移的故事 - 簡介

https://www.jimmybogard.com/tales-from-the-net-migration-trenches/

【英文】介紹 .NET 8 中的新 IHostedLifecycleService 接口 - Steve Gordon - 與 Steve 一起編碼

https://www.stevejgordon.co.uk/introducing-the-new-ihostedlifecycleservice-interface-in-dotnet-8

【英文】.NET 8 攔截器

https://khalidabuhakmeh.com/dotnet-8-interceptors

【日文】[C# 8.0] 通過指定一系列索引器而不是子字符串來提取字符串 - Qiita

https://qiita.com/YouKnow/items/93b4b978ecb113616fae

【英文】C# 是否總是具有字符串連接和插值的裝箱…

https://pvs-studio.com/en/blog/posts/csharp/1060/

【英文】讓我們共同創造!您的聲音很重要 - Visual Studio 博客

https://devblogs.microsoft.com/visualstudio/lets-co-create-your-voice-matters/

【英文】如何從 Moq 遷移到 NSubstitute

https://itnext.io/how-to-migrate-from-moq-to-nsubstitute-cdb6a80404d

【英文】抑制GCTransition

https://minidump.net/suppressgctransition-b9a8a774edbd

【日文】通過引用ImmutableArray<T>內部數組來加速

https://zenn.dev/benutomo/articles/54083312afca95

【英文】Visual Studio 2022 v17.8 預覽新的 IntelliTest - Visual Studio 雜誌

https://visualstudiomagazine.com/articles/2023/08/14/intellitest-preview.aspx?m=1

【日文】從 Moq 遷移到 NSubstitute

https://zenn.dev/masakura/articles/9b97948a11b40d

【日文】如何使用 .NET 8 執行 Blazor 服務器(Blazor 服務器模板消失)

https://zenn.dev/microsoft/articles/blazor-server-on-net8-pre6?redirected=1

【日文】System.Text.Json 不支持帶換行符的 Base64 字符串

https://zenn.dev/shimat/articles/3d319d50b3f0c3

【英文】.NET 月刊 | 2023 年 8 月 | .NET 工具博客

https://blog.jetbrains.com/dotnet/2023/08/07/net-annotated-monthly-august-2023/

【英文】.NET 中的 Polyfills 可以簡化多目標 - Gérald Barré

https://www.meziantou.net/polyfills-in-dotnet-to-ease-multi-targeting.htm

【英文】如何對不同的 .NET 版本進行基準測試

https://steven-giesel.com/blogPost/59cfb6f8-8b87-4707-a99e-e372541b696a

【英文】.NET .gcdump 內部結構

https://chnasarre.medium.com/net-gcdump-internals-fcce5d327be7

【日文】[C#] 完全理解結構 - Annulus Games

https://annulusgames.com/blog/understanding-struct/

庫、存儲庫、工具等

Giannoudis/TimePeriodLibrary:廣泛的時間段計算和單獨的日曆週期。

https://github.com/Giannoudis/TimePeriodLibrary

PowerRule / PowerRule GitLab

https://gitlab.com/power-rule/power-rule

le-nn/memento:Blazor/.NET 的簡單客戶端狀態管理容器包括重做/撤消和 ReduxDevTools 支持。

https://github.com/le-nn/memento

網站、文檔等

ASP.NET Core 實戰,第三版現已出版

https://andrewlock.net/asp-dotnet-core-in-action-third-edition-is-now-in-print/

版權聲明

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

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