.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 千星开 ...
随机推荐
- Web Api出现500 Internal Server Error 错误
在测试环境一切正常,但是部署到了生产环境发现一直报错.查询网上的方法设置了权限等等.都没有解决 原来发现是数据库连接字符串的问题.只需要把数据库连接字符串修改正确即可!
- odoo关于计算字段store=True时导致的安装/更新时间较长问题的解决方案
Odoo安装/更新模块原理 Odoo每次安装/更新模块时,会进行以下几步处理: 1.判断是否需要创建表,如果需要创建且表不存在,则进行表的创建(不进行字段的创建): 2.获取该表中已经存在的字段: 3 ...
- JDK卸载
JDK卸载 从环境变量里的JAVA_HOME里找到jdk的主程序,删掉 把JAVA_HOME删掉,在把path里跟java_home相关的也删掉 在cmd里运行java-version
- hook详解和应用
一.hook的作用区域 1.客户端的过程 链接服务器 拿回资源 渲染(解析资源)资源 初始化(自执行) 页面逻辑 等待用户输入 加密数据 提交数据 2.hook的本质 在这些流程任意环节中插入自己的代 ...
- 云原生架构(二)环境搭建(Mac上安装Docker+Kubernetes+Istio一条龙)
一.背景 Istio 项目由 Google 和 IBM 的团队与 Lyft 的 Envoy 团队合作启动.它已经完全在 GitHub 上公开开发.目前已经是"Service Mesh服务网格 ...
- EndNote设置导出参考文献格式为中文国标GBT7714
笔者使用的版本是最新的EndNote 20,其他版本大同小异. 依次打开:Tools -> Output Styles -> Open Style Manager.其他版本可能有差异,只要 ...
- Docker进阶-Dockerfile建立一个自定义的镜像执行自定义进程
前言 docker对我来说是一个很方便的工具,,上一篇文章也写了docker基本的一些使用,这篇文章重点描述一下Dockerfile的使用,从零建立一个自己定制化的镜像,并可以执行我们需要的任务. 作 ...
- React报错之Function components cannot have string refs
总览 当我们在一个函数组件中使用一个字符串作为ref时,会产生"Function components cannot have string refs"错误.为了解决该错误,使用u ...
- LeetCode HOT 100:在排序数组中查找元素的第一个和最后一个位置
题目:34. 在排序数组中查找元素的第一个和最后一个位置 题目描述: 给你一个递增数组,和一个目标值target,最终返回数组中第一次出现target和最后一次出现target的下标.如果该数组中没有 ...
- AStar寻路算法示例
概述 AStar算法是一种图形搜索算法,常用于寻路.他是以广度优先搜索为基础,集Dijkstra算法和最佳优先(best fit)于一身的一种算法. 示例1:4向 示例2:8向 思路 递归的通过估值函 ...