.NET周报【1月第1期 2023-01-06】
国内文章
【开源】基于.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的幕后 - 第一部分
初步了解ASP.NET Core的Minimal API的端点构建过程的幕后情况。
网站、文件等
推特
FNA谈到了将NativeAOT移植到游戏机上。
https://twitter.com/thespydog/status/1609602883418296320
bflat(一种将C#编译为本地二进制文件的工具)现在可以针对UEFI并进行构建(无需操作系统,可以在裸机上工作)。
https://twitter.com/mstrehovsky/status/1610043782061514752
版权声明
- 国内板块由 InCerry 进行整理 : https://github.com/InCerryGit/WeekRef.NET
- 其余内容来自 Myuki WeekRef,由InCerry翻译(已获得授权) : https://github.com/mayuki/WeekRef.NET
由于笔者没有那么多时间对国内的一些文章进行整理,欢迎大家为《.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,欢迎大家加入。