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

周报 ,NET · 浏览次数 : 732

小编点评

# .NET Performance优化交流群 **关注我们:** * 在开发中经常会遇到一些性能问题 * 苦于没有有效的工具去发现性能瓶颈 * 或发现瓶颈以后不知道该如何优化 **我们提供:** * 技术交流群 * 主题包括:如何找到.NET性能瓶颈,如使用APM、dotnet tools等工具 * .NET框架底层原理的实现,如垃圾回收器、JIT等等如何编写高性能的.NET代码 *哪些地方存在性能陷阱希望能有更多志同道合朋友加入,分享一些工作中遇到的.NET性能问题和宝贵的性能分析优化经验 **加入我们:** * 请加入 .NET Performance优化交流群,主题如下:如何找到.NET性能瓶颈,如使用APM、dotnet tools等工具 * 请加入 QQ群,群号: 687779078 * 请加入我们微信公众号私信

正文

国内文章

探索 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#:结构中的这个东西

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 可执行文件的大小?

image-20230403082904055

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

image-20230403083107530


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

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

image-20230403194943682

image-20230403195117149

深入探索

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

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

版权声明

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

国内文章 探索 SK 示例 -- GitHub 存储库中的机器人 https://www.cnblogs.com/shanyou/p/17280627.html 微软 3月22日 一篇文章“Semantic-kernel 嵌入和记忆:使用聊天UI探索GitHub Repos”[1] ,文章中进行了展

.NET周报 【4月第2期 2023-04-08】

国内文章 LRU缓存替换策略及C#实现 https://www.cnblogs.com/eventhorizon/p/17290125.html 这篇文章讲述了缓存替换策略,特别是LRU算法。LRU算法基于这样一个假设:如果数据最近被访问过,那么将来被访问的几率也更高。通常我们会用双向链表来实现这个

.NET周报 【4月第3期 2023-04-15】

国内文章 Semantic Kernel 入门系列:📅 Planner 规划器 https://www.cnblogs.com/xbotter/p/semantic_kernel_introduction_planner.html 本文介绍了Semantic Kernel的一个核心能力,即实现目标

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

国内文章 2023成都.NET线下技术沙龙圆满结束 https://www.cnblogs.com/edisonchou/p/2023_chengdu_dotnet_club_activity_review.html 2023年4月15日周六,由MASA技术团队和成都.NET俱乐部共同主办的2023

.NET周报 【4月第5期 2023-04-30】

国内文章 基于 Github 平台的 .NET 开源项目模板. 嘎嘎实用! https://www.cnblogs.com/NMSLanX/p/17326728.html 大家好,为了使开源项目的维护和管理更方便一些,出于个人需求写了一款开源项目的模板,该模板基于 Github 平台,并使用 .NE

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

由于微信公众号排版问题,建议大家在PC端浏览。 国内文章 C# 很少人知道的科技 https://blog.lindexi.com/post/C-%E5%BE%88%E5%B0%91%E4%BA%BA%E7%9F%A5%E9%81%93%E7%9A%84%E7%A7%91%E6%8A%80.html

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

国内文章 .NET微服务系统迁移至.NET6.0的故事 https://www.cnblogs.com/InCerry/p/microservice-migration-net-6.html 本次迁移涉及的是公司内部一个业务子系统,该系统是一个多样化的应用,支撑着公司的多个业务方向。目前,该系统由4

.NET周报 【3月第4期 2023-03-24】

国内文章 .NET应用系统的国际化-多语言翻译服务 https://www.cnblogs.com/tianqing/p/17232559.html 本文重点介绍了多语言翻译服务的设计和实现。文章描述了如何通过多语言翻译服务,将临时存储在数据库中的多语言词条,按支持的语言翻译成多语言词条。作者设计了

.NET周报 【5月第4期 2023-05-27】

## 国内文章 ### C#使用词嵌入向量与向量数据库为大语言模型(LLM)赋能长期记忆实现私域问答机器人落地之openai接口平替 https://www.cnblogs.com/gmmy/p/17430613.html 在上一篇[文章](https://www.cnblogs.com/gmmy/

.NET周报 【6月第4期 2023-06-25】

## 国内文章 ### 如何在long-running task中调用async方法 https://www.cnblogs.com/eventhorizon/p/17497359.html long-running task 是指那些长时间运行的任务,比如在一个 while True 中执行耗时较