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

2023-01-08 06:01:08

國內文章

【開源】基於.net6+gtksharp實現的Linux下的圖形介面串列埠偵錯工具

https://www.cnblogs.com/flykai/p/17007554.html

由於公司的上位機等硬體專案都是基於Linux作業系統的,軟硬體通訊偵錯麻煩,市面上又沒有好用的圖形操作軟體來實現便捷的串列埠偵錯,還有一方面原因,公司的銷售及售後人員對Linux作業系統比較陌生不會操作,只能依靠圖形軟體,於是本人便抽空便基於.net6及gtk提供的sdk,實現了一個圖形介面的串列埠偵錯工具,可執行於window作業系統及Linux作業系統(僅在Ubuntu20.4)做了測試。

【C#】分享一個簡易的基於時間輪排程的延遲任務實現

https://www.cnblogs.com/gmmy/p/17015538.html

在很多.NET開發體系中開發者在面對排程作業需求的時候一般會選擇三方開源成熟的作業排程框架來滿足業務需求,比如Hangfire、Quartz.NET這樣的框架。但是有些時候可能我們只是需要一個簡易的延遲任務,這個時候引入這些框架就費力不討好了。於是本文介紹了一種基於時間輪的延遲任務實現。

微軟公佈 Entity Framework Core 8 規劃

https://mp.weixin.qq.com/s/jG8wRKCFutcweENPGpLoAQ

微軟.NET團隊在部落格上公佈了有關 Entity Framework Core 8.0(也稱為 EF Core 8 或 EF8)的未來規劃。

一個用於生成 PDF 檔案的開源 .NET 庫

https://mp.weixin.qq.com/s/hwNkrfi13JccGbrv1VSfJQ

今天給大家推薦一個用於生成 PDF 檔案的開源 .NET 庫QuestPDF。目前已經有4k+的Star。

快速入門 .NET nanoFramework 開發 ESP32-Pico 應用

https://mp.weixin.qq.com/s/T8NFQbErDSDfZDqzW-5zmA

本文是一篇適合初學者的 .NET nanoFramework 保姆級入門教學,並提供了基本的入門程式並介紹了微雪的 ESP32-S2-Pico 使用 .NET nanoFramework 開發微控制器應用的基礎知識。

C#中如何進行com口操作?

https://mp.weixin.qq.com/s/xF-8Gr3A5SBbaZ5-D8i8yQ

本文介紹了C#中如何進行com口操作。

ASP.NET Core 使用RedLock.net 實現分散式鎖

https://mp.weixin.qq.com/s/HbInBg-WwpeEPH3WwwXd7w

本文介紹瞭如何使用RedLock.NET實現分散式鎖。

一次SQL調優 聊一聊 SQLSERVER 資料頁

https://mp.weixin.qq.com/s/WqiZjVh69o6YZHCROy4kpA

最近給一位朋友做 SQL 慢語句 優化,花了些時間調優,遺憾的是 SQLSERVER 非原始碼公開,玩起來不是那麼順利,不過從這次經歷中我覺得明年的一個重大任務就是好好研究一下它,爭取在 SQLSERVER 效能優化上做一些成績,哈哈! 個人覺得要想深入研究 SQLSERVER,得從它的儲存引擎說起,說到儲存引擎又得從核心的 資料頁 說起,畢竟 mdf 就是由 資料頁 拼出來的,當然理解的不對大家可以指出來。

聊一聊 SQLSERVER 的行不能跨頁

https://mp.weixin.qq.com/s/1TWNFOvY6U6SVixXRWhYag

相信有很多朋友在學習 SQLSERVER 的時候都聽說過這句話,但大多都是記憶為主,最近在研究 SQLSERVER,所以我們從 底層儲存 的角度來深入理解下。

再聊一下那 SQLSERVER 行不能跨頁的事

https://mp.weixin.qq.com/s/mG4MqW1m5PMBJ-9lq1GXPw

上一篇寫完了之後,馬上就有朋友留言對記錄行的 8060byte 限制的疑惑,因為他的表記錄儲存了大量的文章,儲存文章的欄位型別用的是 nvarchar(max),長度很顯然是超過 8060byte 的,請問這個底層是怎麼破掉 8060byte 的限制的?

dotnet 程式碼優化 聊聊邏輯圈複雜度

https://blog.lindexi.com/post/dotnet-程式碼優化-聊聊邏輯圈複雜度.html

本文屬於 dotnet 程式碼優化系列部落格。相信大家都對圈複雜度這個概念很是熟悉,本文來和大家聊聊邏輯的圈複雜度。程式碼優化裡面,一個關注的重點在於程式碼的邏輯複雜度。一段程式碼的邏輯複雜度越高,那麼維護起來的難度也就越大。衡量程式碼的邏輯複雜度的一個維度是通過邏輯圈複雜度進行衡量。本文將告訴大家如何判斷程式碼的邏輯圈複雜度以及一些降低圈複雜度的套路,讓大家瞭解如何寫出更好維護的程式碼。

主題

【英文】grpc/grpc-dotnet 釋出版本 v2.51.0

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

gRPC (grpc-dotnet) v2.51.0已經發布。

這個版本包含了一些修復和改進,包括改進的紀錄檔資訊。

【英文】Microsoft.UI.Xaml 釋出版本 v2.8.2

https://github.com/microsoft/microsoft-ui-xaml/releases/tag/v2.8.2

WinUI v2.8.2已經發布。

這個版本主要包含一些錯誤的修復。

【英文】snoopwpf/snoopwpf 釋出版本 v5.0.0

https://github.com/snoopwpf/snoopwpf/releases/tag/v5.0.0

Snoop v5.0.0已經發布。

該版本取消了對.NET Framework 4.5.2及以前版本和.NET Core 3.0的支援,增加了對.NET 6及更高版本的支援。 還包括其他一些修復和改進。

文章、幻燈片

【日文】在MemoryPack中客製化序列化和反序列化的一些方法 | Yucchiy的註釋

https://blog.yucchiy.com/2023/01/memorypack-custom-serialize-deserialize/

介紹了序列化過程的客製化,包括如何在MemoryPack的序列化和反序列化過程前後夾住自己的處理。

【日文】從快捷方式檔案(.lnk)中獲取連結目的地(CsWin32版本)

https://zenn.dev/udaken/articles/cswin32_get_target_from_shortcut_file

如何使用CsWin32進行COM呼叫並從快捷方式檔案中獲得連結目的地。

【英文】EF Core中Add和AddAsync的區別

https://medium.com/medialesson/difference-between-add-and-addasync-in-ef-core-6b8cfd8f7cdb

解釋Entify Framework Core中Add和AddAsync方法的區別。

談到AddAsync只有在使用特殊的SQLServer值生成器時才是非同步的,而Add應該用於其他模式。

【英文】回顧20年的NAudio歷程

https://markheath.net/post/naudio-20-year-anniversary

回顧NAudio的20年,以及該專案目前的狀況。

【日文】IServiceCollection的擴充套件方法列表 - Qiita

https://qiita.com/mxProject/items/7d7a835adfb300d07fec

介紹了Microsoft.Extensions為IServiceCollection提供的擴充套件方法,包括Microsoft.Extensions.DependencyInjection。

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

https://blog.jetbrains.com/dotnet/2023/01/04/net-annotated-monthly-january-2023/

2023年1月JetBrains釋出的.NET相關資訊彙總文章。

【英文】最小化API端點的幕後初探:最小化API的幕後 - 第一部分

https://andrewlock.net/behind-the-scenes-of-minimal-apis-1-a-first-look-behind-the-scenes-of-minimal-api-endpoints/

初步瞭解ASP.NET Core的Minimal API的端點構建過程的幕後情況。

網站、檔案等

推特

FNA談到了將NativeAOT移植到遊戲機上。

https://twitter.com/thespydog/status/1609602883418296320


bflat(一種將C#編譯為本地二進位制檔案的工具)現在可以針對UEFI並進行構建(無需作業系統,可以在裸機上工作)。

https://twitter.com/mstrehovsky/status/1610043782061514752

版權宣告

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

格式如下:

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

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

.NET效能優化交流群

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

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

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

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

image-20230107220326809

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

image-20230107220536830