.NET周报 【2月第1期 2023-02-04】
国内文章
.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://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的异常记录
【英文】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中的静态和非静态接口成员调用:它们是不一样的
开源库、资源库、工具
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... 以下是快速代码样例:
https://twitter.com/JamesNK/status/1620216852176863233
.NET8将支持ASP.NET Core在macOS上使用HTTPS协议。
https://twitter.com/neuecc/status/1620030194060001282
发布使用SIMD技术优化的LINQ扩展库,统计方法可以提高3~10倍的速度。
深入研究
通过选择功能启用对针对iOS的NativeAOT的支持 · Issue #80905 · dotnet/runtime
https://github.com/dotnet/runtime/issues/80905
https://twitter.com/austinwise/status/1619228434680680448?s=12
版权声明
- 国内板块由 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,欢迎大家加入。