.NET周报 【2月第3期 2023-02-18】
国内文章
2023 年.NET仓库社区年度调查已经开始
https://mp.weixin.qq.com/s/H9xUAO_yAdqm5CIHBs_eqA
中国地区是 .NET 的一个重要的市场和社区,有着众多的 .NET 开发者和爱好者。中国地区也有着很多优秀的 .NET 相关的项目和资源。这些项目和资源为中国地区的 .NET 开发者提供了很多学习和交流的机会和平台。为了更好地了解全球 .NET 开发者的情况和需求,并且为未来 .NET 的发展提供参考和建议,dotnet 官方特别推出了 dotnet 仓库社区生态调查。进入该链接,通过第一个 comment 便可以加入调查。
https://github.com/dotnet/runtime/issues/81866
记一次 .NET 某游戏网站 CPU爆高分析
https://www.cnblogs.com/huangxincheng/archive/2023/02/13/17115916.html
这段时间经常有朋友微信上问我这个真实案例分析连载怎么不往下续了,关注我的朋友应该知道,我近二个月在研究 SQLSERVER,也写了十多篇文章,为什么要研究这东西呢? 是因为在 dump 中发现有不少的问题是 SQLSERVER 端产生的,比如:遗留事务,索引缺失 ,这让我产生了非常大的兴趣,毕竟他们是一对黄金搭档。回到本话题上来,年前有位朋友找到我,说他的程序在业务高峰期的时候CPU一直居高不下,咨询一下是什么问题? 按照老规矩,上 WinDbg 说话。
从 Newtonsoft.Json 迁移到 System.Text.Json
https://www.cnblogs.com/stulzq/archive/2023/02/14/17118904.html
System.Text.Json 是 .NET Core 3 及以上版本内置的 Json 序列化组件,刚推出的时候经常看到踩各种坑的吐槽,现在经过几个版本的迭代优化,提升了易用性,修复了各种问题,是时候考虑使用 System.Text.Json 了。本文将从使用层面来进行对比。
.NET遍历二维数组-先行/先列哪个更快?
上周在.NET性能优化群里面有一个很有意思的讨论,讨论的问题"二维数组,用C#先遍历行再遍历列,或者先遍历列再遍历行,两种方式在性能上有区别吗?"看了群里面激烈的讨论,刚好今天有时间,我们就来看看真实情况是怎么样的?实践出真知,我们编写一个Benchmark一测便知。
使用ML.NET做一个人脸检测
https://mp.weixin.qq.com/s/lqfH4nFTEkv1da9TjjW4Dw
介绍了如何使用ML.NET实现一个人脸检测的应用。
ASP.NET Core 7.0 的新增功能你使用了吗?
https://mp.weixin.qq.com/s/7YuvMQbkvDb2y0MQw0NUGw
.NET7在去年11月份发布,它属于短期支持版本,尽管如此,也新增加了比较多的功能功能改进,包括ASP.NET Core 7.0等模块也有较大的改进,你目前用过几个新特性呢?本文将从6个方面来简单介绍ASP.NET Core 7.0的新增功能和改进。
WPF跨平台方案?
https://mp.weixin.qq.com/s/n2mAkF8_4kWKqsBsvxv79A
Avalonia XPF[1] 通过我们的跨平台UI框架,释放现有WPF应用程序的全部潜力,使WPF应用程序能够在macOS和Linux上运行,而不需要昂贵和有风险的重写。
关于C#方法中引用类型参数传递
https://mp.weixin.qq.com/s/soNkJ7hpg3z4CspP9iXRZA
本文叙述的问题的根源在于对C#基础知识掌握不牢固,从而在遇到难以理解的问题时浪费了大量时间;在此也警示自己,该啃啃基础书籍了!话不多说,先上代码。
我不想再传递 nameof 了
https://mp.weixin.qq.com/s/iDq51PY78vZJEItJL-0TWQ
有的时候抛出一个异常,我们需要知道是哪个方法抛出的异常。那么,我们可以通过传递 nameof 来获取调用者的方法名。但是,感觉很烦,每次都要传递 nameof。那么,有没有更好的方法呢?
.NET 8 Preview 1 即将发布
https://mp.weixin.qq.com/s/qwPwcawvYcJ7WZbOS-JRCw
.Net 8 Preview 1 即将到来,让我们来提前看看都要发布什么吧。
主题
【英文】Avalonia UI - XPF
跨平台的商业解决方案,用于在非Windows环境下运行现有的WPF应用程序,如Linux和macOS。本产品提供了与.NET 6兼容的库,可以在Linux和macOS上运行WPF应用程序,而不需要重写它们。 第三方组件也被支持。与Avalonia UI不同,它只在商业许可下提供,因为它被定位为一个面向企业的解决方案。
【英文】Rider 2023.1 EAP 4 来了! | .NET工具博客
https://blog.jetbrains.com/dotnet/2023/02/13/rider-2023-1-eap-4/
Rider 2023.1 EAP 4已经发布。
它包括一些改进,如IDE缩放支持、WASM应用程序启动的调试、额外的Astro支持、改进的Angular支持和Vue模板中的TypeScript支持。
【英文】ReSharper 2023.1 EAP 5 来了! | .NET工具博客
https://blog.jetbrains.com/dotnet/2023/02/17/resharper-2023-1-eap-5/
ReSharper 2023.1 EAP 5已经发布。
这个版本包括对不活跃的预处理器分支的重新格式化、改进的重命名重构以及对macOS、Linux x64和ARM64上独立dotTrace的支持。
【英文】在NuGet.org上如何按目标框架搜索
https://devblogs.microsoft.com/nuget/introducing-search-by-target-framework-on-nuget-org/
现在NuGet.org上的搜索可以通过目标框架来缩小范围。
如果选择".NET",目标框架是net5.0到net7.0,必要时还可以缩小到net7.0,以此类推。 当指定net7.0时,NET 7运行时支持,但不管它是否包含在库的TargetFrameworks中。
【中文】在装有Apple M1和M2芯片的Mac电脑上使用Windows 11的选项 - 微软支持
Microsoft 正式批准了 Parallels Desktop for Mac 上的 Windows 11 Pro 和 Enterprise for Arm。
不支持 WSL、Windows Subsystem for Android、Windows Sandbox 以及依赖嵌套虚拟化的虚拟化安全。 运行32位Arm应用程序也不被支持(这在Windows中也被废弃)。
文章、幻灯片
【日文】ReactiveProperty v9.0.0已经发布!
https://zenn.dev/microsoft/articles/reactiveproperty-v9-0-0
ReactiveProperty v9.0.0已经发布。
它提高了性能,扩大了独立于System.Reactive的开发范围,并增加了ReactiveCommandSlim, ValidatableReactiveProperty<T>等类。
【日文】C#通过类型来限制对象是否可以被销毁 - 铃铛为猫响
https://ikorin2.hatenablog.jp/entry/2023/02/13/072121
关于如何通过创建一个可以明确说明对象是否可以被销毁的类型来明确销毁对象的责任所在。
【日文】[.NET 7] P/Invoke的陷阱备忘录
https://zenn.dev/shimat/articles/77c00c1f421a47
关于P/Invoke的隐患,如幕后处理导致的开放。
【日文】C# 12候选特性params Span 修订后params ReadOnlySpan
https://ufcpp.net/blog/2023/2/params-ros
正在考虑在C# 12中接受非数组的params(可变长度的参数)的规范的现状。
【英文】省略async / await
https://guriysamarin.medium.com/omitting-async-await-723a04d8f56b
关于省略async/await并直接返回Task的做法不被推荐。
堆栈痕迹和AsyncLocal泄露的差异。 (顺便说一下,也有通过使用错误处置的常见例子)。
【英文】使用ASP.NET Core和React与Vite.js
https://blog.codeinside.eu/2023/02/11/aspnet-core-react-with-vitejs/
如何在ASP.NET Core应用程序中使用React和Vite.js。
【日文】[C#] 使用GetTypesByMetadataName而不是GetTypeByMetadataName可能更安全 - 尼诺的花园
https://blog.neno.dev/entry/2023/02/11/161723
当你在Roslyn中使用GetTypeByMetadataName从编译中通过元数据名称获得类型时,从Roslyn 4.1开始最好使用GetTypesByMetadataName,因为如果你使用GetTypeByMetadataName通过元数据名称获得一个类型,将不会得到预期的相同名称。 下面是对此的简要解释。
【英文】Visual Studio AI-Assistance: 开发者的好朋友 - Visual Studio Blog
https://devblogs.microsoft.com/visualstudio/visual-studio-ai-assistance-a-developers-best-friend/
介绍一下Visual Studio中的IntelliCode的作用。
【英文】在C#中确定两个日期范围是否重叠 - 代码迷宫
https://code-maze.com/csharp-determine-whether-two-date-ranges-overlap/
如何比较两个日期范围的重叠情况。
【英文】.NET中的Consul - 一个服务网状结构解决方案和服务发现工具
如何使用HashiCorp Consul in .NET实现服务网格和服务发现?
【英文】将Xamarin.iOS和Xamarin.Android升级到.NET for iOS和Android的技巧和窍门 - Xamarin博客
https://devblogs.microsoft.com/xamarin/upgrade-xamarin-ios-android-to-dotnet6-dotnet7/
从Xamarin.iOS和Xamarin.Android升级到.NET for iOS & Android(本地绑定,不是.NET MAUI)的技巧。
【英文】什么是.NET,以及为什么要选择它?
https://devblogs.microsoft.com/dotnet/why-dotnet/
关于什么是.NET以及为什么你应该选择它的文章,重点是为开发人员提供的.NET运行时间。
【日文】NuGet软件包版本依赖性解析规则 - Qiita
https://qiita.com/ZiYuCai1984/items/dbb069f5ade08d242acb
关于引用NuGet包时的版本解析规则。
【英文】入门:Entity Framework Core 7 JSON支持 | The .NET Tools Blog
https://blog.jetbrains.com/dotnet/2023/02/14/getting-started-entity-framework-core-7-json-support/
如何使用Entity Framework Core 7中添加的JSON支持。
【英文】使用编译查询加速EF Core
https://woodruff.dev/accelerating-ef-core-with-compiled-queries/
关于Entity Framework Core的编译查询。
【日文】使用.NET Blazor + Radzen - Qiita
https://qiita.com/tinymouse/items/01b1bc4a74429ddc0b17
关于使用Radzen,一个用于Blazor的UI组件库。
网站、文件
推文
https://twitter.com/davidfowl/status/1626097506286436352
New Bing的AI聊天功能是使用SignalR实现的。

https://twitter.com/MStrehovsky/status/1625702785516994565
.NET NativeAOT 大小的进化史,从.NET7 Preview5创建Hello World程序需要4.5MB到现在.NET8 Preview 1只需要1.7MB。

深入探索
Blazor United · Issue #46636 · dotnet/aspnetcore
https://github.com/dotnet/aspnetcore/issues/46636
.NET 8中Blazor United的问题。
版权声明
- 国内板块由 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,欢迎大家加入。
.NET周报 【2月第3期 2023-02-18】的更多相关文章
- .NET周报 【2月第1期 2023-02-04】
国内文章 .NET 入门到高级路线 https://www.cnblogs.com/hejiale010426/archive/2023/02/01/17083913.html 笔者介绍了.NET入门 ...
- .NET周报【1月第1期 2023-01-06】
国内文章 [开源]基于.net6+gtksharp实现的Linux下的图形界面串口调试工具 https://www.cnblogs.com/flykai/p/17007554.html 由于公司的上位 ...
- .NET周报【1月第3期 2023-01-20】
这应该是2023年农历新年前的最后一篇.NET周报,再次预祝大家新年快乐! 国内文章 看我是如何用C#编写一个小于8KB的贪吃蛇游戏的 https://www.cnblogs.com/InCerry/ ...
- .NET周报【10月第3期 2022-10-25】
国内文章 聊一聊被 .NET程序员 遗忘的 COM 组件 https://www.cnblogs.com/huangxincheng/p/16799234.html 将Windows编程中经典的COM ...
- .NET周报【11月第1期 2022-11-07】
国内文章 开源·安全·赋能 - .NET Conf China 2022 https://mp.weixin.qq.com/s/_tYpfPeQgyEGsnR4vVLzHg .NET Conf Chi ...
- .NET周报【11月第2期 2022-11-15】
国内文章 统一的开发平台.NET 7正式发布 https://www.cnblogs.com/shanyou/archive/2022/11/09/16871945.html 在 2020 年规划的. ...
- .NET周报【11月第3期 2022-11-22】
国内文章 .NET Conf China 2022 第一批讲师阵容大揭秘!整个期待了! https://mp.weixin.qq.com/s/4p89hhBPw6qv-0OB_T_TOg 目光看过来 ...
- .NET周报【11月第4期 2022-11-30】
国内文章 .NET 7 的 AOT 到底能不能扛反编译? https://www.cnblogs.com/huangxincheng/p/16917197.html 在B站,公众号上发了一篇 AOT ...
- .NET周报【12月第1期 2022-12-08】
国内文章 CAP 7.0 版本发布通告 - 支持延迟消息,性能炸了? https://www.cnblogs.com/savorboard/p/cap-7-0.html) 今天,我们很高兴宣布 CAP ...
- .NET周报【12月第2期 2022-12-15】
国内文章 九哥聊Kestrel网络编程第一章:开发一个Redis服务器 https://mp.weixin.qq.com/s/HJYnBE-7wbvkAYHxQaq3eQ 我和拥有多个.NET 千星开 ...
随机推荐
- win 10 玩红警/黑边,不能全屏,闪退
win 10玩红警黑边问题 1.下载ddraw.dll,放在游戏目录 下载链接:ddraw.dll 如果提示 选择保留就行了 2.Win 键+S键,搜索注册表,打开这个 进去按这个路径 计算机\ ...
- MySQL进阶实战6,缓存表、视图、计数器表
一.缓存表和汇总表 有时提升性能最好的方法是在同一张表中保存衍生的冗余数据,有时候还需要创建一张完全独立的汇总表或缓存表. 缓存表用来存储那些获取很简单,但速度较慢的数据: 汇总表用来保存使用grou ...
- 输出图形字符的命令 banner
输出图形字符的命令 banner 有趣的 Linux 命令.来自实验楼操作系统课程 安装 sudo apt install sysvbanner 截图 其他 还有两个类似的命令toilet,figle ...
- IOS移动端 -webkit-overflow-scrollin属性造成的问题
-webkit-overflow-scrolling带来的相关问题. -webkit-overflow-scrolling 属性控制元素在移动设备上是否使用滚动回弹效果. 其具有两个属性: auto: ...
- python中的字符串(1)
1.大小写的转换 upper()/lower() 转成大写.upper() 转成小写.lower() 返回的是字符串 2.是否是数字 isdigit() 返回的布尔值 3.去除字符串的空白字符 str ...
- linux开机自启动设置
方法一:修改 /etc/rc.d/rc.local 文件/etc/rc.d/rc.local 文件会在 Linux 系统各项服务都启动完毕之后再被运行.所以想要脚本在开机后被运行的话,可以将自己脚本路 ...
- Java进阶篇——springboot2源码探究
1.@EnableAutoConfiguration 除了元注解之外,EnableAutoConfiguration包含了两大重要部分: 1)@AutoConfigurationPackage注解 该 ...
- YMOI 2019.6.22
题解 YMOI 2019.6.22 lia麦頔溜了,缺了lia麦頔的排名仅供参考 不过分数还是暴露无遗 T1 邪恶入侵 简易题干: 在三维空间内有一些点,点之间有双向边.每一次询问给出一个m,只有边权 ...
- Linux 查找某一线程是否已运行,并启动的方法
参考资料:(3条消息) [Linux]守护线程自动重启某个程序的3种常用办法_L7256的博客-CSDN博客_守护进程 自动重启 方法一:使用编写一个监控APP的脚本 start.sh脚本如下:exp ...
- 拜占庭将军问题与CAP
1.拜占庭将军问题 拜占庭位于如今的土耳其的伊斯坦布尔,是东罗马帝国的首都.由于当时拜占庭罗马帝国国土辽阔,为了达到防御目的,每个军队都分隔很远,将军与将军之间只能靠信差传消息.在战争的时候,拜占庭军 ...