https://www.cnblogs.com/huangxincheng/p/17214154.html
前段时间有位朋友在微信上找到我,说他的程序会出现一些偶发卡死的情况,让我帮忙看下是怎么回事,刚好朋友也抓到了dump,就让朋友把 dump 丢给我,接下来用 windbg 探究下到底咋回事。
https://www.cnblogs.com/InCerry/archive/2023/03/14/the-evolution-of-delegate-performance-in-net-c8f23572b8b1.html
.NET中的委托是一项重要功能,可以实现间接方法调用和函数式编程。本文介绍委托在以前的.NET中存在性能问题和.NET7.0 .NET8.0版本如何将这一问题彻底解决。
https://www.cnblogs.com/shanyou/archive/2023/03/15/17220483.html
.NET 团队在2023年3月14日发布了.NET 8预览版2,博客文章地址:https://devblogs.microsoft.com/dotnet/announcing-dotnet-8-preview-2/, 亮点是了对Blazor的一些改进。
https://www.cnblogs.com/shanyou/archive/2023/03/16/17221052.html
纵观神州大地,漫游中华互联网,我看到很多人关注为什么你应该开始学习JavaScript做前端,而对blazor这样的面向未来的框架有种莫名的瞧不起,或者为什么你应该学习Python作为你的第一门编程语言,恕不知有多少公司业务是用Python开发的,Python更多是粘合剂,作为胶水语言来使用。我用C# 工作了 20多年,我也一直把它当作第一编程语言,几乎尝试了任何东西:桌面、物联网、移动、Web、云原生- 以及 C# 和 .NET 完美契合的所有地方,特别是当下Chatgpt 还有AI的辅助编程时代,你应该考虑从它开始你的开发人员之路。
https://mp.weixin.qq.com/s/xdZLmceF6vVfaE1s8wm_tQ
昨天训练营有朋友让我推荐学习 .NET高级调试 的参考书,这里整理了我个人推荐的 10 本书:这篇文章推荐了10本学习.NET高级调试的书籍,分别是:这篇文章推荐了10本学习.NET高级调试的书籍,分别是:
.NET高级调试
Windows 编程调试技术内幕
软件调试 - 第二卷 (上下册)
Windows 高级调试
深入解析 Windows 操作系统
.NET 和 Windows 应用程序调试
C++ 反汇编与逆向分析技术揭秘
.NET 内存管理宝典
.NET Core 底层入门
格蠹汇编
https://mp.weixin.qq.com/s/AnfR5877KomGzjWgljdXIg
在 TAP 出现之前,我们可以通过 Thread 来完成一些线程操作,从而实现多线程和异步操作。在 TAP 出现之后,有时候为了更高精度的控制线程,我们还是会使用到 Thread 。文本讲介绍一种错误的使用方式,作为读者的一个参考。
https://mp.weixin.qq.com/s/gufs53wW128EMyS02Q4B3g
ImageSharp是对.NET Core平台扩展的一个图像处理方案,以往网上的案例多以生成文字及画出简单图形、验证码等方式进行探讨和实践。分享一下所在公司项目的实际应用案例,导出微信二维码图片,圆形头像等等。
https://mp.weixin.qq.com/s/axiaEz2wGXq40gTDMPb14Q
这篇文章是关于Blazor在IoT领域的前端实践的主题分享。文章分为两个部分,第一部分介绍了为什么要在IoT项目中使用Blazor技术,Blazor给IoT带来了什么。第二部分以一个IoT项目举例,使用Blazor和MAUI技术的落地具体内容,最后还有在开发和调试过程中的经验分享。
https://mp.weixin.qq.com/s/3zn_64o-bLfEkJOByzu2VA
这篇文章是一篇关于MasaFramework的入门教程,主要介绍了MasaFramework的基本概念和项目结构。文章首先介绍了MasaFramework是一个基于.Net6.0的后端框架,可以被用于开发Web应用程序、WPF项目、控制台项目。接着,文章介绍了MasaFramework提供了很多功能的包,很强大,对于Dapr的支持非常好。然后,文章介绍了如何使用MasaFramework,包括安装MasaFramework项目模板和创建项目。最后,文章介绍了MasaFramework的项目结构,包括src/ApiGateways,src/Contracts,src/Services,src/Web四层,以及mfDemo.Shared,mfDemo.Server,mfDemo.WebAssembly三层项目架构。总的来说,这篇文章是一篇非常详细的MasaFramework入门教程,适合初学者。
https://mp.weixin.qq.com/s/1AiEHVukFZF15pth-FJQ
本文是 .NET Task 揭秘 系列博客的第三篇,主要介绍了 async 与 AsyncMethodBuilder。上文我们学习了 await 这个语法糖背后的实现,了解了 await 这个关键词是如何去等待 Task 的完成并获取 Task 执行结果。并且我们还实现了一个简单的 awaitable 类型,它可以让我们自定义 await 的行为。
AsyncMethodBuilder 是状态机的重要组成部分。如果在一个方法中使用了 await,那么这个方法就必须添加 async 修饰符。并且这个方法的返回类型通常是 Task 或者 其它 runtime 里定义的 awaitable 类型。
https://mp.weixin.qq.com/s/jlpdeKNKfXwe2nGk9Ljkbg
这篇文章是一篇技术文章,主要讲述了如何在ASP.NET Core Web API中实现接口限流的功能。文章中提到了实现接口限流的需求,如何实现接口限流,以及如何使用jMeter进行压力测试。文章中提供了相关的代码和截图,可以帮助读者更好地理解文章的内容。
https://devblogs.microsoft.com/dotnet/announcing-dotnet-8-preview-2/
.NET 8 Preview 2 已经发布。
此版本添加了扩展 System.ComponentModel.DataAnnotations 的属性,并支持反射中的函数指针。
https://devblogs.microsoft.com/dotnet/announcing-ef8-preview-2/
Entity Framework Core 8 Preview 2 已经发布。
本文介绍了 SQLite 中的 JSON 列支持和此版本中提供的 SQL Server/Azure SQL 数据库中的 HierarchyId 支持。
https://devblogs.microsoft.com/dotnet/asp-net-core-updates-in-dotnet-8-preview-2/
.NET 8 Preview 8 中对 ASP.NET Core 的更新。
对 Blazor 的 QuickGrid 支持
改进了 Blazor WebAssembly 中 JIT (Jiterpreter) 的性能
检测多个 [FromBody]
的分析器
用于更有弹性集成的 ProblemDetails
的新 API
ObjectPool
上的 IResettable
接口
改进的命名管道性能
https://devblogs.microsoft.com/visualstudio/visual-studio-2022-v17-6-preview-2-is-now-available/
Visual Studio 2022 版本 17.6 Preview 2 已经发布。
提高你的生产力
Git 阶段并在构建期间提交
改进的合并对话框
断点组
C++ 仪器分析
WSL 上 .NET 的 Profiler Live Graphs
创建 C++ 成员函数
简化的游戏开发
虚幻引擎代码分析
Tim Jones 的 HLSL 工具扩展
.NET 移动开发
安卓清单编辑器
企业管理
从您的 Intranet 托管和部署 Visual Studio 布局
安装程序中可用产品的有限曝光
https://devblogs.microsoft.com/semantic-kernel/hello-world/
语义内核发布。
语义内核是一个轻量级 SDK,用于将来自大型语言模型 (LLM)(例如 OpenAI 和 Azure OpenAI 服务)的 AI 提示整合到您的应用程序中。现在支持 C#,Python 处于预览支持状态。
microsoft/semantic-kernel:将尖端的 LLM 技术快速轻松地集成到您的应用程序中
https://github.com/neuecc/MessagePack-CSharp/releases/tag/v2.5.108
MessagePack-CSharp v2.5.108 已经发布。
自 v2.4.59 以来的更改包括添加可为 null 的注释、放弃对 .NET 5 的支持、前滚生成器以及各种其他修复和改进。
发布 v2.5.94 neuecc/MessagePack-CSharp GitHub
发布 v2.5.103 neuecc/MessagePack-CSharp GitHub
https://devblogs.microsoft.com/dotnet/how-async-await-really-works/
一篇解释 C# 中 async/await 工作原理的文章。
它描述了从 APM 和基于事件的异步模式到基于任务、任务和 ValueTask 的流程,C# 中的编译时代码扩展,并详细解释了它的工作原理。
https://github.com/grpc/grpc-dotnet/releases/tag/v2.52.0
grpc-dotnet (Grpc.Net) v2.52 已经发布。
此版本现在针对 .NET 6 的 dotnet-grpc 工具,并包括各种小错误修复和改进。
发布版本 v2.52.0-pre1 grpc/grpc-dotnet
https://github.com/microsoft/WindowsAppSDK/releases/tag/v1.2.5
Windows App SDK 1.2.5 (1.2.230313.1) 发布。
此版本修复了 Composition 关闭期间的崩溃、动画即使在屏幕关闭时仍继续播放的问题,以及 WebView2 中鼠标和触摸输入失败的修复。
https://devblogs.microsoft.com/dotnet/march-2023-updates/
.NET 7.0.4 和.NET 6.0.15 已经发布。
此版本包含几个小错误修复和改进。
https://devblogs.microsoft.com/dotnet/announcing-polyglot-notebooks-harness-the-power-of-multilanguage-notebooks-in-visual-studio-code/
Polyglot Notebooks(以前称为 .NET Interactive Notebooks)现在作为 Visual Studio Code 的扩展在 Marketplace 上普遍可用。
https://zenn.dev/tomokusaba/articles/bb5cb32470ca8a
它介绍了 .NET 8 Preview 2 中添加的 System.ComponentModel.DataAnnotations 验证属性的功能。
https://zenn.dev/tomokusaba/articles/9fd92c1716ca30
如何在 Blazor WebAssembly 中实现输入验证。
https://medium.com/@tim.cadenbach/wearedotnet-d8ec96685c33
名为#WeAreDotnet 的社区门户。
WeAreDotnet(测试版)
https://medium.com/@no1.melman10/getting-started-with-eventstoredb-c-13411ec08713
说明如何使用事件溯源数据库 EventStoreDB。
EventStoreDB 本身也在 .NET (C#) 中实现。
EventStore/EventStore:为事件溯源优化的流数据库
https://codingwithcalvin.net/extending-visual-studio-codelens-functionality-part-ii/
关于如何在 Visual Studio 中扩展 CodeLens 的系列教程。本文介绍如何实现 CodeLens 回调。
https://ufcpp.net/blog/2023/3/string-order/
启用全球化不变模式时,处理字符串比较中的不变性和序数以及顺序中的性能等。
https://zenn.dev/nin_neko/articles/ecb16042f04c01
关于如何为 XCopy 部署创建一个最小的 WinUI 3 应用程序项目(一种通过复制文件而不安装来工作的形式)。
https://qiita.com/7shi/items/8eae6d909e1b82b35215
如何将 CESU-8(UTF-8 的变体)转换为 UTF-16。
https://blog.jetbrains.com/dotnet/2023/03/16/unity-dots-support-in-rider-2023-1/
引入 Rider 2023.1 中添加的 Unity DOTS 支持。
支持 DOTS 的模板和代码生成。
https://devblogs.microsoft.com/visualstudio/welcome-experience/
关于 Visual Studio 17.6 Preview 2 中引入的新欢迎页面。
引入欢迎页面,它取代了旧的启动窗口(您可以在其中选择现有解决方案、创建新项目等)并征求反馈。
https://dev.to/hbolajraf/c-search-ad-entry-by-objectsid-using-novell-directory-ldap-nuget-package-28il
如何使用 Novell.Directory.Ldap.NETStandard 包根据 ObjectSid 搜索 Active Directory。
https://dev.to/masanori_msl/aspnet-core-try-server-sent-events-5db2
如何在 ASP.NET Core 中实现服务器发送的事件。
https://dyte.io/blog/building-video-calling-app-using-wpf-dyte/
如何实现使用 Dyte 进行视频通话的 WPF 应用程序,Dyte 是一种处理实时视频和视频会议的服务。
https://qiita.com/rougemeilland/items/10f4d94c9343fd8eb708
关于在 .NET 中处理控制台缓冲区和窗口。它还涉及 Console.Clear 的行为。
https://devblogs.microsoft.com/engineering-at-microsoft/implementing-an-accessible-checkable-wpf-tree-view/
对于由 Accessibility Insights 团队修改的 WPF 中带有复选框的树视图实现。
https://andrewlock.net/working-with-git-in-jetbrains-rider/
JetBrains Rider中Git的各种操作介绍。
https://blog.jetbrains.com/dotnet/2023/03/14/static-interface-members-generic-attributes-auto-default-structs-using-csharp-11-in-rider-and-resharper/
在 JetBrains Rider 和 ReSharper 中引入了支持新功能的功能,例如接口中的静态抽象成员、通用属性和 C# 11 中结构的自动默认值。
https://devblogs.microsoft.com/visualstudio/improving-the-spell-checker/
在 Visual Studio 2022 17.6 Preview 2 中引入拼写检查改进。
它引入了改进的特定于编程语言的字典和排除字典的编码、更好的特殊情况检测以及拼写检查器的自定义。
https://qiita.com/karuakun/items/a6149a40d9c775a6665d
关于如何使用 PowerShell 获取从特定文件夹下的 .csproj 引用的库列表。
https://qiita.com/tat_tt/items/b9757cc940338c7deeab
从 C# 使用 Google 表格的说明和读取数据的示例。
https://zenn.dev/tessecraft_r/articles/1d3f83025e0830
一篇文章解释了我如何将 Azure Functions 的 .NET 实现从 v3 迁移到 v4。
https://zenn.dev/okazuki/articles/release-reactiveproperty-v910
ReactiveProperty v9.1 新特性介绍。它解释了命令的扩展方法和对“ReactivePropertiesValidator”的改进等要点。
https://www.c-sharpcorner.com/blogs/c-sharp-11-pattern-matching-on-span-for-constant-string
关于 ReadOnlySpan
可以使用列表模式匹配。
https://github.com/dfederm/ReferenceTrimmer
MSBuild 任务和 Roslyn Analyzer 可以轻松找到未使用的依赖项。
使用 ReferenceTrimmer 删除未使用的依赖项
https://github.com/Azure/data-api-builder
REST/GraphQL 网关服务器到 Azure 数据库(CosmosDB、MySQL、PostgreSQL、SQL 数据库)。
主要用于从 Azure Static Web Apps 访问数据库。
宣布使用数据 API 构建器为 Azure 静态 Web 应用程序建立数据库连接
Azure 上的 GraphQL:第 12 部分 - GraphQL 即服务
https://github.com/wilder-minds/MinimalApiDiscovery
允许您细分(分组)Minimal API 并自动注册它们的库。
用于大型 API 的最小 API 发现工具
https://github.com/jsakamoto/BlazingStory/
UI 组件目录 Blazor Storybook 的克隆。
https://twitter.com/jsakamoto/status/1635746624759795713
https://github.com/DamianEdwards/RazorSlices
在没有 ASP.NET Core MVC 或 Razor Pages 的情况下使用基于 Razor 的模板的库。
它主要用于 Minimal API 等用例。(不使用 ASP.NET Core MVC 但依赖于 ASP.NET Core 框架)
https://twitter.com/DamianEdwards/status/1635404036118827008
https://twitter.com/EgorBo/status/1636818556657516563
国内板块由 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性能瓶颈,如使用APM、dotnet tools等工具
.NET框架底层原理的实现,如垃圾回收器、JIT等等
如何编写高性能的.NET代码,哪些地方存在性能陷阱
希望能有更多志同道合朋友加入,分享一些工作中遇到的.NET性能问题和宝贵的性能分析优化经验。目前一群已满,现在开放二群。
如果提示已经达到200人,可以加我微信,我拉你进群: ls1075
另外也创建了QQ群,群号: 687779078,欢迎大家加入。