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

2023-06-28,

国内文章

探索 SK 示例 -- GitHub 存储库中的机器人

https://www.cnblogs.com/shanyou/p/17280627.html

微软 3月22日 一篇文章“Semantic-kernel 嵌入和记忆:使用聊天UI探索GitHub Repos”[1] ,文章中进行了展示了嵌入,该文章解释了他们如何帮助开发人员提出有关GitHub存储库的问题或使用自然语言查询探索GitHub存储库。与嵌入一起,这是在SK存储器[2](嵌入集合)的帮助下完成的,这有助于为提示(或SK世界中的ASK)提供更广泛的上下文。

.NetCore中使用分布式事务DTM的二阶段消息

https://www.cnblogs.com/xwc1996/p/17252311.html

二阶段消息是DTM新提出的,可以完美代替现有的事务消息和本地消息表架构。无论从复杂度、性能、便利性还是代码量都是完胜现有的方案。

相比现有的消息架构借助于各种消息中间件比如RocketMQ等,DTM自己实现了无需额外的学习成本。它能够保证本地事务的提交和全局事务提交是“原子的”,适合解决不需要回滚的分布式事务场景。

微软博客上几篇 Semantic-kernel (SK)文章

https://www.cnblogs.com/shanyou/p/17275581.html

自从最近微软开源Semantic-kernel (SK) 来帮助开发人员在其应用程序中使用AI大型语言模型(LLM)以来,Microsoft一直在忙于改进它,发布了有关如何使用它的新指南并发布了5篇文章介绍他的功能。

开发人员可以使用Semantic-kernel (SK) 创建自然语言提示、生成响应、提取信息、调用其他提示或执行可以用文本表示的其他任务。微软在3月17日开源Semantic-kernel (SK)时,提示是项目描述的关键部分:“Semantic-kernel (SK)是一个轻量级SDK,可让您将C#和Python等传统编程语言与最新的大型语言模型(LLM)AI'提示'混合在一起,具有提示模板,链接和规划功能。

记一次 .NET 某传感器采集系统 线程爆高分析

https://www.cnblogs.com/huangxincheng/p/17272068.html

前段时间有位朋友微信找到我,说他的程序使用 hsl 库之后,采集 plc 时内存溢出,让我帮忙看一下怎么回事,哈哈,貌似是分析之旅中的第二次和 hsl 打交道,既然找到我,那就上 windbg 说话吧。

.Net 7 轻松上手Dapr之服务调用

https://www.cnblogs.com/Mamba8-24/p/17268674.html

对于Dapr ,在项目中也有用过一段时间,优缺点并存,但是瑕不掩瑜,目前随着版本的迭代和第三方团队对它的支持也使得我们用得更加得心应手,所以借此也回顾一下Dapr的相关知识以及分享一下项目中用到的第三方库MASA.Framework 对Dapr的完美支持。然后本文只是个人学习与分享,不喜勿喷,谢谢!

基于Admin.NET框架的前端的一些改进和代码生成处理(2)

https://www.cnblogs.com/wuhuacong/p/17267815.html

在上篇随笔《基于Admin.NET框架的前端的一些改进和代码生成处理(1)》中大致介绍了一些关于对Admin.NET框架的前端的改造工作,主要目的就是希望能够增加前端代码的简洁性和可读性,以及利用代码生成工具来快速生成相关的代码,从而减少开发过程中的繁琐问题。本篇随笔继续探讨一下,对其中一些模块功能进行一些修改调整,涉及前后端的一起修改调整。

P/Invoke之C#调用动态链接库DLL

https://www.cnblogs.com/baibaomen-org/p/17267694.html

这篇文章介绍了如何在C#中通过P/Invoke调用DLL动态链库的流程。文章中提到,P/Invoke全称为Platform Invoke (平台调用),其实际上就是一种函数调用机制,通过 P/Invoke就可以实现调用非托管Dll中的函数。文章还介绍了如何创建一个DLL以及如何通过C#去调用。

一次对pool的误用导致的.net频繁gc的诊断分析

https://www.cnblogs.com/dotnet-diagnostic/p/17258628.html

有位朋友找我,希望我能帮看一下他的一个service。从他的描述看,并没有资源方面的泄漏,程序目前也能正常工作。他是在用dotnet-counters moniter时发现gc2、也就是full gc触发的比较频繁,频率超过了他自己的预期,于是他心里不踏实,所以想找我看一下。

SHA-256 简介及 C# 和 js 实现【加密知多少系列】

https://www.cnblogs.com/czzj/p/JMZDS_SHA256.html

记一次 .NET 某企业 ERP网站系统 崩溃分析

https://www.cnblogs.com/huangxincheng/p/17260332.html

前段时间收到了一个朋友的求助,说他的ERP网站系统会出现偶发性崩溃,找了好久也没找到是什么原因,让我帮忙看下,其实崩溃好说,用 procdump 自动抓一个就好,拿到 dump 之后,接下来就是一顿分析了。

主题

【英文】Visual Studio Code 2023 年 3 月

https://code.visualstudio.com/updates/v1_77

【英文】发布 2.6.104 StackExchange/StackExchange.Redis

https://github.com/StackExchange/StackExchange.Redis/releases/tag/2.6.104

【英文】Rider 2023.1 Beta 已发布 | .NET 工具博客

https://blog.jetbrains.com/dotnet/2023/03/30/rider-2023-1-beta-is-out/

【英文】ReSharper 2023.1 Beta | .NET 工具博客

https://blog.jetbrains.com/dotnet/2023/03/30/resharper-2023-1-beta/

【英文】发现 .NET 7 SDK 容器 - 支持身份验证和跨体系结构构建 - .NET 博客

https://devblogs.microsoft.com/dotnet/updates-to-container-support-in-the-dotnet-sdk/

文章、幻灯片等

【日文】C# 正则表达式速查表

https://zenn.dev/boukichi/articles/d4ab6a06690868

【英文】使用 ILookupProtector 和 ILookupProtectorKeyRing 接口在 ASP.NET Core Identity 中加密和解密用户数据

https://dev.to/mohammedahmed/encrypt-and-decrypt-users-data-in-aspnet-core-identity-using-the-ilookupprotector-and-ilookupprotectorkeyring-interfaces-2gep

【日文】关于字符串搜索算法-Qiita

https://qiita.com/takayoshi1968/items/97f232cb7ab50b48131a

【英文】Sail Sharp,优化和保护 Kubernetes .NET 容器的 8 个技巧

https://medium.com/@mabenoit/sail-sharp-8-tips-to-optimize-and-secure-your-net-containers-for-kubernetes-c68ba253844a

【日文】短时傅立叶变换及其逆变换—Qiita

https://qiita.com/takayoshi1968/items/636372d464d02699ba4f

【日文】更新本地开发证书-Qiita

https://qiita.com/alicial/items/f7ee1224037dcd10c932

【英文】即使在代理后面,如何在 ASP.NET Core 中获取客户端 IP

https://blog.elmah.io/how-to-get-the-client-ip-in-asp-net-core-even-behind-a-proxy/

【英文】ChatGPT + .NET Slackbot

https://blogg.blank.no/chatgpt-net-slackbot-cd9ec5664f23

【英文】Kubernetes 中的 Kerberos

https://dev.to/da1rren/escaping-kerberos-with-some-simple-kubernetes-tricks-3hal

【英文】ReSharper IL 查看器和低版本 C# | .NET 工具博客

https://blog.jetbrains.com/dotnet/2023/03/30/resharper-il-viewer-and-low-level-csharp/

【英文】C# 命令行对话与ChatGPT API-Qiita

https://qiita.com/fsdg-adachi_h/items/2675b596191e4fa2d0e3

使用 C# 和 ChatGPT API 在命令行中进行对话(与多人聊天)- Qiita
C# 中的 ChatGPT API 命令行对话(特征提取)- Qiita
C# 中的 ChatGPT API 命令行对话(设置个性)- Qiita

【日文】C#:结构中的这个东西

https://zenn.dev/ruccho/articles/0042b9a9eeb6ed

【英文】简化安全性:ASP.NET Core 中基于资源的授权

https://medium.com/@niteshsinghal85/simplifying-security-resource-based-authorization-in-asp-net-core-3f70486059d5

【日文】C#:在运行时将 Lambda 表达式传递给 LINQ

https://dev.to/kenakamu/c-pass-lambda-expression-to-where-linq-at-runtime-1ma4

【日文】使用 WebView2 直接从打印机打印 HTML 表单

https://zenn.dev/junnuj/articles/7fea619ba7e237

【英文】在 .NET 中使用开放式遥测收集器进行与供应商无关的遥测

https://code-maze.com/vendor-agnostic-telemetry-opentelemetry-collector-dotnet/

【英文】攻击者开始使用恶意代码 NuGet 包将 .NET 开发人员作为目标 | JFrog

https://jfrog.com/blog/attackers-are-starting-to-target-net-developers-with-malicious-code-nuget-packages/

【英文】了解 .NET 生态系统:.NET 到 .NET 7 的演变

https://andrewlock.net/understanding-the-dotnet-ecosystem-the-evolution-of-dotnet-into-dotnet-7/

【日文】我试图通过使用 NDepend-Qiita 进行重构来可视化技术债务的偿还

https://qiita.com/JHashimoto/items/1cde008689c0446be780

【英文】EF Core 7:Json 列

https://dev.to/karenpayneoregon/ef-core-7-json-columns-2k1f

【英文】Rudderstack 使用 .NET Core 7 Web API 的介绍和实现

https://medium.com/@jaydeepvpatil225/rudderstack-introduction-and-implementation-using-net-core-7-web-api-d32fc486589a

【日文】Entity Framework Core 中的顺序 GUID 可能不是顺序的

https://dev.to/connerphillis/sequential-guids-in-entity-framework-core-might-not-be-sequential-3408

【日文】函数指针 | UFCPP

https://ufcpp.net/study/csharp/interop/functionpointer/

【英文】宣布 VS Code 的 GitHub Actions 扩展 | GitHub 博客

https://github.blog/2023-03-28-announcing-the-github-actions-extension-for-vs-code/

【日文】[.NET] Selenium 自带正版 WebDriver Manager | @jsakamoto

https://devadjust.exblog.jp/29530356/

【日文】C#、HTTP/2 和 gRPC

https://speakerdeck.com/nenonaninu/2-to-grpc

库、存储库、工具等

MichalStrehovsky/sizoscope:用于分析本机 AOT 二进制文件大小的 .NET 工具。

https://github.com/MichalStrehovsky/sizoscope

https://twitter.com/mstrehovsky/status/1641307198415585280?s=12

我制作了一个新工具!可以查看是什么影响了您的 .NET Native AOT 可执行文件的大小?

microsoft/node-api-dotnet:.Net 的 Node-API 的实现。它可用于在 C# 和其他 .Net 语言中为实现 Node-API 的 JavaScript 引擎或框架创建 Node.JS 插件

https://github.com/microsoft/node-api-dotnet

drasticactions/Drastic.Flipper:.NET iOS 应用程序的 Flipper 绑定

https://github.com/drasticactions/Drastic.Flipper

推文

你知道吗?VisualStudio允许你一次性创建多个文件。

https://twitter.com/hassanrezkhabib/status/1640689844275003393?s=12


我创建一个AI Windbg插件,可以让AI来分析和解决死锁问题。

https://twitter.com/KooKiz/status/1641565024765214720

深入探索

使用 TryStartNoGCRegion 和/或 GC.Collect 时出现死锁 · Issue #84096 · dotnet/runtime

https://github.com/dotnet/runtime/issues/84096

版权声明

国内板块由 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周报 【4月第1期 2023-04-02】的相关教程结束。

《.NET周报 【4月第1期 2023-04-02】.doc》

下载本文的Word格式文档,以方便收藏与打印。