.NET周报 【4月第1期 2023-04-02】
国内文章
探索 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 中加密和解密用户数据
【日文】关于字符串搜索算法-Qiita
https://qiita.com/takayoshi1968/items/97f232cb7ab50b48131a
【英文】Sail Sharp,优化和保护 Kubernetes .NET 容器的 8 个技巧
【日文】短时傅立叶变换及其逆变换—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 中基于资源的授权
【日文】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
【英文】了解 .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 的介绍和实现
【日文】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,欢迎大家加入。