.NET周刊【8月第4期 2023-08-27】
国内文章
AgileConfig-1.7.0 发布,支持 SSO
https://www.cnblogs.com/kklldog/p/agileconfig-170.html
AgileConfig 已经好久好久没有更新过比较大的功能了。一是 AgileConfig 本身的定位就是比较轻量,不想集成太多的功能。二是比较忙(懒)。但是本次升级给大家带来了一个比较有用的功能 SSO。
使用 OpenTelemetry 构建 .NET 应用可观测性(1):什么是可观测性
https://www.cnblogs.com/eventhorizon/p/17660272.html
- 什么是系统的可观测性(Observability)
- 为什么软件系统需要可观测性
- 可观测性的三大支柱
- 日志(Logging)
- 指标(Metrics)
- 分布式追踪(Distributed Tracing)
- Unknow Unknows VS Known Unknowns
- 数据的关联 - 实现可观测性的关键
- 总结
Windows 虚拟地址 到底是如何映射到 物理地址 的?
https://www.cnblogs.com/huangxincheng/p/17656346.html
我发现有很多的 .NET程序员 写了很多年的代码都没弄清楚什么是 虚拟地址,更不用谈什么是 物理地址 以及Windows是如何实现地址映射的了?这一篇我们就来聊一聊这两者之间的联系。
C#是否应该限制链式重载的设计模式?
https://www.cnblogs.com/sunkaixuan/p/17655870.html
链式重载是我自己创造的一个词,意思是方法A里处理一下参数,return另一个方法A,第二个方法A里处理一下参数调第三个方法A,就这样无限循环下去直到调到真正能出结果的方法A。
本人学艺不精,偶然进行C#开发,感觉看代码要吐。比如看到某处调用方法A,除非有某个特征显眼的参数,否则根本不知道调的方法A是哪个,而且代码里也不是按照链的顺序写的。
一个超经典 WinForm 卡死问题的最后一次反思
https://www.cnblogs.com/huangxincheng/p/17654394.html
在我分析的 200+ dump 中,同样会遵循着 28原则,总有那些经典问题总是反复的出现,有很多的朋友就是看了这篇 一个超经典 WinForm 卡死问题的再反思 找到我,说 WinDbg 拦截 System_Windows_Forms_ni System.Windows.Forms.Application+MarshalingControl..ctor 总会有各种各样的问题,而且 windbg 也具有强侵入性,它的附加进程方式让很多朋友望而生畏!
这一篇我们再做一次反思,就是如何不通过 WinDbg 找到那个 非主线程创建的控件,那到底用什么工具的? 对,就是用 Perfview 的墙钟模式。
MAUI+Blazor混合应用开发示例
https://www.cnblogs.com/fengjq/p/17647612.html
笔者之前在公司搭建过一套生产管理系统,该系统要求能和硬件进行串口通信,同时又要方便后台进行信息查询。笔者给出的解决方案就是:MAUI + Blazor,这样只需要提供一套UI,就能满足桌面端、移动端和Web端三种不同应用场景。今天要介绍的是基于桌面端的开发实现(实际上WPF和Winform皆可行)。
某酒管集团-单例模式对性能的影响及思考
https://www.cnblogs.com/yxdeng/p/17636047.html
大概一年前开始在思考 构造函数中 依赖注入较多,这对系统性能及硬件资源消耗产生一些优化想法。 一般较多公司的项目都使用Autofac 依赖注入(Scoped 作用域),但是发现过多的对象产生 会消耗 CPU , 内存 并给GC(垃圾回收)造成一定的压力。那么开始思考是否能够使用 单例 (Singleton)来解决这些问题呢? 带着这些想法开始ReView整个项目的代码,排查是否存在 单例 会造成 线程安全 或 方法内修改全局变量的代码( 结果是乐观的.... )。于是开始了性能测试....论证.. 试运行... ,结果是超预期的(CPU 从 60%-降低到--》10%, 内存 从 33%-降低到--》20%, 接口平均响应时间 从 120毫秒--降低到--》50毫秒 . 1500/QPS (不含内部服务相互调用)) 和 @InCerry 沟通结果,说可以写个 案例 和大家分享分享... 于是乎 有了这一片文章。
CTC蜀道会:第一次圆桌会圆满结束
https://www.cnblogs.com/edisonchou/p/ctc_offline_activity_2023no1_introduction.html
近期,成都.NET俱乐部核心成员经过讨论会,我们成立了CTC蜀道会,它是一个专注于创业历程、研发管理、AIGC、副业之路、.NET、Vue、微软技术、开源技术等领域的社区,立足于蓉城成都,致力于连接同道中人,共同破圈成长。
Blazor前后端框架Known-V1.2.13
https://www.cnblogs.com/known/p/17645480.html
Known是基于C#和Blazor开发的前后端分离快速开发框架,开箱即用,跨平台,一处代码,多处运行。
- Gitee: https://gitee.com/known/Known
- Github:https://github.com/known/Known
主题
【英文】发布版本 v2.56.0 grpc/grpc-dotnet
https://github.com/grpc/grpc-dotnet/releases/tag/v2.56.0
grpc-dotnet v2.56.0 已发布。
它包括对 DebuggerDisplay 等调试体验的改进,以及细微的改进和错误修复。
【英文】Windows 社区工具包 8.0 预发行版 - #ifdef Windows
https://devblogs.microsoft.com/ifdef-windows/windows-community-toolkit-8-0-pre-release/
Windows Community Toolkit 8.0 预览版已发布。
WCT 8.0 将多个平台集成到一个代码库中,统一命名空间等等。该组件可与 UWP、Windows App SDK 和 Uno 平台配合使用。
本文还介绍了可用的包以及如何在新的/现有的项目中使用它们。
【英文】发布 ImageSharp.Drawing 1.0.0
https://sixlabors.com/posts/announcing-imagesharp-drawing-100/
SixLabors.ImageSharp.Drawing 1.0.0 已发布。
该库基于ImageSharp,提供高级绘图功能,例如文本渲染、路径和形状绘制。在类似 Linux 的环境中可以用作 System.Drawing 的替代方案。
请注意,该库的版本 v1.x 是在 Apache 2.0 许可证下,但它所依赖的 ImageSharp 不是 v2.x(不是开源的)。
【英文】ReSharper 和 Rider 2023.2 的第一组错误修复就在这里! | .NET 工具博客
https://blog.jetbrains.com/dotnet/2023/08/24/2023-2-1-bugfix/
ReSharper 和 Rider 2023.2 已发布。
此版本修复了各种错误,包括冻结和代码解析问题。
【英文】.NET Framework 2023 年 8 月累积更新预览 - .NET 博客
https://devblogs.microsoft.com/dotnet/dotnet-framework-august-2023-cumulative-update-preview/
.NET Framework 2023 年 8 月累积更新的预览版已发布。
此版本修复了 WPF、运行时和 ASP.NET 中的多个错误。
文章、幻灯片等
【英文】内存优化的扭曲故事
讨论从“char[]”创建 UTF-8 字节时优化内存分配的陷阱。
【日文】可以包装 Microsoft.Fast.Components.FluentUI 的 DataGrid 中无法显示的项目
https://zenn.dev/tomokusaba/articles/2468153bfe2d68
关于FluentUI for Blazor的FluentDataGrid组件中在列中指定长字符串时如何避免显示被截断的问题。
【日文】CEDEC 2023 现代高性能 C# 2023 版
https://speakerdeck.com/neuecc/cedec-2023-modanhaipahuomansuc-number-2023-edition
该幻灯片介绍了基于序列化器的实现在现代 .NET 中编写高性能代码的技术。
【日文】使用 AntDesignBlazor 时如何测试组件
https://zenn.dev/artuer/articles/9245d21ac8a88c
如何使用 AntDesignBlazor 对组件进行单元测试。能够使用 BUnit 和 AntDesignTestKit 编写测试。
【日文】制作一个在iOS真机和模拟器上运行MAUI App的脚本的故事 - Qiita
https://qiita.com/t0r/items/1e7a2e8923a8b47a3a12
关于创建 shell 脚本以直接在 iOS 真实版和模拟器上运行 .NET MAUI 应用程序。
【英文】在 Visual Studio 2022 中安全地使用 HTTP 请求中的机密 - Visual Studio 博客
使用 Visual Studio 2022 发送 HTTP 请求 (.http) 的功能时如何存储机密。
除了 httpenv.json 作为环境设置和 httpenv.json.user 作为用户特定设置之外,我们还介绍了从 ASP.NET Core 用户机密和 Azure Key Vault 获取机密信息以及使用 Windows DPAPI 进行加密等方法。是它还引入了 HTTP 文件中额外支持的新语法。
【英文】使用 ForwardedHeadersMiddleware 简化微服务中的标头传播
如何在服务之间传播从客户端接收到的 HTTP 标头。本文介绍如何使用 Microsoft.AspNetCore.HeaderPropagation NuGet 包。
【英文】使用 GitHub Copilot Chat 简化代码优化和调试 - Visual Studio 博客
介绍 Visual Studio 中使用 GitHub Copilot Chat 进行调试和代码改进功能。
本文介绍了分析器中的 CPU 使用情况分析、异常帮助程序以及调试时引用变量和调用堆栈的问题等功能。
【英文】探索 .NET 8 中的 Blazor 变化 - 使用表单捕获用户输入
https://jonhilton.net/blazor-ssr-forms/
在 .NET 8 中的 Blazor (SSR) 中处理表单用户输入的演练。
【英文】如何在 Steam Deck 上安装 JetBrains Rider | .NET 工具博客
https://blog.jetbrains.com/dotnet/2023/08/23/how-to-install-jetbrains-rider-on-steam-deck/
如何在 Steam Deck (SteamOS) 上安装 Rider。
本文介绍了除了 Rider 之外如何安装和运行 .NET 和 Unity。
【英文】.NET 迁移的故事 - 编目
https://www.jimmybogard.com/tales-from-the-net-migration-trenches-catalog/
创建一个目录,列出现有应用程序需要解决的问题,以便从 .NET Framework 迁移到 .NET。
【英文】使用 Serilog 和 Azure 进行 ASP.NET Core 日志记录
https://damienbod.com/2023/08/21/asp-net-core-logging-using-serilog-and-azure/
如何在 ASP.NET Core 中使用 Serilog 将日志发送到 Application Insights 和 Azure 应用服务日志记录服务。
【英文】动态适应应用程序大小
https://maoni0.medium.com/dynamically-adapting-to-application-sizes-2d72fcb6f1ea
讨论称为动态适应应用程序大小 (DATA) 的 GC 功能,该功能将在 .NET 8 中实验性地引入。
【日文】C# Dev Kit for Visual Studio Code 是一个故事,您可以在 GitHub Codespaces 上免费使用它 - Shibayan Miscellaneous
https://blog.shibayan.jp/entry/20230825/1692937805
关于在 Visual Studio Code 上使用扩展的 C# Dev Kit 进行 .NET 开发需要 Visual Studio 许可证,但该许可证包含在 GitHub Codespaces 中。
【日文】尝试将 ASP.NET Core 集成添加到 Azure Functions(.NET 独立工作线程)- Shibayan 其他
https://blog.shibayan.jp/entry/20230823/1692768859
了解 ASP.NET Core 集成现已在 Azure Functions 的 .NET 隔离工作线程中可用。
【英文】Visual Studio 中的新增功能:使用解决方案资源管理器比较文件 - Visual Studio 博客
介绍 Visual Studio 解决方案资源管理器中的文件比较功能。
Enum.TryParse 意外行为
https://steven-giesel.com/blogPost/64d479f1-823f-4fc7-a56a-2b1ff06dcf72
如果 Enum.TryParse 与基本类型匹配,即使该值实际上并未定义,它也会通过有必要检查 IsDefined。
库、存储库、工具等。
wcabus/nes-sharp:用 C# 编写的 NES 模拟器
https://github.com/wcabus/nes-sharp
用 C# 编写的 NES(Famicom)模拟器。
https://x.com/wesleycabus/status/1695072673087263168?s=12
网站、文档等
推文
讨论如何在 appsettings.json 中以与日志相同的方式完成 .NET 8 中与指标相关的设置。
https://x.com/davidfowl/status/1695454305782837561?s=12
对象头是 4 个字节,但在 64 位 .NET 中,出于对齐原因包含 4 个字节的填充是一种浪费。
https://x.com/kookiz/status/1692931201550446891?s=12&t=ggvrrZ7oLogHyNoIGNgjbw
深入理解
通过 janvorli Pull 请求将 NativeAOT 异常处理移植到 CoreCLR #88034 dotnet/runtime
https://github.com/dotnet/runtime/pull/88034
PR 将 NativeAOT 的异常处理机制移植到 CoreCLR。
这可以加快异常处理速度,但目前有一些限制,并且需要环境变量才能启用。此外,由于复杂性,不支持 32 位版本的 Windows。
CoreCLR RISC-V 架构端口问题 #84834 dotnet/runtime GitHub
https://github.com/dotnet/runtime/issues/84834
移植到 RISC-V 架构的问题。
版权声明
- 国内板块由 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周刊【8月第4期 2023-08-27】的更多相关文章
- .NET周报 【2月第2期 2023-02-11】
国内文章 SQLSERVER的truncate和delete有区别吗? https://mp.weixin.qq.com/s/wTIeW8rjj3cRzoaQcg2sOw 在面试中我相信有很多朋友会被 ...
- .NET周报【1月第4期 2023-01-28】
由于微信公众号排版问题,建议大家在PC端浏览. 国内文章 C# 很少人知道的科技 https://blog.lindexi.com/post/C-很少人知道的科技.html 本文来告诉大家在C#很少有 ...
- .NET周报【10月第3期 2022-10-25】
国内文章 聊一聊被 .NET程序员 遗忘的 COM 组件 https://www.cnblogs.com/huangxincheng/p/16799234.html 将Windows编程中经典的COM ...
- .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周报 【2月第1期 2023-02-04】
国内文章 .NET 入门到高级路线 https://www.cnblogs.com/hejiale010426/archive/2023/02/01/17083913.html 笔者介绍了.NET入门 ...
- .NET周报 【2月第3期 2023-02-18】
国内文章 2023 年.NET仓库社区年度调查已经开始 https://mp.weixin.qq.com/s/H9xUAO_yAdqm5CIHBs_eqA 中国地区是 .NET 的一个重要的市场和社区 ...
- .NET周报 【2月第4期 2023-02-25】
国内文章 .NET微服务系统迁移至.NET6.0的故事 https://www.cnblogs.com/InCerry/p/microservice-migration-net-6.html 本次迁移 ...
- .NET周报 【3月第2期 2023-03-12】
国内文章 ASP.NET Core中如何限制响应发送速率(不是调用频率) https://www.cnblogs.com/coredx/p/17195492.html ASP.NET Core中有很多 ...
- .NET周报 【3月第3期 2023-03-19】
国内文章 记一次 .NET某汽车零件采集系统 卡死分析 https://www.cnblogs.com/huangxincheng/p/17214154.html 前段时间有位朋友在微信上找到我,说他 ...
随机推荐
- 限速神器RateLimiter源码解析
作者:京东科技 李玉亮 目录指引 限流场景 软件系统中一般有两种场景会用到限流: •场景一.高并发的用户端场景. 尤其是C端系统,经常面对海量用户请求,如不做限流,遇到瞬间高并发的场景,则可能压垮系统 ...
- Midjourney|文心一格prompt教程[Text Prompt(上篇)]:品牌log、App、徽章、插画、头像场景生成,各种风格选择:科技风、运动风
Midjourney|文心一格prompt教程[Text Prompt(上篇)]:品牌log.App.徽章.插画.头像场景生成,各种风格选择:科技风.运动风 1.撰写 Text Prompt 注意事项 ...
- 记一次 Oracle 下的 SQL 优化过程
1. 介绍 事情是这样的,UAT 环境的测试小伙伴向我扔来一个小 bug,说是一个放大镜的查询很慢,转几分钟才出数据,我立马上开发环境试了一下,很快啊我说,放大镜的数据立马就出来了,然后我登录 UAT ...
- 巧用OpenSSH进行域内权限维持
最近在Windows服务器上安装OpenSSH,意外发现了一个很有意思的技巧,可用来做域内权限维持,废话不多说,直接上步骤. 01.利用方式 (1)在已经获得权限的Windows服务器上,使用msie ...
- Three.js 进阶之旅:滚动控制模型动画和相机动画 🦢
声明:本文涉及图文和模型素材仅用于个人学习.研究和欣赏,请勿二次修改.非法传播.转载.出版.商用.及进行其他获利行为. 摘要 专栏上篇文章<Three.js 进阶之旅:页面*滑滚动-王国之泪&g ...
- C# decimal double 获取一组数字 小数点后最多有几位
有一组数字,想判断一组数字中最多的有几位小数,乘以10的指定幂,转为整数,此处教大家一个高级的写法,拒接无脑for循环 decimal: decimal[] numbers = new decimal ...
- ARC114F Permutation Division
题意 给定一个 \(1 \sim N\) 的排列,Alice 把它划分成 \(k\) 段,Bob 把这 \(k\) 段任意排列.Alice 想让字典序最小,Bob 想让字典序最大.请问最后的排列. 数 ...
- G1垃圾回收参数调优及MySQL虚引用造成GC时间过长分析
1. 背景 我方有一应用,偶尔会出现GC时间过长(间隔约4小时),导致性能波动的问题(接口最长需要耗时3秒以上).经排查为G1垃圾回收器参数配置不当 叠加 MySQL 链接超过闲置时间回收,产生大量的 ...
- 多线程知识:三个线程如何交替打印ABC循环100次
本文博主给大家讲解一道网上非常经典的多线程面试题目.关于三个线程如何交替打印ABC循环100次的问题. 下文实现代码都基于Java代码在单个JVM内实现. 问题描述 给定三个线程,分别命名为A.B.C ...
- 2023-07-13:如果你熟悉 Shell 编程,那么一定了解过花括号展开,它可以用来生成任意字符串。 花括号展开的表达式可以看作一个由 花括号、逗号 和 小写英文字母 组成的字符串 定义下面几条语
2023-07-13:如果你熟悉 Shell 编程,那么一定了解过花括号展开,它可以用来生成任意字符串. 花括号展开的表达式可以看作一个由 花括号.逗号 和 小写英文字母 组成的字符串 定义下面几条语 ...