国内文章

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

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开发的前后端分离快速开发框架,开箱即用,跨平台,一处代码,多处运行。

主题

【英文】发布版本 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 中的多个错误。

文章、幻灯片等

【英文】内存优化的扭曲故事

https://ayende.com/blog/199969-A/a-twisted-tale-of-memory-optimization?Key=cb2fc684-6549-466c-9c4f-0bae8b5ef566

讨论从“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 博客

https://devblogs.microsoft.com/visualstudio/safely-use-secrets-in-http-requests-in-visual-studio-2022/

使用 Visual Studio 2022 发送 HTTP 请求 (.http) 的功能时如何存储机密。

除了 httpenv.json 作为环境设置和 httpenv.json.user 作为用户特定设置之外,我们还介绍了从 ASP.NET Core 用户机密和 Azure Key Vault 获取机密信息以及使用 Windows DPAPI 进行加密等方法。是它还引入了 HTTP 文件中额外支持的新语法。

【英文】使用 ForwardedHeadersMiddleware 简化微服务中的标头传播

https://medium.com/@asad99/simplifying-header-propagation-in-microservices-with-forwardedheadersmiddleware-2001fa6b4981

如何在服务之间传播从客户端接收到的 HTTP 标头。本文介绍如何使用 Microsoft.AspNetCore.HeaderPropagation NuGet 包。

【英文】使用 GitHub Copilot Chat 简化代码优化和调试 - Visual Studio 博客

https://devblogs.microsoft.com/visualstudio/simplified-code-refinement-and-debugging-with-github-copilot-chat/

介绍 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 博客

https://devblogs.microsoft.com/visualstudio/new-in-visual-studio-compare-files-with-solution-explorer/

介绍 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 架构的问题。

版权声明

由于笔者没有那么多时间对国内的一些文章进行整理,欢迎大家为《.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】的更多相关文章

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

    国内文章 SQLSERVER的truncate和delete有区别吗? https://mp.weixin.qq.com/s/wTIeW8rjj3cRzoaQcg2sOw 在面试中我相信有很多朋友会被 ...

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

    由于微信公众号排版问题,建议大家在PC端浏览. 国内文章 C# 很少人知道的科技 https://blog.lindexi.com/post/C-很少人知道的科技.html 本文来告诉大家在C#很少有 ...

  3. .NET周报【10月第3期 2022-10-25】

    国内文章 聊一聊被 .NET程序员 遗忘的 COM 组件 https://www.cnblogs.com/huangxincheng/p/16799234.html 将Windows编程中经典的COM ...

  4. .NET周报【1月第1期 2023-01-06】

    国内文章 [开源]基于.net6+gtksharp实现的Linux下的图形界面串口调试工具 https://www.cnblogs.com/flykai/p/17007554.html 由于公司的上位 ...

  5. .NET周报【1月第3期 2023-01-20】

    这应该是2023年农历新年前的最后一篇.NET周报,再次预祝大家新年快乐! 国内文章 看我是如何用C#编写一个小于8KB的贪吃蛇游戏的 https://www.cnblogs.com/InCerry/ ...

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

    国内文章 .NET 入门到高级路线 https://www.cnblogs.com/hejiale010426/archive/2023/02/01/17083913.html 笔者介绍了.NET入门 ...

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

    国内文章 2023 年.NET仓库社区年度调查已经开始 https://mp.weixin.qq.com/s/H9xUAO_yAdqm5CIHBs_eqA 中国地区是 .NET 的一个重要的市场和社区 ...

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

    国内文章 .NET微服务系统迁移至.NET6.0的故事 https://www.cnblogs.com/InCerry/p/microservice-migration-net-6.html 本次迁移 ...

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

    国内文章 ASP.NET Core中如何限制响应发送速率(不是调用频率) https://www.cnblogs.com/coredx/p/17195492.html ASP.NET Core中有很多 ...

  10. .NET周报 【3月第3期 2023-03-19】

    国内文章 记一次 .NET某汽车零件采集系统 卡死分析 https://www.cnblogs.com/huangxincheng/p/17214154.html 前段时间有位朋友在微信上找到我,说他 ...

随机推荐

  1. 限速神器RateLimiter源码解析

    作者:京东科技 李玉亮 目录指引 限流场景 软件系统中一般有两种场景会用到限流: •场景一.高并发的用户端场景. 尤其是C端系统,经常面对海量用户请求,如不做限流,遇到瞬间高并发的场景,则可能压垮系统 ...

  2. Midjourney|文心一格prompt教程[Text Prompt(上篇)]:品牌log、App、徽章、插画、头像场景生成,各种风格选择:科技风、运动风

    Midjourney|文心一格prompt教程[Text Prompt(上篇)]:品牌log.App.徽章.插画.头像场景生成,各种风格选择:科技风.运动风 1.撰写 Text Prompt 注意事项 ...

  3. 记一次 Oracle 下的 SQL 优化过程

    1. 介绍 事情是这样的,UAT 环境的测试小伙伴向我扔来一个小 bug,说是一个放大镜的查询很慢,转几分钟才出数据,我立马上开发环境试了一下,很快啊我说,放大镜的数据立马就出来了,然后我登录 UAT ...

  4. 巧用OpenSSH进行域内权限维持

    最近在Windows服务器上安装OpenSSH,意外发现了一个很有意思的技巧,可用来做域内权限维持,废话不多说,直接上步骤. 01.利用方式 (1)在已经获得权限的Windows服务器上,使用msie ...

  5. Three.js 进阶之旅:滚动控制模型动画和相机动画 🦢

    声明:本文涉及图文和模型素材仅用于个人学习.研究和欣赏,请勿二次修改.非法传播.转载.出版.商用.及进行其他获利行为. 摘要 专栏上篇文章<Three.js 进阶之旅:页面*滑滚动-王国之泪&g ...

  6. C# decimal double 获取一组数字 小数点后最多有几位

    有一组数字,想判断一组数字中最多的有几位小数,乘以10的指定幂,转为整数,此处教大家一个高级的写法,拒接无脑for循环 decimal: decimal[] numbers = new decimal ...

  7. ARC114F Permutation Division

    题意 给定一个 \(1 \sim N\) 的排列,Alice 把它划分成 \(k\) 段,Bob 把这 \(k\) 段任意排列.Alice 想让字典序最小,Bob 想让字典序最大.请问最后的排列. 数 ...

  8. G1垃圾回收参数调优及MySQL虚引用造成GC时间过长分析

    1. 背景 我方有一应用,偶尔会出现GC时间过长(间隔约4小时),导致性能波动的问题(接口最长需要耗时3秒以上).经排查为G1垃圾回收器参数配置不当 叠加 MySQL 链接超过闲置时间回收,产生大量的 ...

  9. 多线程知识:三个线程如何交替打印ABC循环100次

    本文博主给大家讲解一道网上非常经典的多线程面试题目.关于三个线程如何交替打印ABC循环100次的问题. 下文实现代码都基于Java代码在单个JVM内实现. 问题描述 给定三个线程,分别命名为A.B.C ...

  10. 2023-07-13:如果你熟悉 Shell 编程,那么一定了解过花括号展开,它可以用来生成任意字符串。 花括号展开的表达式可以看作一个由 花括号、逗号 和 小写英文字母 组成的字符串 定义下面几条语

    2023-07-13:如果你熟悉 Shell 编程,那么一定了解过花括号展开,它可以用来生成任意字符串. 花括号展开的表达式可以看作一个由 花括号.逗号 和 小写英文字母 组成的字符串 定义下面几条语 ...