.NET周报11月第1期 2022-11-07
Posted dotNET跨平台
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.NET周报11月第1期 2022-11-07相关的知识,希望对你有一定的参考价值。
国内文章
开源·安全·赋能 - .NET Conf China 2022
https://mp.weixin.qq.com/s/_tYpfPeQgyEGsnR4vVLzHg
.NET Conf China 2022 是面向开发人员的社区峰会,延续 .NET Conf 2022 的活动,庆祝 .NET 7 的发布和回顾过去一年来 .NET 在中国的发展成果,它是由中国各地区的技术社区共同发起举办、知名企业和开源组织联合协办,是年度国内规模最大的 .NET 线上和线下会议,目的是用中文传播 .NET 相关技术的知识和经验。
今年,.NET 相关技术社区将一起,于2022 年 12 月 3 日~4 日 举办为期两天的 .NET Conf China,邀请 .NET 中国开发者共襄盛举。
.NET 零开销抽象指南
https://www.cnblogs.com/hez2010/p/dotnet-zero-abstraction.html
目前已经到了 .NET 7 和 C# 11,我们已经能找到大量的相关设施,不过我们仍处在改进进程的中途。本文则利用目前为止已有的设施,讲讲如何在 .NET 中进行零开销的抽象。
如何在.NET 程序崩溃时自动创建 Dump?
https://www.cnblogs.com/InCerry/archive/2022/11/02/how_to_automic_create_dump_when_app_crash.html
介绍了几种当.NET 程序崩溃自动创建 Dump 的方式。
聊一聊对一个 C# 商业程序的反反调试
https://www.cnblogs.com/huangxincheng/archive/2022/11/02/16849808.html
介绍了如何对商业程序反调试机制进行破解,从而达到逆向分析的目的。
C# 9.0 添加和增强的功能【基础篇】
https://www.cnblogs.com/czzj/archive/2022/11/03/16845334.html
介绍了在 C# 9.0 中添加的新的语法和功能。
.NET 性能系列文章二:Newtonsoft.Json vs. System.Text.Json
https://www.cnblogs.com/InCerry/archive/2022/10/31/net-performance-series-2-newtonsoft-vs-system-text-json-2bf43e037db0.html
比较 Newtonsoft.Json 和 System.Text.Json 的性能,System.Text.Json 的性能是否已经超越了其它 Json 序列化库。
为.NET 应用添加截图功能
https://mp.weixin.qq.com/s/wEzPwThrcfnDlx8C_8aLAQ
本文介绍了 .NET 实现截图功能的思路和过程,如果你仅想了解最后的解决方案,可以直接查看文章末尾。
C# 的 async/await 其实是 stackless coroutine
https://mp.weixin.qq.com/s/LMlR9W1KRHfj58xqkOkmfA
和大家聊一聊关于.NET 无栈协程的事情。
主题
议程 - .NET Conf 2022
https://www.dotnetconf.net/agenda
2022 年 dotnetconf 大会的举办时间为 11 月 8 日晚(中国时间)至 11 月 11 日。
NET Conf 2022 回顾活动东京~微软日本社区活动之旅系列 - 微软活动
https://msevents.microsoft.com/event?id=3219140458
NET Conf 2022 回顾活动将于 12 月 6 日星期二在东京举行。该活动将在微软日本总部举行,可免费参加。
在 2022 年的国际互联网大会上,晚上的会议将包括一个招待会、"询问发言人 "和社区的闪电讲座。
在.NET 会议学生区创建你的.NET 投资组合 - .NET 博客
https://devblogs.microsoft.com/dotnet/dotnet-conf-2022-student-zone/
.NET 学生区,是在.NET 大会上为学生提供的直播活动。
在.NET 学生区,你可以了解到关于.NET 的各种信息。.NET Conf 学生区云技能挑战赛,三名参与者(学生)将赢得 SWAG(奖品)。
ASP.NET Core 7 的性能改进 - .NET 博客
https://devblogs.microsoft.com/dotnet/performance-improvements-in-aspnet-core-7/
一篇解释.NET 7 中 ASP.NET Core 的性能改进的文章。
它解释了各种性能改进以及基准。
通用服务器
内存池分区
将 Windows 的 IO 池切换到使用管理实现
减少连接关闭时的异常情况。
扩展了 PoolingAsyncValueTaskMethodBuilder 的应用
HTTP/2
减少锁的争夺
增加默认窗口大小
HTTP/3
改进的 QPack 处理
杂项
SignalR
认证
HttpResult
IndexOfAny
Filters
.NET 7 在.NET MAUI 中的性能改进 - .NET 博客
https://devblogs.microsoft.com/dotnet/dotnet-7-performance-improvements-in-dotnet-maui/
描述.NET 7 中.NET MAUI 性能改进的文章。
它深入研究了启动时间、应用程序大小和滚动性能方面的改进。
滚动和布局性能的改进
LOLs/秒。
避免重复调用
View.Context
。避免在
CollectionView
中调用View.Context
。减少布局时的 JNI 调用
缓存 RTL 和黑暗模式值
避免在布局过程中生成 "IView[]"。
将 RTL 布局计算留给平台
关于 "CollectionView "的其他说明。
启动时的性能改进
安卓 NDK 编译器标志
DateTimeOffset.Now
。避免 "ColorStateList(int[][],int[])"。
为.NET MAUI 改进 AOT 配置文件
在 Java 互操作性中更好的字符串比较
改进了 XAML 的编译工作
在 Windows 上默认启用 ReadyToRun 的功能
默认启用 macOS 上的双体系结构
关于
RegexOptions.Compiled
的说明。Mono 解释器的改进
应用规模的改进
修复安卓系统中 DebuggerSupport 修剪器值的问题
R8 Java Code Shrinker 的改进
能够排除 Kotlin 相关的文件
改进泛型中的 AOT 输出
工具和文件
剖析.NET MAUI 应用程序
启动时间测量
应用规模报告工具
试验或高级配置
Uno Platform 4.6: Hello .NET 7!
https://platform.uno/blog/uno-platform-4-6-hello-net-7/
宣布 Uno 平台 4.6 将支持.NET 7。
文章介绍了 Uno 平台 4.6 的改进,包括对.NET 7 和 Visual Studio 17.4 的支持、库资源、SVG 支持、android 13 支持、WebAssembly Bootstrap 7.0、ASP.NET Core 介绍了托管项目。
用 CoreWCF 和升级助手将 WCF 应用程序带到最新的.NET 上 - .NET 博客
https://devblogs.microsoft.com/dotnet/migration-wcf-to-corewcf-upgrade-assistant/
介绍用于将.NET Framework WCF 项目迁移到 CoreWCF 的升级助手的文章。
这篇文章描述了该工具的安装和执行,以及基于一个示例项目所执行的迁移过程。它指出,一些不支持的自动升级包括基于网络或使用.svc 文件的服务、使用 XML 的行为配置、NetTcpBinding 或不基于 HTTP 的绑定等。
宣布.NET 社区工具包 v8.1.0 预览版 1 - .NET 博客
https://devblogs.microsoft.com/dotnet/announcing-dotnet-community-toolkit-v810-preview-1/
宣布.NET 社区工具包 v8.1.0 预览版 1。
MVVM 工具包源生成器支持 ObservableProperty 的自定义属性,优化源生成器本身,IObservable<T>
信使扩展,支持.NET 7 和 C# 11(Ref<T>
。NullableRef<T>
,等等)和其他各种改进。
.NET Interactive Notebooks 改名为 Polyglot Notebooks!
https://devblogs.microsoft.com/dotnet/dotnet-interactive-notebooks-is-now-polyglot-notebooks/
伴随着.NET Interactive Notebooks 的发展,现在改名为 Polyglot Notebooks!
Visual Studio Code 上的一个扩展 - .NET Interactive Notebooks,已经更名为 Polyglot Notebooks。
由于对.NET Interactive Notebooks 的支持增加,该名称已不再合适,因此改名为 Polyglo tNotebooks。
文章、PPT 等
neue cc - MemoryPack 中.NET 7/C# 11 代的串行器优化技术。
https://neue.cc/2022/11/04_memorypack.html
文章描述了基于 MemoryPack 的二进制序列器实现的.NET 7 / C# 11 代中的序列器优化技术。
SkiaSharp: 用 SKShader 进行阴影填充
https://bclehmann.github.io/2022/11/05/HatchingWithSKShader.html
关于如何在 SkiaSharp 中使用 SKShader 进行填充的文章。
SkiaSharp: 用 SKColourFilter 进行解密
https://bclehmann.github.io/2022/11/06/UnmaskingWithSKColorFilter.html
关于如何在 SkiaSharp 中使用 SKColourFilter 来改变颜色的文章。
在 ASP.NET Core 应用程序中使用 Azure AD 与多租户切换租户
https://damienbod.com/2022/10/31/switch-tenants-in-an-asp-net-core-app-using-azure-ad-with-multi-tenants/
关于如何在 Azure AD 中切换多租户的 ASP.NET Core 应用程序的租户的文章。
在 C#.NET 中矢量类的条件分支(if...then...else) - Qiita
https://qiita.com/C5D5E5/items/dd9da77e24752ff50cec
关于Vector.ConditionalSelect
的文章,当使用 Vector.ConditionalSelect 时,用于条件性分支。
Dotnet(.NET)WinUI、Uno 和 Maui 应用程序的性能跟踪 - Nick 的.NET 旅行
https://nicksnettravels.builttoroam.com/dotnet-trace/
关于如何使用 dotnet-trace 和 dotnet-dsrouter 来获得 WinUI、Uno Platform 和 MAUI 应用程序的跟踪的文章。
异步互斥 | David 的博客
https://dfederm.com/async-mutex/
关于实现 AsyncMutex 的文章,它包装了 Mutex 并使其可用于 async/await。
[C#]调试时需要的字节数组的十六进制转储 - Qiita
https://qiita.com/amutou/items/6a0954c7bf190127f3ef
输出十六进制转储的代码,如 od 命令或二进制编辑器。
在 C#中基本数字类型之间的计算是什么类型? - 齐塔
https://qiita.com/full_deviation/items/a1e01871c33673fd66af
C#数字类型(sbyte,byte,ushort,short,uint,int...)。这篇文章研究了计算以下每种类型的组合时的结果类型。
容器化的 Blazor:微软正在考虑新的客户端主机 - Visual Studio 杂志
https://visualstudiomagazine.com/articles/2022/11/02/blazor-docker.aspx
一篇关于使 Blazor WebAssembly 可容器化的讨论,与 Blazor Server 不同,Blazor Server 是静态构建的,不需要 ASP.NET Core 作为方法。
.NET 月报 | 2022 年 11 月 | .NET 工具博客
https://blog.jetbrains.com/dotnet/2022/11/02/net-annotated-monthly-november-2022/
JetBrains 的.NET 相关信息汇编 2022 年 11 月。
Visual Studio 如何使用 Visual Studio 来构建 Visual Studio - Microsoft Ignite - Session Catalogue
https://ignite.microsoft.com/ja-JP/sessions/bafdbcbc-f9e3-49ed-ac0b-fd1dd8cbc155?source=sessions
关于 Visual Studio 背后的团队为发展 Visual Studio 所做的事情的会议。
有效地建立一个非常大的项目的内部运作,如 Visual Studio,自动化测试和性能跟踪。
开源库
AutumnSky1010/SoundMaker: 你可以用这个库做以下内容,并把 chiptune 的声音导出为 wave 格式的文件。
https://github.com/AutumnSky1010/SoundMaker
用于生成/输出类似于 chiptune 的音乐的库。
tompazourek/NaturalSort.Extension: 🔀 StringComparison 的扩展方法,增加了对自然排序的支持(例如 "abc1", "abc2", "abc10",而不是 "abc1", "abc10", "abc2")。
https://github.com/tompazourek/NaturalSort.Extension
Explorer 文件名排序中使用的自然顺序排序的扩展库。
在 Blazor WebAssembly 中按自然顺序对文件名进行排序。- Qiita[1]
devlooped/avatar: 一个现代化的编译时生成的拦截/代理库
https://github.com/devlooped/avatar
一个拦截库,通过使用 Source Generator 在编译时生成代理。使用源码生成器可以在不能进行 IL 的 Emit(动态代码生成)的环境下运行。
关于 Moq 中使用的 Avatar 库的一点研究た - Qiita[2]
jinek/Consolonia: 一个适用于.NET 的跨平台 UI 框架.
https://github.com/jinek/Consolonia
在控制台实现 Avalonia 用户界面。
使用 Consolonia 在文本控制台运行的 Avalonia UI 应用程序[3]
pierre3/PlantUmlClassDiagramGenerator: 这是一个生成器,用于从 C#源代码中创建 PlantUML 的类图。
https://github.com/pierre3/PlantUmlClassDiagramGenerator
基于 C#源代码生成 PlantUML 类图的工具。
PlantUmlClassDiagramGenerator 1.3.0,一个从 C#源代码生成 PlantUML 类图的工具,现在可以使用了! - Qiita[4]
ststeiger/PdfSharpCore: 将 PdfSharp 库移植到.NET Core 中 - 基本上删除了 GDI+(只缺少 GetFontData- 可以用 freetype2 代替)。
https://github.com/ststeiger/PdfSharpCore
一个用于生成 PDF 的库,由 PdfSharp for .NET Core 修改而成。
PdfSharpCore 简介[5]
深入理解
优化 XxHash3 性能 by xoofx · Pull Request #77756 · dotnet/runtime
https://github.com/dotnet/runtime/pull/77756
XxHash3 优化的 PR
在 ARM 平台上优化 XxHash3 by xoofx · Pull Request #77881 · dotnet/runtime[6]
添加 XxHash128 实现 by xoofx · Pull Request #77944 · dotnet/runtime
https://github.com/dotnet/runtime/pull/77944
增加 XxHash128 实现的建议和 PR
[API Proposal]: XxHash128 · Issue #77885 · dotnet/runtime[7]
版权声明
InCerry 翻译与整理 : https://github.com/InCerryGit/WeekRef.NET/blob/master/input_zh-CN/2022/2022-11-07.md
Myuki WeekRef : https://github.com/mayuki/WeekRef.NET/blob/master/input/2022/2022-11-07.md
由于笔者没有那么多时间对国内的一些文章进行整理,欢迎大家为《.NET 周报-国内文章》板块进行贡献,需要推广自己的文章或者框架、开源项目可以下方的项目地址提交 Issue 或者在我的微信公众号私信。
格式如下:
10~50 字左右的标题
对应文章或项目网址访问链接
200 字以内的简介,如果太长会影响阅读体验
https://github.com/InCerryGit/WeekRef.NET
参考资料
[1]
在Blazor WebAssembly中按自然顺序对文件名进行排序。- Qiita: https://qiita.com/kaorumori/items/712f87a25a3930068c3e
[2]关于Moq中使用的Avatar库的一点研究た - Qiita: https://qiita.com/mngreen/items/35e45714b1e7540ffd62
[3]使用Consolonia在文本控制台运行的Avalonia UI应用程序: https://www.youtube.com/watch?v=yyVuvjYycCo
[4]PlantUmlClassDiagramGenerator 1.3.0,一个从C#源代码生成PlantUML类图的工具,现在可以使用了! - Qiita: https://qiita.com/pierusan2010/items/fbaa8fdf9b7f998bf56f
[5]PdfSharpCore简介: https://zenn.dev/masmgr/articles/f8557ade054b71
[6]在ARM平台上优化XxHash3 by xoofx · Pull Request #77881 · dotnet/runtime: https://github.com/dotnet/runtime/pull/77881
[7][API Proposal]: XxHash128 · Issue #77885 · dotnet/runtime: https://github.com/dotnet/runtime/issues/77885
以上是关于.NET周报11月第1期 2022-11-07的主要内容,如果未能解决你的问题,请参考以下文章