https://www.cnblogs.com/artech/p/string-memory-layout.html
毫无疑问,字符串是我们使用频率最高的类型。但是如果我问大家一个问题:“一个字符串对象在内存中如何表示的?”,我相信绝大部分人回答不上来。我们今天就来讨论这个问题。
https://zhuanlan.zhihu.com/p/645258959
本篇介绍两个工具,有了它们,csharp 可以获得类似 python 的使用体验。这两个工具,一个是脚本工具 dotnet script,另一个是笔记工具 polyglot,vscode 对它们的支持都非常好。
https://www.cnblogs.com/artech/p/17560866.html
作为构建.NET的标准,CLI Spec(ECMA-335)针对基元类型的对齐规则具有如下的描述。按照这个标准,我们是这么理解的:8字节的数据类型(int64、unsigned int64和float64)根据采用的机器指令架构选择4字节或者8字节对其。进一步来说,它们在x86/x64机器上的对其字节分别为4字节和8字节。
https://www.cnblogs.com/czzj/p/async_await.html
对于 async 和 await 两个关键字,对于一线开发人员再熟悉不过了,到处都是它们的身影。
从 C# 5.0 时代引入 async 和 await 关键字,我们使用 async 修饰符可将方法、lambda 表达式或匿名方法指定为异步。 如果对方法或表达式使用此修饰符,则其称为异步方法。async 和 await 通过与 .NET Framework 4.0 时引入的任务并行库(TPL:Task Parallel Library)构成了新的异步编程模型,即 TAP(基于任务的异步模式 Task-based asynchronous pattern)。
但是如果对他们不太了解的话,会有很多麻烦出现,所以最近查了一些资料,也看了几个大佬的介绍,今天来记录汇总下。
https://www.cnblogs.com/huangxincheng/p/17571032.html
在 dump 分析旅程中,经常会遇到很多朋友反馈一类问题,比如:
相信有朋友肯定说,加些日志不就好了,大方向肯定是没问题的,但加日志的颗粒度会比较粗而且侵入性也比较大,比如说这个方法不是你的,或者说这个方法是操作系统的,一般情况下对他们无法干涉,那如何洞察在你作用域之外的方法性能呢?作为 CLR团队首推的 PerfView 性能分析工具,必须要 KO 这些问题,接下来我们就简单聊一聊。
https://www.cnblogs.com/huangxincheng/p/17564671.html
这篇文章源自于分析一些疑难dump的思考而产生的灵感,在dump分析中经常要寻找的一个答案就是如何找到死亡线程的生前都做了一些什么?
https://www.cnblogs.com/huangxincheng/p/17561965.html
如果要分析 Linux上的 .NET程序 CPU 爆高,按以往的个性我肯定是抓个 dump 下来做事后分析,这种分析模式虽然不重但也不轻,还需要一定的底层知识,那有没有傻瓜式的 CPU 爆高分析方式呢?
https://www.cnblogs.com/xiaoxiaotank/p/17560251.html
在微服务化的架构设计中,网关扮演着重要的看门人角色,它所提供的功能之一就是限流。而对于众多非微服务化的系统来说,可能并不会部署网关(无论是因为成本还是复杂度),在这种场景下,为了实现限流,微软在 .NET 7 中提供了官方的限流中间件。下面我们一起来看一下。
https://www.cnblogs.com/huangxincheng/p/17559370.html
前几天写了一篇 如何洞察 .NET程序 非托管句柄泄露
的文章,文中使用 WinDbg 的 !htrace
命令实现了句柄泄露的洞察,在文末我也说了,WinDbg 是以侵入式的方式解决了这个问题,在生产环境中大多数情况下是不能走附加进程的模式,所以这也是它最大的局限性。
那如何以非侵入
的方式解决这个问题呢?这就是本篇讨论的重点,对,就是用 CLR 团队
鼎力推荐的 Perfview 来解决这个问题,哈哈,是我昨天看文档无意发现的 😁😁😁。
https://www.cnblogs.com/lindexi/p/17566552.html
本文将介绍如何将 MAUI 的底层替换为 WPF 框架层,且将 MAUI 的内容嵌入到 WPF 的一个控件里面,无 UI 框架嵌入的空域问题
本文是 MAUI 框架开发博客,而不是 MAUI 应用开发博客,本文更多介绍的是进行 MAUI 这个框架的开发内容。
https://www.cnblogs.com/Yu-Core/p/17571292.html
好久没写文章了,水一篇,关于MAUI Blazor 显示本地图片这个问题,有大佬发过了。就是 token 大佬的那篇Blazor Hybrid (Blazor混合开发)更好的读取本地图片,主要思路就是读取本地图片,通过C#与JS互操作,将byte[]传给js,生成blob,图片的src中填写根据blob生成的url。
我之前一直使用这个办法,简单的优化了一下,无非也就是增加缓存。但是这种方法的弊端也是很明显的:
所以有没有一种办法能够解决这两个问题,思考了很久,终于有了思路,拦截网络请求/响应,读取本地文件并返回响应搜索了一下,C#/MAUI中没有太好的拦截办法,只能从Webview下手,理论已有,实践开始。
https://aws.amazon.com/jp/blogs/developer/net-lambda-annotations-framework/
.NET Lambda 注释框架现已正式发布。
.NET Lambda Annotations Framework 是一种允许您通过基于 Source Generator 设置属性来实现 AWS Lambda 函数的机制。
https://github.com/appwrite/appwrite/discussions/5820
.NET SDK for Appwrite(自托管 BaaS)发布 Beta 版。
https://nats.io/blog/nats-dotnet-v2-alpha-release/
.NET alpha 版本的 NATS 客户端 v2 已发布。
新版本基于 AlterNats,旨在成为使用现代 .NET 功能的高性能库。当前版本仅支持Core NATS,但我们计划将来支持JetStream。
https://blog.jetbrains.com/dotnet/2023/07/18/rsrp-rd-2023-1-4-bugfix/
ReSharper 和 Rider 2023.1.4 发布。
此版本修复了一些错误。
https://blog.jetbrains.com/dotnet/2023/07/21/rider-2023-2-eap-10/
Rider 2023.2 EAP 10 已发布。
此版本将 AI 助手分离为插件,支持实时编码和 Unreal 热重载。
https://blog.jetbrains.com/dotnet/2023/07/21/resharper-2023-2-eap-10/
ReSharper 2023.2 EAP 10 已发布。
此版本取消了 AI 助手的捆绑,并将其作为 dotUltimate 的独立产品安装。
https://devblogs.microsoft.com/visualstudio/introducing-a-powerful-new-extension-manager/
在 Visual Studio 17.7 Preview 3 中引入新的扩展管理器。
如何使用 Entity Framework Core 从现有数据库(脚手架)创建定义。
https://zenn.dev/microsoft/articles/dotnet-sdk-openai-functioncalling
关于尝试使用 Azure.AI.OpenAI 调用 Azure OpenAI 服务的函数。
https://dev.to/fabriziobagala/response-compression-in-aspnet-8ba
关于 ASP.NET Core 中的响应压缩。
它涵盖了如何启用它以及实现自定义压缩提供程序等内容。
https://zenn.dev/microsoft/articles/semantic-kernel-17
使用语义内核将人工智能嵌入到 Web 应用程序中。
https://zenn.dev/tomokusaba/articles/0eb9cdbb616d10
在 .NET 8 Preview 6 中引入新的 Blazor Web 应用程序模板。
使用 EditorConfig 在 Rider 和 ReSharper 中引入代码样式和代码检查。
https://xoofx.com/blog/2023/07/09/10x-performance-with-simd-in-csharp-dotnet/
解释如何优化 SIMD 性能以使速度提高 10 倍。
例如通用 SIMD 版本和 CPU 特定 SIMD 中的优化。
解释 .NET 8 预览版中 ASP.NET Core Minimal API 中的源生成器支持及其工作原理。
https://devblogs.microsoft.com/visualstudio/too-many-tabs-open-no-problem/
关于在 Visual Studio 中显示多个选项卡时尝试允许滚动。
它现在作为扩展提供,并开放征求反馈。
https://ikorin2.hatenablog.jp/entry/2023/07/18/145555
创建具有不同泛型约束的重载方法的技术。
https://dev.to/mrcsharp/controlling-my-ac-unit-with-nanoframework-1a5k
尝试使用 nanoFramework 和 ESP32 控制空调。
https://speakerdeck.com/nenonaninu/ming-ri-karashi-eru-asp-dot-net-core-rogingushu
有关 ASP.NET Core 中日志记录的讨论。它还介绍了请求跟踪等内容。
https://github.com/microsoft/semantic-memory
用于使用与语义内核配合使用的自定义数据管道进行索引和查询的库。
https://github.com/riok/mapperly
用于映射(传输数据)基于源生成器的对象的库。
一个 NuGet 包,允许您为不同的平台和操作系统执行 NativeAOT。
https://twitter.com/mstrehovsky/status/1681170442269364225?s=12
Avalonia XPF(跨平台 WPF 产品)私人预览版提交开放。
https://twitter.com/avaloniaui/status/1681189307023851520?s=12
Visual Studio 有自己的剪贴板历史。
https://twitter.com/hassanrezkhabib/status/1680748023729762304?s=12
https://github.com/dotnet/roslyn/discussions/69074
目前的初步 C# 12 功能列表。
由于笔者没有那么多时间对国内的一些文章进行整理,欢迎大家为《.NET周刊-国内文章》板块进行贡献,需要推广自己的文章或者框架、开源项目可以下方的项目地址提交Issue或者在我的微信公众号私信。
格式如下:
https://github.com/InCerryGit/.NET-Weekly
相信大家在开发中经常会遇到一些性能问题,苦于没有有效的工具去发现性能瓶颈,或者是发现瓶颈以后不知道该如何优化。之前一直有读者朋友询问有没有技术交流群,但是由于各种原因一直都没创建,现在很高兴的在这里宣布,我创建了一个专门交流.NET性能优化经验的群组,主题包括但不限于:
希望能有更多志同道合朋友加入,分享一些工作中遇到的.NET性能问题和宝贵的性能分析优化经验。目前一群已满,现在开放二群。
如果提示已经达到200人,可以加我微信,我拉你进群: lishi-wk
另外也创建了QQ群,群号: 687779078,欢迎大家加入。
感谢大家对我公众号的支持与陪伴!为庆祝公众号一周年,抽奖送出一些书籍,请大家关注公众号后续推文!