.NET周报 【4月第5期 2023-04-30】
阅读原文时间:2023年07月15日阅读:4

基于 Github 平台的 .NET 开源项目模板. 嘎嘎实用!

https://www.cnblogs.com/NMSLanX/p/17326728.html

大家好,为了使开源项目的维护和管理更方便一些,出于个人需求写了一款开源项目的模板,该模板基于 Github 平台,并使用 .NET 来实现管道功能.

在接受过实战检验后, 于今天开源, 项目地址:https://github.com/night-moon-studio/Template

.NET开源分布式锁DistributedLock

https://www.cnblogs.com/Z7TS/p/17359113.html

本文介绍了.NET开源分布式锁DistributedLock项目,讲述了线程锁和分布式锁的区别,Redis分布式锁的实现原理,RedLock算法的加锁过程,以及DistributedLock项目的简介和源码分析。本文使用了一些代码示例和图片来说明分布式锁的概念和用法。本文可以帮助读者了解.NET中如何使用Redis实现分布式锁的功能。

Sementic Kernel 案例之网梯科技在线教育

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

2023年4月22日北京网梯科技发展有限公司研发总监马鸿图分享了他本人对 AI 应用于教育的看法,以及如何将 AI 应用于在线教育,并向大家展示了基于 ChatGPT 的智能教学应用。视频参见 B站【将 ChatGPT 与 AI 应用于在线教育产品,实现智能化教学|开源云原生开发者日 2023】在AI2.0 :将ChatGPT和AI技术更深层次“融入”教学场景的分享部分给大家分享了一个Sementic Kernel的案例,当前Semantic Kernel 主要是使用C# 开发,因此网梯科技也拥抱了.NET 7 来实施AI2.0的落地。

为HttpClient开启HTTP/2

https://www.cnblogs.com/chenyishi/p/17361557.html

本文介绍了.NET Core中使用HttpClient启用HTTP/2和HTTP/3的方法和优势。文章分别说明了如何设置DefaultRequestVersion和DefaultVersionPolicy选项,如何在HttpRequestMessage实例上设置Version和VersionPolicy属性,以及如何在SocketsHttpHandler类上开启EnableMultipleHttp2Connections属性。文章还提到了.NET 6中HTTP/3的预览功能。文章的内容涉及网络编程、性能优化和新技术的应用。

C# 手写识别方案整理

https://www.cnblogs.com/kybs0/p/17361589.html

本文介绍了如何在.NET Core中使用书写识别的方案。文章首先给出了官网的案例,并指出了输出准确度不高的问题。然后,文章结合作者的开发经验,提供了一个书写识别的代码示例,并说明了需要引用的命名空间和DLL文件。文章最后给出了一个参考链接,介绍了C# vs2012中如何实现手写识别。文章的内容涉及.NET Core、HttpClient、书写识别等技术主题。

【Dotnet 工具箱】JIEJIE.NET - 强大的 .NET 代码混淆工具

https://www.cnblogs.com/dotnet-box/p/17360983.html

IEJIE.NET 是一个使用 C# 开发的开源 .NET 代码加密工具。很多 .NET 开发人员担心他们的软件被破解,版权受到侵犯,所以他们使用一些工具来混淆 IL 代码。比如 PreEmptive dotfuscator, 但有些场景的需求,是这些工具不能满足的。所以作者写了 JieJie.NET,它可以深度加密.NET程序集,帮助大家保护版权。重要的是,这个工具是开源的。

记一次 Windows10 内存压缩模块 崩溃分析

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

在给各位朋友免费分析 .NET程序 各种故障的同时,往往也会收到各种其他类型的dump,比如:Windows 崩溃,C++ 崩溃,Mono 崩溃,真的是啥都有,由于基础知识的相对缺乏,分析起来并不是那么的顺利,今天就聊一个 Windows 崩溃的内核dump 吧,这个 dump 是前几天有位朋友给到我的,让我帮忙看一下,有了dump之后上 windbg 分析。

自学C#,要懂得善用MSDN

https://www.cnblogs.com/chingho/p/17349305.html

很多初学者学习编程,都会通过看别人写的教程、或者录制的视频,来学习。

这是一个非常好的途径,因为这个是非常高效的。

但是这样,存在两个问题:

1、教程不够全面:任何再好的教程,都无法囊括所有的知识点,更多是讲解部分精髓而已;

2、无法掌握学习方法:很多教程都是教你如何使用,但是没有教你如何学习,如何掌握自学方法。

针对以上问题,我首推大家要懂得善用MSDN。

.NET Web入门到高级路线(新版本)

https://www.cnblogs.com/hejiale010426/p/17349394.html

本文总结了学习.NET Web开发技术的从入门到高级的路线图,包括简单的C#和.NET基础知识,常用的ORM、关系型数据库中间件等等方面。

C# 异步进阶— 自定义 TaskSchedule(三)

https://www.cnblogs.com/aoximin/p/17324471.html

本文介绍了如何使用TaskThreadPool类实现一个自定义的线程池,用于控制task的调度和执行。文章首先创建了一个线程安全的队列,用于存储task,并使用Semaphore实现了等待和通知的机制。然后创建了指定数量的线程,每个线程从队列中取出task并执行。最后,文章提供了一个Dispose方法,用于释放资源和停止线程。文章还简要介绍了Semaphore的作用和原理。

.NET使用nacos配置,手把手教你分布式配置中心

https://www.cnblogs.com/raok/p/17348508.html

Nacos是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。

这么优秀的分布式服务管理平台,怎么能不接入呢?

nacos的安装和使用这里就不细说了,可以参考网上教程和官方文档。https://nacos.io/zh-cn/docs/quick-start.html

我们以创建一个webapi项目为例手把手教你使用Nacos进行配置管理和服务注册

【英文】microsoft/SqlScriptDOM:ScriptDOM/SqlDOM 是一个用于解析 T-SQL 语句和与其抽象语法树交互的 .NET 库

https://github.com/microsoft/SqlScriptDOM

【英文】发布 11.0.0 预览 7 · AvaloniaUI/Avalonia

https://github.com/AvaloniaUI/Avalonia/releases/tag/11.0.0-preview7

【英文】ReSharper and Rider 2023.1.1 - 错误修复在这里 | .NET 工具博客

https://blog.jetbrains.com/dotnet/2023/04/27/resharper-and-rider-2023-1-1-bug-fixes/

【英文】.NET Framework 2023 年 4 月累积更新预览更新 - .NET 博客

https://devblogs.microsoft.com/dotnet/dotnet-framework-april-2023-cumulative-update-preview-updates/

【英文】发布 v7.0.4 · npgsql/npgsql

https://github.com/npgsql/npgsql/releases/tag/v7.0.4

加入 .NET 团队参加 Microsoft Build 2023!- .NET 博客

https://devblogs.microsoft.com/dotnet/microsoft-build-2023-and-dotnet/

【日文】在外部文件中定义 Semantic Kernel 的技能并加载

https://zenn.dev/microsoft/articles/semantic-kernel-2

【日文】在 C# 上尝试使用 Azure OpenAI 服务的 Semantic Kernel

https://zenn.dev/microsoft/articles/semantic-kernel-1

【日文】通过代码获取主题的实际颜色等(C# / WinUI 3)

https://zenn.dev/shinta0806/articles/theme-property

【英文】探索 Visual Studio 中的 JavaScript 和 TypeScript 开发 - Visual Studio 博客

https://devblogs.microsoft.com/visualstudio/exploring-javascript-and-typescript-development-in-visual-studio/

【英文】Rider 2023.1 中的 HTML、XML、JSON 和 JWT 可视化工具 | .NET 工具博客

https://blog.jetbrains.com/dotnet/2023/04/27/html-xml-json-and-jwt-visualizers-in-rider-2023-1/

【英文】使用 JetBrains Rider 进行远程开发 | .NET 工具博客

https://blog.jetbrains.com/ja/dotnet/2023/04/10/remote-development-with-jetbrains-rider/

【英文】如何用一个简单的控制台消息保存我的生产数据库

https://dev.to/vanenshi/how-i-saved-my-production-database-with-one-simple-console-message-4fjm

【英文】为 Supabase 创建一个 Dapr 可插入组件

https://dev.to/diagrid/creating-a-dapr-pluggable-component-for-supabase-32kj

【英文】ASP.NET Core Minimal APIs 简介 | .NET 工具博客

https://blog.jetbrains.com/dotnet/2023/04/25/introduction-to-asp-net-core-minimal-apis/

【英文】使用 Elastic APM / RUM agent 将 .Net 应用程序跟踪发送到 Elasticsearch

https://medium.zenika.com/send-net-application-traces-to-elasticsearch-using-elastic-apm-rum-agent-d7ff111b1ef

【英文】可观察性 .NET & OpenTelemetry Collector

https://dev.to/kim-ch/observability-net-opentelemetry-collector-25g1

【日文】.NET MAUI中Ctrl+Enter等键盘事件处理的困难 - Qiita

https://qiita.com/selfstudy/items/d0f9520d3b40f8946d36

【英文】将字符串转换为 .NET 对象 - IParsable 和 ISpanParsable

https://csharp.christiannagel.com/2023/04/14/iparsable/

【英文】使用 Coyote 为 C# 程序提供工业级可控并发测试 - Microsoft Research

https://www.microsoft.com/en-us/research/publication/industrial-strength-controlled-concurrency-testing-for-c-programs-with-coyote/

【日文】让我们学习 .NET - Azure - YouTube

https://www.youtube.com/live/g5KIYx6p8Ek

【英文】开始在 .NET 中使用 OpenAI - .NET 博客

https://devblogs.microsoft.com/dotnet/getting-started-azure-openai-dotnet/

【日文】Windows App SDK 1.3 中的 System Backdrop 设置和 AppWindow 使用变得更简单 - しばやん雑記

https://blog.shibayan.jp/entry/20230425/1682412792

【英文】你知道你的 API 发生了什么吗?使用 AppMetrics 收集 ASP.NET Core API 指标。

https://medium.com/@milwojarski/do-you-know-what-is-going-on-with-your-api-collect-asp-net-core-api-metrics-using-appmetrics-f5efa2cf050d

【英文】使用 C# 示例的 Redis 键空间通知

https://dev.to/sayganov/redis-keyspace-notifications-with-a-c-example-2ahp

【日文】WPF 与 WinUI 3 功能对比表

https://zenn.dev/shinta0806/articles/wpf-vs-winui3

【日文】关于 HTTP/2 和 gRPC 的常见误解。- ねののお庭。

https://blog.neno.dev/entry/2023/04/22/190510

【日文】与 HttpClientFactory 成为朋友:一个轻松升级 .NET 中的 HttpClient 游戏的指南

https://medium.com/@longeardev/making-friends-with-httpclientfactory-a-chill-guide-to-upgrading-your-httpclient-game-in-net-f4cef3f72a63

【日文】[C#] 探讨 EnumerateFiles() 的异常处理的最佳方法 - Qiita

https://qiita.com/hqf00342/items/3707ab2bf5f480ec41f8

【英文】使用 Vault .NET 客户端库探索 HashiCorp Vault

https://dev.to/berviantoleo/exploring-hashicorp-vault-with-vault-net-client-library-194n

由于笔者没有那么多时间对国内的一些文章进行整理,欢迎大家为《.NET周报-国内文章》板块进行贡献,需要推广自己的文章或者框架、开源项目可以下方的项目地址提交Issue或者在我的微信公众号私信。

格式如下:

  • 10~50字左右的标题
  • 对应文章或项目网址访问链接
  • 200字以内的简介,如果太长会影响阅读体验

https://github.com/InCerryGit/.NET-Weekly

相信大家在开发中经常会遇到一些性能问题,苦于没有有效的工具去发现性能瓶颈,或者是发现瓶颈以后不知道该如何优化。之前一直有读者朋友询问有没有技术交流群,但是由于各种原因一直都没创建,现在很高兴的在这里宣布,我创建了一个专门交流.NET性能优化经验的群组,主题包括但不限于:

  • 如何找到.NET性能瓶颈,如使用APM、dotnet tools等工具
  • .NET框架底层原理的实现,如垃圾回收器、JIT等等
  • 如何编写高性能的.NET代码,哪些地方存在性能陷阱

希望能有更多志同道合朋友加入,分享一些工作中遇到的.NET性能问题和宝贵的性能分析优化经验。目前一群已满,现在开放二群。

如果提示已经达到200人,可以加我微信,我拉你进群: ls1075

另外也创建了QQ群,群号: 687779078,欢迎大家加入。