.NET周报 【2月第1期 2023-02-04】

周报 ,NET · 浏览次数 : 988

小编点评

**.NET性能优化交流群** **主题:如何找到.NET性能瓶颈?** **简介:** .NET性能优化问题是经常遇到的重要问题,如何找到?如何优化? **内容:** * 如何使用APM、dotnet tools等工具识别性能瓶颈? * dotnet框架底层原理的实现,如垃圾回收器、JIT等等如何编写高性能的.NET代码? * 如何找到性能陷阱? * 如何优化性能? **参考资料:** * APM * dotnet tools * .NET Framework底层原理 * Performance Optimization Best Practices

正文

国内文章

.NET 入门到高级路线

https://www.cnblogs.com/hejiale010426/archive/2023/02/01/17083913.html

笔者介绍了.NET入门到高级路线需要学习的知识和资源链接等。

如何将WebAssembly优化到1MB?

https://www.cnblogs.com/hejiale010426/archive/2023/01/30/17076817.html

对于Blazor WebAssembly加载方案的优化是针对于WebAssembly首次加载,由于BlazorWebAssembly是在首次加载的时候会将.NET Core的所有程序集都会加载到浏览器中,并且在使用的时候可能引用了很多第三方的dll,导致加载缓慢,本文就通过几种方式来降低WebAssembly的大小。

.Net6 使用 Ocelot + Consul 看这篇就够了

https://www.cnblogs.com/Mamba8-24/archive/2023/01/31/17079429.html

书接上文,我们使用了 Consul实现了服务注册与发现,对Consul不熟悉的同学可以先看看。这篇文章我们来学习Ocelot网关,在这之前我们首先得需要知道“什么是API网关?”,“为什么要选择Ocelot?”以及“如何将Consul与Ocelot结合起来”等等,同样这些知识点网上的文章也介绍得比较详细了,我这里也只做简单的介绍,然后本文只是个人学习与分享,不喜勿喷,谢谢。

胡桃工具箱, 基于 .NET 开源的多功能原神工具箱

https://mp.weixin.qq.com/s/08PTf2UfT6G0n5llLUHN2Q

胡桃工具箱是一个 Windows 平台的开源的原神工具箱,旨在帮助玩家获得更好的游戏体验;它是对官方移动端工具的一种非破坏性功能扩展,为不习惯在移动端进行原神游戏的 PC 玩家提供一个在 Windows 平台下获得接近移动端功能权利的途径。

概述 .NET ThreadPool 实现

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

本文以 .NET 6 Runtime 源码作为学习材料,对线程池的设计进行介绍。从目前的理解上来看,其整体的设计与原来 C++ 的实现并没有特别大的出入。

SQLSERVER 的 nolock 到底是怎样的无锁

https://mp.weixin.qq.com/s/1j8T2DiWcr1_uNZxhe-5RQ

相信绝大部分用 SQLSERVER 作为底层存储的程序员都知道 nolock 关键词,即使当时不知道也会在踩过若干阻塞坑之后果断的加上 nolock,但这玩意有什么注意事项呢?这就需要了解它的底层原理了。

分布式事务| 使用 dotnetcore/CAP 的本地消息表模式

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

本地消息表模式,其作为柔性事务的一种,核心是将一个分布式事务拆分为多个本地事务,事务之间通过事件消息衔接,事件消息和上个事务共用一个本地事务存储到本地消息表,再通过定时任务轮询本地消息表进行消息投递,下游业务订阅消息进行消费,本质上是依靠消息的重试机制达到最终一致性。

C#托管堆 遭破坏 问题溯源分析

https://mp.weixin.qq.com/s/11784eciCJKVCAM2Kr22Qg

年前遇到了好几例托管堆被损坏的案例,有些运气好一些,从被破坏的托管堆内存现场能观测出大概是什么问题,但更多的情况下是无法做出准确判断的,原因就在于生成的dump是第二现场,借用之前文章的一张图,大家可以理解一下。

2023年 .NET Monorepo 来了

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

Monorepo(monolithic repository)是一种项目架构,简单来说就是,将多个项目或包文件放到一个git仓库来管理,很多前端项目vue3、element都是采用的这种架构模式。

一个开源跨平台的Steam、Uplay、Origin、Epic等游戏平台的基础免费增强工具

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

今天给大家推荐一个开源跨平台的一个开源跨平台的Steam、Uplay、Origin、Epic等游戏平台的基础免费增强工具Watt Toolkit,Watt Toolkit原名Steam++,在这款工具中,您可以做到进行社区加速、成就浏览以及解锁、账号切换、本地令牌、自动挂卡等实用功能。。

.NET EF Core千万级数据实践

https://mp.weixin.qq.com/s/oAt1ASb-VICAvJOV25gVCA

.NET开发中操作数据库EF一直是我的首选,工作和学习也一直在使用。EF一定程度的提高了开发速度,开发人员专注业务,不用编写sql。方便的同时也产生了一直被人诟病的一个问题性能低下。

由于Mayuki大佬未更新外文主题详情,所以本次周报外文板块仅标题和URL。

主题

【英文】mysql-net/MySqlConnector 发布 Release 2.3.0 Beta 1

https://github.com/mysql-net/MySqlConnector/releases/tag/2.3.0-beta.1

【英文】Visual Studio Code 2023年1月更新

https://code.visualstudio.com/updates/v1_75

【英文】ReSharper 2023.1 EAP 3 发布 | The .NET Tools Blog

https://blog.jetbrains.com/dotnet/2023/02/03/resharper-2023-1-eap-3/

【英文】Rider 2023.1 EAP 3 带有Docker和结构视图的改进以及本地化预览功能 | The .NET Tools Blog

https://blog.jetbrains.com/dotnet/2023/02/03/rider-2023-1-eap-3/

【英文】dotnet/maui 发布 Release 7.0.59 Service Release 3

https://github.com/dotnet/maui/releases/tag/7.0.59

文章、幻灯片

【日文】[C#12候选特性]集合字词 |UFCPP博客

https://ufcpp.net/blog/2023/1/collection-literal

【日文】我想把Blazor中的验证逻辑组件化

https://zenn.dev/okazuki/articles/viewside-validation

【日文】我想缩小显示的错误信息,如Blazor中ValidationSummary的asp-validation-summary

https://zenn.dev/okazuki/articles/blazor-validationsummary-tips

【日文】使用SignalR开发应用程序更加得心应手!

https://speakerdeck.com/nenonaninu/signalr-woshi-tutaapurikesiyonkai-fa-woyorikuai-shi-ni

【日文】对C#初学者三个推荐学习网站的评论 - Qiita

https://qiita.com/YouKnow/items/34a24351991c6744b691

【英文】Redis大学 RU102N: Redis for .NET Developers

https://dev.to/slorello/redis-university-ru102n-redis-for-net-developers-30om

【英文】用C#源代码生成器映射ASP.NET Core 最小的API Endpoint

https://dev.to/joaofbantunes/mapping-aspnet-core-minimal-api-endpoints-with-c-source-generators-3faj

【英文】用新的MediaElement在.NET MAUI应用程序中播放音频和视频

https://devblogs.microsoft.com/dotnet/announcing-dotnet-maui-communitytoolkit-mediaelement/

【日文】在C#中控制控制台输出的字符编码

https://zenn.dev/oyasumi731/articles/26309b705704cc

【英文】为最小的API生成参数表达式(续):最小的API的幕后 - 第五部分

https://andrewlock.net/behind-the-scenes-of-minimal-apis-5-generating-argument-expressions-for-minimal-apis-continuted/

【英文】布隆过滤器

https://medium.com/@marcioalthmann/bloom-filters-8dde17bc7ee6

【英文】在ASP.NET Core中使用Respawn进行集成测试

https://medium.com/@niko.kantaria/integration-testing-with-respawn-in-asp-net-core-6de63dcfc7ba

【英文】来自WMI的基本Windows机器硬件信息用于.NET的异常记录

https://weblog.west-wind.com/posts/2023/Feb/02/Basic-Windows-Machine-Hardware-information-from-WMI-for-Exception-Logging-from-NET

【英文】SQL-Server: 用Ef Core计算的列

https://dev.to/karenpayneoregon/sql-server-computed-columns-with-ef-core-3h8d

【日文】使用Dapper的个人技巧和窍门 - Qiita

https://qiita.com/mania3bb2007/items/3319279676ff820998cb

【日文】[.NET] 将配置文件(如appsettings.json)映射到类中 - Qiita

https://qiita.com/yaju/items/3c0de1341e6c96cc1afa

【英文】.NET中的静态和非静态接口成员调用:它们是不一样的

https://medium.com/@ocoanet/static-and-non-static-interface-member-calls-in-net-they-are-not-the-same-b22bf2d00ae5

开源库、资源库、工具

Cysharp/SimdLinq: 用SIMD替换LINQ的聚合操作,速度极快。

https://github.com/Cysharp/SimdLinq/

JJConsulting/JJMasterData: JJMasterData是一个开源的.NET库,帮助你在运行时从数据字典(元数据)快速创建CRUD。

https://github.com/jjconsulting/JJMasterData

网站、文件等

推文

https://twitter.com/egorbo/status/1619448596360994816?s=12

Roslyn 团队刚刚合并了“更快的字符串文本切换”优化 - https:// github.com/dotnet/roslyn/ pull/66081... 以下是快速代码样例:

image-20230206195003561


https://twitter.com/JamesNK/status/1620216852176863233

.NET8将支持ASP.NET Core在macOS上使用HTTPS协议。

image-20230206200635897


https://twitter.com/neuecc/status/1620030194060001282

发布使用SIMD技术优化的LINQ扩展库,统计方法可以提高3~10倍的速度。

image-20230206200817960

深入研究

通过选择功能启用对针对iOS的NativeAOT的支持 · Issue #80905 · dotnet/runtime

https://github.com/dotnet/runtime/issues/80905

https://twitter.com/austinwise/status/1619228434680680448?s=12

image-20230206195113386

版权声明

由于笔者没有那么多时间对国内的一些文章进行整理,欢迎大家为《.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月第1期 2023-02-04】相似的内容:

.NET周报 【2月第1期 2023-02-04】

国内文章 .NET 入门到高级路线 https://www.cnblogs.com/hejiale010426/archive/2023/02/01/17083913.html 笔者介绍了.NET入门到高级路线需要学习的知识和资源链接等。 如何将WebAssembly优化到1MB? https://

.NET周报 【2月第2期 2023-02-11】

国内文章 SQLSERVER的truncate和delete有区别吗? https://mp.weixin.qq.com/s/wTIeW8rjj3cRzoaQcg2sOw 在面试中我相信有很多朋友会被问到 truncate 和 delete 有什么区别 ,这是一个很有意思的话题,本篇我就试着来回答一

.NET周报 【2月第3期 2023-02-18】

国内文章 2023 年.NET仓库社区年度调查已经开始 https://mp.weixin.qq.com/s/H9xUAO_yAdqm5CIHBs_eqA 中国地区是 .NET 的一个重要的市场和社区,有着众多的 .NET 开发者和爱好者。中国地区也有着很多优秀的 .NET 相关的项目和资源。这些项

.NET周报 【2月第4期 2023-02-25】

国内文章 .NET微服务系统迁移至.NET6.0的故事 https://www.cnblogs.com/InCerry/p/microservice-migration-net-6.html 本次迁移涉及的是公司内部一个业务子系统,该系统是一个多样化的应用,支撑着公司的多个业务方向。目前,该系统由4

.NET周报【1月第2期 2023-01-13】

国内文章 【ASP.NET Core】按用户等级授权 https://www.cnblogs.com/tcjiaan/p/17024363.html 本文介绍了ASP.NET Core如何按照用户等级进行授权。 在 C# 9 中使用 foreach 扩展 https://www.cnblogs.co

.NET周报 【3月第2期 2023-03-12】

国内文章 ASP.NET Core中如何限制响应发送速率(不是调用频率) https://www.cnblogs.com/coredx/p/17195492.html ASP.NET Core中有很多RateLimit组件,.NET 7甚至推出了官方版本。不过这些组件的主要目标是限制客户端访问服务的

.NET周报 【4月第2期 2023-04-08】

国内文章 LRU缓存替换策略及C#实现 https://www.cnblogs.com/eventhorizon/p/17290125.html 这篇文章讲述了缓存替换策略,特别是LRU算法。LRU算法基于这样一个假设:如果数据最近被访问过,那么将来被访问的几率也更高。通常我们会用双向链表来实现这个

.NET周报 【6月第2期 2023-06-11】

## 国内文章 ### 如何计算一个实例占用多少内存? https://www.cnblogs.com/artech/p/size-calculation.html 我们都知道CPU和内存是程序最为重要的两类指标,那么有多少人真正想过这个问题:一个类型(值类型或者引用类型)的实例在内存中究竟占多少字

.NET周报 【5月第2期 2023-05-14】

国内文章 XUnit数据共享与并行测试 https://www.cnblogs.com/podolski/p/17388602.html 在单元或者集成测试的过程中,需要测试的用例非常多,如果测试是一条一条过,那么需要花费不少的时间。从 V2 开始,默认情况下 XUnit 自动配置并行(参考资料),

.NET周刊【7月第2期 2023-07-09】

由于这周比较忙,只给出了标题和链接,没有具体的简介。 另外根据粉丝朋友的反馈,".NET周报" 更名为 ".NET周刊",希望大家喜欢 : ) ## 国内文章 ### 🎉Avalonia 11.0.0 正式版发布 https://www.cnblogs.com/hejiale010426/p/17