.NET周报 5月第2期 2023-05-14

Posted InCerry

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.NET周报 5月第2期 2023-05-14相关的知识,希望对你有一定的参考价值。

国内文章

XUnit数据共享与并行测试

https://www.cnblogs.com/podolski/p/17388602.html

在单元或者集成测试的过程中,需要测试的用例非常多,如果测试是一条一条过,那么需要花费不少的时间。从 V2 开始,默认情况下 XUnit 自动配置并行(参考资料),大大提升了测试速度。本文将对 ASP.NET CORE WEBAPI 程序进行集成测试,并探讨 XUnit 的数据共享与测试并行的方法。

在 ASP.NET Core Web API 中处理 Patch 请求

https://www.cnblogs.com/alby/p/Patch-in-ASP-NET-Core-web-API.html

在 ASP.NET Core Web API 中,由于 C# 是一种静态语言(dynamic 在此不表),当我们定义了一个类型用于接收 HTTP Patch 请求参数的时候,在 Action 中无法直接从实例中得知客户端提供了哪些参数。

记一次 某智能制造MES系统CPU 爆高分析

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

前段时间有位朋友找到我,说他 docker 中的web服务深夜cpu被打满,让我帮忙看一下,很多朋友问docker中怎么抓dump,我一般都推荐使用 procdump 这款自动化工具,谁用谁知道,有了 dump 之后,接下来就是分析了。

推荐一个.Ner Core开发的配置中心开源项目

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

当你把单体应用改造为微服务架构,相应的配置文件,也会被分割,被分散到各个节点。这个时候就会产生一个问题,配置信息是分散的、冗余的,变成不好维护管理。这个时候我们就需要把配置信息独立出来,成立一个配置中心。这是一个基于.Net Core开发的,轻量级配置中心、部署使用简单方便。该项目只具备必要的功能,主要用于轻量级的项目。

C#使用词嵌入向量与向量数据库为大语言模型(LLM)赋能长期记忆实现私域问答机器人落地

https://www.cnblogs.com/gmmy/p/17385868.html

本文将探讨如何使用C#开发基于大语言模型的私域聊天机器人落地。大语言模型(Large Language Model,LLM 这里主要以ChatGPT为代表的的文本生成式人工智能)是一种利用深度学习方法训练的能够生成人类语言的模型。这种模型可以处理大量的文本数据,并学习从中获得的模式,以预测在给定的文本上下文中最可能出现的下一个词。 在一般场景下LLM可以理解用户提出的问题并生成相应的回答。然而由于其训练时的数据限制LLM无法处理特定领域的问题。因此我们需要探索一种方法让LLM能够获取并利用长期记忆来提高问答机器人的效果。

聊一聊 dotnet-trace 调查 lock锁竞争

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

最近在分析一个 linux 上的 dump,最后的诱因是大量的lock锁诱发的高频上下文切换,虽然问题告一段落,但我还想知道一点信息,所谓的高频到底有多高频?锁竞争到底是一个怎样的锁竞争? 如果了解这些信息对我们后续分析此类问题非常有帮助。

如何将C#在线编辑器嵌入自己项目

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

首先我们需要介绍一下这个在线编辑器,当前的在线编辑器支持c#的代码编译运行,并且无需后台服务,基于WebAssembly实现的在浏览器端去执行我们的c#代码,基于Roslyn提供的Api封装一套简单的编译,并且封装了js的支持,让嵌入的方式更简单。

C#异步有多少种实现方式?

https://www.cnblogs.com/Can-daydayup/p/17383651.html

微信群里的一个提问引发的这个问题,有同学问:C#异步有多少种实现方式?想要知道C#异步有多少种实现方式,首先我们要知道.NET提供的执行异步操作的三种模式,然后再去了解C#异步实现的方式。

主题

【英文】发布 v1.3.1 microsoft/WindowsAppSDK

https://github.com/microsoft/WindowsAppSDK/releases/tag/v1.3.1

Windows App SDK v1.3.1 发布。

此版本包括一些崩溃问题的修复、模板更新等。

【英文】Visual Studio UI 刷新 - Visual Studio 博客

https://devblogs.microsoft.com/visualstudio/visual-studio-ui-refresh/

宣布更新 Visual Studio 用户界面的计划。

未来,我们计划更新 Visual Studio 的 UI 以符合 Fluent Design,分享当前的设计方案并接收反馈。

【英文】即将在 Windows 更新和目录上提供 .NET Framework 4.8.1 - .NET 博客

https://devblogs.microsoft.com/dotnet/upcoming-availability-of-net-framework-4-8-1-on-windows-update-and-catalog/

宣布可从 Windows 更新和 Windows 更新目录获取 .NET Framework 4.8.1。

.NET Framework 4.8.1 将在未来几周内从 Windows Update 和 Windows Update Catalog 中提供。交付将从 Windows Insider Preview 的 Release Preview 推出。

文章包括下载说明、语言包、阻止自动更新和常见问题解答。

文章、幻灯片等

【日文】使用 Azure.AI.OpenAI 包连接到 OpenAI 和 Azure OpenAI 服务的区别

https://zenn.dev/microsoft/articles/howtouser-azure-ai-openai

Azure.AI.OpenAI NuGet 包同时支持 OpenAI API 和 Azure OpenAI Service,但在配置使用时存在一些差异。

【英文】使用 Polyglot Notebooks 和 SandDance 在 dotnet 中可视化数据

https://dev.to/integerman/visualizing-data-in-dotnet-with-polyglot-notebooks-and-sanddance-55k9

了解如何通过 C# 代码在 Polyglot Notebooks 中使用数据可视化库 SandDance。

【英文】通过快速工程升级您的 GPT 游戏 - .NET 博客

https://devblogs.microsoft.com/dotnet/gpt-prompt-engineering-openai-azure-dotnet/

关于在调用 OpenAI 的 ChatGPT 时有帮助的提示工程。

【英文】加入我们的 HackTogether:Microsoft Teams Global Hack - .NET 博客

https://devblogs.microsoft.com/dotnet/hacktogether-microsoft-teams-global-hack/

关于 Microsoft Teams 虚拟黑客马拉松活动。

6 月 1 日以主题演讲开始的活动将在 15 日之前制定和提交。将准备几个部委,并为获奖者颁发奖品。

【日文】我想用.NET的option pattern验证设置是否正确

https://zenn.dev/microsoft/articles/options-pattern-validation

关于如何使用 Microsoft.Extensions.Options(包括 ASP.NET Core)通过选项模式验证设置值。

本文介绍了如何使用 Microsoft.Extensions.Options.DataAnnotations 通过 DataAnnotations 进行验证。

【日文】如何使用 EF Core 正确更新 - Qiita

https://qiita.com/jun1s/items/3e2b3702a965bb5e2705

如何从分离的实体更新,如何从分离的实体更新,以及如何在 Entity Framework Core 中错误地使用 Update 方法。

【英文】环绕选择实验 - Visual Studio 博客

https://devblogs.microsoft.com/visualstudio/surround-selection-experiment/

关于实现围绕选择范围输入的功能。

我们在实际将它们合并到产品中之前提供实验性扩展,验证它们可以应用于所有语言,并征求反馈。

【英文】ASP.NET Core 7.0 中的 API 版本控制和 Swagger

https://mohsen.es/api-versioning-and-swagger-in-asp-net-core-7-0-fe45f67d8419

在 ASP.NET Core 中提供版本化的 API,并说明使 Swagger 与 Bearer 身份验证结合使用的过程。

【英文】2019-2022 年 10 大 C# 会议演讲

https://unicorn-dev.medium.com/top-10-c-conference-talks-2019-2022-78c049b2d6e9

2019 年至 2022 年 10 场 C# 相关会议。

【英文】如何在展示代码时像专家一样使用 Visual Studio

https://dev.to/this-is-learning/how-to-use-visual-studio-like-a-pro-when-presenting-your-code-5955

如何提供在演示文稿中使用 Visual Studio 的模式。

【英文】.NET 中的现代最小工作者 | Anthony Simon

https://anthonysimmon.com/dotnet-minimal-workers/

如何使用通用主机和顶级语句实现 Worker 类型的应用程序。

【日文】语义内核 v0.13.442.1-preview 发布

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

关于语义内核 v0.13.442.1-preview 中的更新。

关于 gRPC 可以作为一项技能加载,Azure 认知搜索可以用作语义记忆,完成流支持等。

【英文】如何开始使用 .NET 后台服务 | .NET 工具博客

https://blog.jetbrains.com/dotnet/2023/05/09/dotnet-background-services/

关于如何开始开发在通用主机后台处理的 BackgroundService。

【英文】.NET MAUI WebViews:如何全屏播放视频

https://dev.to/vhugogarcia/net-maui-webviews-how-to-play-videos-in-full-screen-1j03

如何在 .NET MAUI 中使用 Android WebView 进行全屏视频播放。

【英文】如何在 .NET 中使用 WinSCP 从安全 FTP 服务器 (SFTP) 下载文件

https://juldhais.net/how-to-download-files-from-secure-ftp-server-sftp-using-winscp-in-net-895fbb44362c

如何使用 WinSCP 的 .NET 脚本库从 SFTP 服务器下载文件。

寻找.NET中的内存泄漏

https://chnasarre.medium.com/raiders-of-the-lost-root-looking-for-memory-leaks-in-net-28febafebac1

如何使用 C++ Profiler API 跟踪对象引用并查找内存泄漏。

【英文】面向 C# 开发人员:defer 不是 IDisposable

https://blog.cellfish.se/2023/05/go-for-c-developers-defer-is-not.html

关于Go的defer和C#的IDisposable(using)的区别。乍一看,这似乎是一种误解,但 defer 是函数作用域的。

【英文】阅读 .NET 中 exe 的 Windows 应用程序清单 - Gérald Barré

https://www.meziantou.net/reading-windows-application-manifest-of-an-exe-in-dotnet.htm

如何使用 Win32 API 读取可执行 (.exe) 文件的清单文件。

【日文】从 C# 开始的并行化:目录

https://zenn.dev/k_taro56/articles/vetcorized-csharp-introduction

关于使用 SIMD 进行并行化的系列文章。

活动

.NET 实验室学习会议 2023 年 5 月 - connpass

https://dotnetlab.connpass.com/event/281932/

在线学习会议将于 5 月 27 日星期六举行。

  • 使用 Tanzu Application Platform 和 Azure Spring Apps 提高微服务应用程序开发的敏捷性
  • C# 的 async/await 是如何工作的
  • 首次使用 C# 和 Unity 开发游戏
  • 尝试将 Azure OpenAI 服务的 GTP-4 与语义内核 (C#) 结合使用## 库、存储库、工具等。

ChatGPT API 客户端应用“TmCGPT Debugger”v2.0-beta

https://zenn.dev/jun_murakami/articles/a5ca626eb8204b

在 Avalonia UI 中实现的 ChatGPT API 客户端。

站点、文档等

推文

.NET 8 中的一种托管堆。

https://twitter.com/egorbo/status/1657007196171902976?s=12


添加了 Visual Studio 支持的 .http 文件的文档。

https://twitter.com/sayedihashimi/status/1656751184697339905?s=12

深入探索

通过 jkotas Pull Request 删除 Windows arm32 支持 #86065 dotnet/runtime

https://github.com/dotnet/runtime/pull/86065

在 Windows 上删除 ARM32 支持的 PR,它在 .NET 6 及更早版本中已弃用。

https://twitter.com/egorbo/status/1656456755835027457?s=12

版权声明

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

格式如下:

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

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

.NET性能优化交流群

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

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

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

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

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

.NET周报10月最后一期 2022-11-01

精选要闻

.NET 7 NativeAOT 比.NET 单文件发布文件小 80%

https://twitter.com/JamesNK/status/1584919726861737984?s=20&t=cOsB41s2cydu_Ibts4xnEw AOT GRPC 服务器应用程序比.NET 运行时自包含的单文件发布小 80%,目前只比 Go 稍大一点。

由于.NET 需要 Jit 编译,第一次请求需要编译很多代码,所以都比较耗时。通过 NativeAOT 以后,第一次请求响应时间比.NET 默认快 650%,和 Go 只相差 12%。要知道.NET 不是静态编译的平台,而且它在典型场景有着比 Go 更完善的特性和更高的性能,能在体积和第一次请求响应追上 Go 是非常不错的。不过这并不是最终结果,因为.NET NativeAOT 虽然可用,但是还未正式发布,期待后续的更新。

.NET8 新增新的 AOT 分层编译策略,DynamicPGO 可达 FullPGO 性能

.NET8 现在可以检测经常访问的 AOT 代码(并且重新 jits 它),一般来说只检测经常访问的代码 - 我们已经可以从中看到很好的好处(RPS🔼, Start-time🔽)🙃https://github.com/dotnet/runtime/pull/70941(已合并)。

image-10月第4期 10.24-10.30-221028102145262

可以看到上图中红色箭头所示,RPS 有明显提升,而 Start-time 也有明显的下降。

Silky 微服务框架

https://github.com/liuhll/silky

在.NET 平台下的微服务应用开发框架,支持微服务场景的诸多特性,如服务治理、RPC 通信、链路跟踪、分布式事务等。

介绍一个免费、开源的.NET 分布式应用框架 - MassTransit

https://www.cnblogs.com/sheng-jie/p/MassTransit-NET-Distributed-Application-Framework.html

本文着重介绍了MassTransit[1]框架。它直译公共交通, 是由Chris Patterson开发的基于消息驱动的.NET 分布式应用框架,其核心思想是借助消息来实现服务之间的松耦合异步通信,进而确保应用更高的可用性、可靠性和可扩展性。

C# RulesEngine 规则引擎:从入门到看懵

https://www.cnblogs.com/whuanle/p/16830333.html

本文介绍了微软开源的规则引擎库 RulesEngine 的特性和使用方法,其中包含很多代码实例,方便易懂。

是什么让.NET7 的 Min 和 Max 方法性能暴增了 45 倍?

https://www.cnblogs.com/InCerry/archive/2022/10/28/how_to_use_simd_improve_dotnet7_min_max_performance.html

本文就通过.NET7 中的一些 pr 带大家一起探索下.NET7 的Min()Max()方法是如何变快 45 倍的。

.NET 性能系列文章一:.NET7 的性能改进

https://www.cnblogs.com/InCerry/archive/2022/10/24/net-performance-series-1-performance-improvements-in-net-7-fb793f8f5f71.html

.NET 7 目前(17.10.2022)处于预览阶段,将于 2022 年 11 月发布。通过这个新版本,微软提供了一些大的性能改进。这篇 .NET 性能系列的第一篇文章,是关于从.NET6 到.NET7 最值得注意的性能改进。

创建.NET 程序 Dump 的几种姿势

https://mp.weixin.qq.com/s/ihXas9SwRyGTd26tVjhCPQ

本文介绍了生成一个.NET Dump 文件的多种方式。在 Windows、Linux 或 Azure 上有许多方法可以生成 Dump 文件。

TensorFlow.NET 实战 - 为.NET 开发者开启机器学习之旅

https://mp.weixin.qq.com/s/RY5GH948d1Xy7Q2Zeine6A

介绍在《TensorFlow.NET 实战 - 为.NET 开发者开启机器学习之旅》这本书 - .NET 生态上在人工智能领域有一个开源团队 SciSharp STACK ,他们为 TensorFlow 提供了 .NET Standard binding,旨在以 C#实现完整的 Tensorflow API,允许 .NET 开发人员使用跨平台的.NET Standard 框架开发、训练和部署机器学习模型。

C#实现生成 Markdown 文档目录树

https://mp.weixin.qq.com/s/VGxEftueOWOecP9vpJvQmw

介绍了使用 C#处理 Markdown 文档的方式和方法。

记一次 .NET 某娱乐聊天流平台 CPU 爆高分析

https://mp.weixin.qq.com/s/LuxA50zsDzxJbS3ehCuFjg

前段时间有位朋友加微信,说他的程序直接 CPU=100%,每次只能手工介入重启,让我帮忙看下到底怎么回事,哈哈,这种 CPU 打满的事故,程序员压力会非常大, 我让朋友在 CPU 高的时候抓 2 个 dump 下来,然后发给我分析。

主题

AWS App Runner 推出对 PHP、Go、.Net 和 Ruby 托管运行时的支持

https://aws.amazon.com/jp/about-aws/whats-new/2022/10/aws-app-runner-support-php-go-dot-net-ruby-managed-runtimes/

现在 AWS App Runner 支持多种语言的运行机制,包括.NET 和 Java。

AWS App Runner 是一个系统,允许你通过准备带有源代码的镜像或配置文件,轻松构建、部署和运行你的应用程序。作为一个运行时,ASP.NET 6 被支持,作为一个例子,一个 ASP.NET Core 应用程序可以通过以下的配置文件来构建和部署。

version: 1.0
runtime: dotnet6
build:
  commands:
    build:
      – dotnet publish -c Release -o out
run:
  command: dotnet out/HelloWorldDotNetApp.dll
  network:
    port: 5000
    env: APP_PORT
  env:
    – name: ASPNETCORE_URLS
      value: "http://*:5000"

介绍 AWS Toolkit for .NET Refactoring,一个新的 Visual Studio 扩展。

https://aws.amazon.com/jp/about-aws/whats-new/2022/10/aws-toolkit-net-refactoring-visual-studio-extension/

一个名为 AWS Toolkit for .NET Refactoring 的 Visual Studio 扩展已经发布。

这是一个扩展,提供了为云环境更新遗留的.NET 框架应用程序的功能。编写.NET Core/.NET,扫描依赖性和 API 使用情况,改变 IIS web.config 的代码以在 Linux 下运行,并协助部署到 AWS。

以适当的缩进方式复制 - Visual Studio Blog

https://devblogs.microsoft.com/visualstudio/copy-with-proper-indentation/

文章描述了一个实验性的 Visual Studio 扩展,允许以保持正确缩进的方式复制代码。

该扩展允许缩进,即使在复制一个嵌套代码块中间的代码块时也能保持一致。当粘贴到消息应用程序、博客等时,这可以防止只有第一行失去缩进,而其余部分过度缩进的情况。

  • Copy Nice - Visual Studio Marketplace[2]

.NET 框架 2022 年 10 月累积更新预览 - .NET Blog

https://devblogs.microsoft.com/dotnet/dotnet-framework-october-2022-cumulative-update-preview/

.NET 框架的 2022 年 10 月累积更新预览已经发布。

这个版本包含几个质量改进的更新,包括 WPF。

文章、幻灯片

使 AnimationEvent 对 CoreCLR 垃圾收集器安全 | Unity Blog

https://blog.unity.com/technology/making-animationevent-safe-for-the-coreclr-garbage-collector

文章介绍了在用 CoreCLR 运行 Unity 时,如何将 AnimationEvents 与 CoreCLR 的 GC 整合并运行。

包括为提高速度而使其成为 Blittable,重用 GCHandle,以及修改它们,使其在 Mono、IL2CPP 中的运行速度与 CoreCLR 相同。

在 Visual Studio 2022 中使用的扩展 - tech.guitarrapc.cóm

https://tech.guitarrapc.com/entry/2022/10/27/023608

介绍 Visual Studio 2022 中可用扩展的文章。它引入了各种扩展,从编辑器到显示构建状态等等。

Blazor Wasm 的现场演示现在可以使用 | ++C++; // 不明飞行 C 博客

https://ufcpp.net/blog/2022/10/blazorwasmdemo/

一篇关于在 Blazor WebAssembly 中整理和重做工作演示的文章。

在.NET 项目中,有 6 种方法可以在一个共同的位置设置相同的版本信息 | @jsakamoto

https://devadjust.exblog.jp/29404286/

本文介绍了从一个共同的位置设置一个解决方案中多个.NET 项目的版本信息的方法。

文章介绍了六种设置常用设置的方法。

  • Directory.Build.props

  • 进口道具。

  • 链接包含 AssemblyFileVersion 的源代码

  • 从文件中导入

  • 通过 dotnet 构建参数指定

  • 在构建时通过环境变量进行规范

OpenSearch 的.NET 客户端现在是 GA,我打算使用它。

https://zenn.dev/shimat/articles/d2ae99acaf022f

关于 Amazon OpenSearch(前身为 Elasticsearch Service)的.NET 客户端库的文章。

Elasticsearch 客户端库从 v7.14 开始就无法连接到 OpenSearch,所以一直在等待 OpenSearch 的客户端库。现在已经发布的.NET 版本的客户端库,以及它的使用和感受。

在 ASP.NET Core 6.0 中构建你自己的 OAuth 2.0 服务器和 OpenId 连接提供商

https://dev.to/mohammedahmed/build-your-own-oauth-20-server-and-openid-connect-provider-in-aspnet-core-60-1g1m

关于在.NET 6 的 ASP.NET Core 中实现自己的 OAuth 2.0 服务器和 OpenId Connect Provider 的文章。

托管指针、Span、ref 结构、C#11 ref 字段和 scoped 关键字 - NDepend

https://blog.ndepend.com/managed-pointers-span-ref-struct-c11-ref-fields-and-the-scoped-keyword

这篇文章回顾并解释了从指针到 Span、Ref 结构和字段的一切。

自动发布.Net 应用程序的版本

https://blog.antosubash.com/posts/automatic-version-and-release

关于如何使用 Versionize 工具在 GitHub Actions 中自动进行版本和发布的文章。

文章还讨论了如何使用 Husky.Net 对 Git 的 pre-commit 钩子中的注释进行提示。

学习系列:在 Visual Studio 中开始使用 GitHub

https://devblogs.microsoft.com/visualstudio/learn-github-in-visual-studio-learning-series/

一篇关于使用 Visual Studio 学习 GitHub 的电子邮件系列的介绍性文章。

LINQ 的聚合函数在.NET7 中为何如此之快的故事(或者说矢量化的难度) - Qiita

https://qiita.com/Kujiro/items/dc90366325fffcd3675d

一篇解释 LINQ 聚合函数(Sum、Max、Average)的具体实现的文章,这些函数在.NET 7 中被加速了。

Project Volterra 和 Windows 开发工具包 2023 - Shibayan Miscellaneous

https://blog.shibayan.jp/entry/20221027/1666807751

关于 Windows 开发工具包 2023 的评论文章。

我买了 Windows 开发工具包 2023 | DevelopersIO

https://dev.classmethod.jp/articles/try-windows-dev-kit-2023-project-volterra/

一篇关于 Windows 开发工具包 2023 的评论文章,其中还讨论了像 PowerShell 和 AWS 工具如何工作。

在 Razor Pages 中与空引用类型作斗争

https://andrewlock.net/fighting-with-nullable-reference-types-in-razor-pages/

关于在 Razor Pages 中与空引用类型斗争的文章。

文章讨论了如何处理 Razor 页面,其中的值是从外部插入的,警告和不适当的抓取会增加 NullReferenceException 的可能性。文章介绍了一些建议,包括使用 C# 11 的required,这在一定程度上可以缓解。

在 C#中使用多线程的 SQLite。

https://zenn.dev/kn64872/articles/90ae674d5332a7

文章探讨了在多线程环境下使用 System.Data.SQLite 的行为。

用 Infer#杀死僵尸 "无回复 "崩溃 - .NET 博客

https://devblogs.microsoft.com/dotnet/slaying-zombie-no-repo-crashes-with-infersharp/

一篇关于使用 Infer#进行静态代码分析以检测难以发现的资源泄漏和安全问题的介绍性文章。

  • microsoft/infersharp: Infer#是一个用于 C#的跨程序和可扩展的静态代码分析器。通过 Facebook 的 Infer 的功能,这个工具可以检测到空解引用、资源泄漏和线程安全违规。它还执行污点流跟踪,以检测关键的安全漏洞,如 SQL 注入。[3]

官方发布! @dotnet 目前的版本已被重新命名为 "标准期限支持",这些变化已在网站上发布。

https://dotnet.microsoft.com/download/dotnet

目前的.NET 非 LTS 版本已被重新命名为 "标准期限支持",其变化已在网站上上线。

image-20221101190029335

图书馆、资源库、工具

corvus-dotnet/Corvus.UriTemplates: 低分配的 URI 模板解析和解决,支持 Tavis.UriTemplates API

https://github.com/corvus-dotnet/corvus.uritemplates

一个分配较少的处理 URI 模板的库(RFC 6570).

  • 低分配高性能的 C#来解决 UriTemplate 问题| endjin[4]

版权声明

  • InCerry 翻译与整理 : https://github.com/InCerryGit/WeekRef.NET/blob/master/input_zh-CN/2022/2022-11-01.md

  • Myuki WeekRef : https://github.com/mayuki/WeekRef.NET/blob/master/input/2022/2022-11-01.md

欢迎大家为.NET周报进行贡献,需要推广自己的文章或者框架、开源项目可以下方的项目地址提交issue或者在我的微信公众号私信。

格式如下:

  • 10~50 字左右的标题

  • 对应文章或项目网址访问链接

  • 200 字以内的简介,如果太长会影响阅读体验

https://github.com/InCerryGit/WeekRef.NET

参考资料

[1]

MassTransit: http://masstransit-project.com/

[2]

Copy Nice - Visual Studio Marketplace: https://marketplace.visualstudio.com/items?itemName=MadsKristensen.CopyNice

[3]

microsoft/infersharp: Infer#是一个用于C#的跨程序和可扩展的静态代码分析器。通过Facebook的Infer的功能,这个工具可以检测到空解引用、资源泄漏和线程安全违规。它还执行污点流跟踪,以检测关键的安全漏洞,如SQL注入。: https://github.com/microsoft/infersharp

[4]

低分配高性能的C#来解决UriTemplate问题| endjin: https://endjin.com/blog/2022/10/high-performance-csharp-uritemplates

以上是关于.NET周报 5月第2期 2023-05-14的主要内容,如果未能解决你的问题,请参考以下文章

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

.NET周报 2月第1期 2023-02-04

.NET周报10月第2期 2022-10-17

.NET周报1月第2期 2023-01-13

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

.NET周报 2月第2期 2023-02-11