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

周报 ,NET · 浏览次数 : 766

小编点评

**.NET 和 Raft 共识算法** * Akka.NET v1.5 的新的 Akka.Hosting、Akka.Management 和 Akka.HealthCheck 库。 * 可扩展 Raft 共识算法,用于集群化和复制状态机。 **性能优化** * Drastic.Flex 的 .NET 绑定,支持 iOS 的应用内调试和探索工具。 *扩展现有的基于 cookie 的身份验证并支持 SPA 应用程序中的自定义通过现代化现有身份支持基于谈话的身份验证从 SPA 模板中删除了 Dende IdentityServer 依赖项。 *NET 8 中对 ASP.NET Core SPA 模板的更改,扩展现有的基于 cookie 的身份验证并支持 SPA 应用程序中的自定义通过现代化现有身份支持基于谈话的身份验证从 SPA 模板中删除了 Dende IdentityServer 依赖项。

正文

国内文章

.NET应用系统的国际化-多语言翻译服务

https://www.cnblogs.com/tianqing/p/17232559.html

本文重点介绍了多语言翻译服务的设计和实现。文章描述了如何通过多语言翻译服务,将临时存储在数据库中的多语言词条,按支持的语言翻译成多语言词条。作者设计了一个翻译服务提供者类,通过Facade模式,对外统一提供翻译服务。文章还提供了Azure翻译服务的代码示例。

实现常驻任务除了避免昙花线程,还需要避免重返线程池

https://www.cnblogs.com/newbe36524/p/0x028-avoid-return-to-threadpool-in-longrunning-task.html

前面我们使用简单的例子演示了 Task 和 Thread 的两种制造昙花线程的方式。那么除了避免昙花线程,在实现常驻任务的时候,还需要避免重返线程池。本文将介绍如何避免重返线程池。

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

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

本文主要介绍了对称加密和非对称加密,以及非对称加密的代表算法 RSA 算法。RSA 算法是目前最有影响力的公钥加密算法之一,它能够抵抗到目前为止已知的所有密码攻击。RSA 公钥加密算法的原理是根据数论,寻求两个大素数比较简单,而将它们的乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。本文还提到了 RSA 算法的一些缺点和特点,以及如何使用 BouncyCastle.NetCore 包进行 RSA 加解密。

【ASP.NET Core】在node.js上托管Blazor WebAssembly应用

https://www.cnblogs.com/tcjiaan/p/17241935.html

本文介绍了如何使用 node.js 托管 Blazor wasm 应用程序。首先,需要完成 Blazor wasm 应用程序的开发,然后发布项目并将 _framework 目录复制到新建的 Server 目录中。接着,在 Server 目录下新建 index.html 文件和 app.js 文件,分别用来呈现组件和写服务器主程序。最后,运行 app.js 文件并在浏览器中输入地址验证 Blazor 应用程序是否成功启动。

VS Code多语言笔记本扩展插件 Polyglot Notebooks

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

本文介绍了微软发布的VS Code的多语言笔记本扩展插件Polyglot Notebooks,它使用.NET Interactive引擎,支持多种语言。它让数据科学家能够简单执行跨语言任务。Notebooks是一种方便使用的交互式程序开发工具,可用于执行代码、可视化数据、执行方程式或编写纯文字。开发者可在同一个笔记本中使用多种语言,并获得良好的开发体验。

记一次 .NET 某医疗住院系统 崩溃分析

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

本文介绍了如何使用windbg分析程序崩溃的dump文件。作者通过使用windbg的自动化分析命令!analyze -v找到了崩溃时的程序指令地址和崩溃的代码。文章中还提到了如何使用!heap -s命令查看具体破坏的详情记录。作者通过分析调用栈,发现问题是由Oracle的OraOps12.dll造成的,并建议升级该dll文件。文章最后提到,在百加dump的分析旅程中,碰到和Oracle SDK相关的也有3+起,建议大家在使用上尽量更新到最新版本。

【译】使用 ChatGPT 和 Azure Cosmos DB 构建智能应用程序

https://www.cnblogs.com/MingsonZheng/p/17249955.html

本文介绍了如何使用 Azure Cosmos DB 和 OpenAI 的 ChatGPT 构建智能聊天应用程序。文章详细介绍了示例应用程序的架构、数据模型和实现方法。作者还探讨了如何使用提示来维护对话上下文,以及如何将数据库与大型语言模型结合起来构建智能应用程序。文章最后提到,作者将进一步研究,并提供更多示例和博客文章,帮助用户使用 Azure OpenAI 和 Azure Cosmos DB 创建智能应用程序和服务。

微软开源了一个 助力开发LLM 加持的应用的 工具包 semantic-kernel

https://www.cnblogs.com/shanyou/p/semantic-kernel.html

本文介绍了微软的语义内核(SK)项目,它是一种创新的轻量级软件开发工具包(SDK),旨在将人工智能(AI)大型语言模型(LLM)与传统编程语言集成。SK支持多种设计模式,可以为应用程序注入复杂的技能,如提示链接、递归推理、总结等。SK最初的目标是C#开发人员,但也为Python提供了预览支持。微软还提供了一个免费的LinkedIn学习课程,帮助开发人员入门。

如何提取 x64 程序那些易失的方法参数

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

这篇文章讲述了如何在x64环境下提取线程栈中的方法参数。作者通过一个案例演示了如何使用Marshal在ntheap上分配堆块,然后提取Marshal.FreeHGlobal方法的用户句柄。文章指出,由于方法参数是通过寄存器传递的,能否成功捞取需要仔细观察汇编代码才能知道。

如何使用Photino创建Blazor项目进行跨平台

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

这篇文章介绍了Photino,一组使用Web UI创建桌面应用程序的技术。它由TryPhotino.io维护,并鼓励社区开发Photino.Native控件以用于其他语言和平台。文章还提供了如何使用Photino.Blazor创建.NET 6及更高版本的桌面应用程序的示例,该应用程序可以在Windows,Linux和Mac上跨平台工作。

abp(net core)+easyui+efcore实现仓储管理系统——ABP升级7.3上(五十八)

https://www.cnblogs.com/chillsrc/p/17258437.html

这篇文章讲述了如何使用ABP框架、EasyUI和EF Core实现仓储管理系统。文章介绍了.NET 5和.NET 6的统一计划,以及.NET 6提供的简化开发、更佳性能和终极工作效率等功能。作者分享了他在升级ABP版本时遇到的问题,并提供了解决方案。文章还介绍了ABP框架的优点,包括提供基于DDD和最佳实践的健壮体系模型。

主题

【英文】.NET 再次为 Bing 带来性能提升,从 .NET 5 到 .NET 7 - .NET 博客

https://devblogs.microsoft.com/dotnet/dotnet-performance-delivers-again-for-bing-from-dotnet-5-to-dotnet-7/

关于将 Bing 的中央工作流引擎从 .NET 5 更新到 .NET 6、7 的挑战和好处。

我们认为从 .NET 5 到 .NET 6 的过渡会很容易,但我们遇到了一些问题,例如在内部 HTTP 调用中使用不正确的有效负载,以及由于旋转计数错误导致可用性降低。 NET 方面必须处理这个问题,但除此之外,迁移是在没有任何重大重写的情况下完成的。

此外,它被预热为在启动时根据预分析有意生成 JIT,但 .NET 6 中 JIT 效率的提高大大缩短了启动时间。

由于迁移到 .NET 7 在线程池行为和基于区域的 GC 方面发生了重大变化,仔细测试表明 GC 时间降低了近 24-30%,这表明 GC 改进和线程的第 95 个百分位延迟降低了约 3- 7% 由于线程池的改进。

image-20230325163707502

【英文】Visual Studio 2022 的 GitHub Copilot 聊天 - Visual Studio 博客

https://devblogs.microsoft.com/visualstudio/github-copilot-chat-for-visual-studio-2022/

推出适用于 Visual Studio 2022 的 GitHub Copilot 聊天。

通过 GitHub Copilot 聊天,您现在可以直接从编辑器向 AI 输入聊天问题,您可以在 Visual Studio 的窗口中与 AI 聊天并改进代码问题。此外,当出现异常时,还可以通过AI聊天查看异常内容。

候补名单登记表现已开放供私人预览。

【英文】unoplatform/uno 发布 4.8.15

https://github.com/unoplatform/uno/releases/tag/4.8.15

Uno Platform 4.8.15 已经发布。

此版本包括对 .NET 8 预览版的支持、改进的启动体验、适用于 iOS/Catalyst/Android 的 ThemeShadow、Skia 目标上的阴影、性能和内存改进以及许多其他修复。

【英文】ReSharper 和 Rider 2022.3.3 错误修复已发布 | .NET 工具博客

https://blog.jetbrains.com/dotnet/2023/03/22/resharper-and-rider-2022-3-3-bug-fixes/

ReSharper 和 Rider 2022.3.3 发布。

此版本修复了一些小错误。

文章、幻灯片等

【英文】如何在 .NET 和 C# 中执行突变测试?

https://medium.com/@RebeldeCuantico/how-to-perform-mutation-testing-in-net-and-c-bd23a530341f

如何在 .NET / C# 中进行突变测试。本文介绍了如何使用名为 Stryker 的工具进行测试。

【英文】C# .NET 工具与 System.CommandLine

https://dev.to/karenpayneoregon/c-net-tools-withsystemcommandline-2nc2

快速介绍如何使用 System.CommandLine 实现控制台应用程序。

【英文】使用 PowerShell 脚本将 ASP.Net Web 应用迁移到 Azure 应用服务

https://techcommunity.microsoft.com/t5/apps-on-azure-blog/asp-net-web-app-migration-to-azure-app-service-using-powershell/ba-p/2814513

引入 PowerShell 工具以将 ASP.NET Web 应用程序 (.NET Framework) 迁移到 Azure 应用服务。

【英文】在.NET中有太多的 timers 类? - Gérald Barré

https://www.meziantou.net/too-many-timers-in-dotnet.htm

.NET中包含的多个定时器(System.Threading.Timer、System.Threading.PeriodicTimer、System.Timers.Timer)的区别和用法介绍。

【英文】使用 Plotly.NET 在 F# 和 C# 中绘制散点图

https://fslab.org/blog/graph-gallery/scatter/csharp.html

了解如何使用 Plotly.NET 显示散点图文章介绍了Interactive(Juptyer Notebook)中的一个使用示例。

【英文】精通 Blazor - 第 2 部分:热重载

https://dev.to/florianrappl/mastering-blazor-part-2-hot-reloading-2b87

Blazor 中热重载的解释。

这篇文章解释了如何使用热重载、它的限制是什么以及它是如何工作的。

【英文】在 VS 代码中调试多个 .NET 项目

https://dev.to/this-is-learning/debugging-multiple-net-projects-in-vs-code-28kn

如何在 Visual Studio Code 中同时调试和运行多个 .NET 项目。

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

https://blog.jetbrains.com/dotnet/2023/03/22/remote-development-with-jetbrains-rider/

关于远程开发的介绍性文章,在 Rider 2022.2 中作为测试版支持。

本文介绍了如何开始使用 Rider 进行远程开发,以及您可以使用它做什么。

【英文】使用无root权限Linux 容器保护您的 .NET 云应用程序 - .NET 博客

https://devblogs.microsoft.com/dotnet/securing-containers-with-rootless/

关于 .NET 8 中引入的无root权限 Linux 容器映像。

无root权限容器镜像可以通过以普通用户身份运行来降低安全风险。使用 .NET 8,容器映像现在将包含应用程序的用户。

本文解释了如何以普通用户身份运行它以及在这种情况下该怎么做。

【英文】使用断点组简化调试过程 - Visual Studio 博客

https://devblogs.microsoft.com/visualstudio/streamlining-your-debugging-process-with-breakpoint-groups/

Visual Studio 2022 版本 17.6 预览版 2 中引入的分组断点功能介绍。

【日文】IOT 和 Visual Studio 2022 C#(L 在 RaspberryPi 上闪烁)- Qiita

https://qiita.com/dail1015/items/aa8169c72598865f3bca

如何在 Raspberry Pi 4 上运行 .NET 7 并闪烁。

【英文】为什么 ReSharper 建议这样做?| .NET 工具博客

https://blog.jetbrains.com/dotnet/2023/03/20/why-is-resharper-suggesting-this/

对“为什么 ReSharper 建议这样做?”功能的介绍,可让您显示有关 ReSharper 为什么建议这样做的帮助。

【英文】Akka.NET v1.5:没有 Hocon,没有 Lighthouse,没有问题

https://petabridge.com/blog/akkadotnet-1.5-no-hocon-no-lighthouse-no-problem/

Akka.NET 1.5新增Akka.Hosting、Akka.Management、Akka.HealthCheck说明。

【英文】在不安装任何工具的情况下创建投资组合网站 - .NET 博客

https://devblogs.microsoft.com/dotnet/codespaces-template-blazor-portfolio-website/

了解如何使用 GitHub 代码空间在 GitHub 页面和 Azure 静态 Web 应用上构建 Blazor WebAssembly 网站。

库、存储库、工具等。

endecipher/Coracle.Raft:使用 .NET 中 Raft 共识算法的这种完全可扩展的实现,将您的功能集群化并构建您自己的复制状态机

https://github.com/endecipher/Coracle.Raft

一个使用 Raft 共识算法实现集群的库。

SteveSandersonMS/DotNetIsolator:用于在 .NET 中运行隔离的 .NET 运行时的库

https://github.com/Steve SandersonMS/DotNetIsolator

一个库,通过在 .NET 运行时之上托管 Wasm 的 .NET 运行时,提供在隔离环境中运行代码的机制。

drasticactions/Drastic.Flex:FLEX 的 .NET 绑定,iOS 的应用内调试和探索工具

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

Flex 的 .NET 绑定,一种适用于 iOS 的应用程序内开发工具。

站点、文档等

推文

.NET 反编译器文章已更新为 2023 年的信息。

https://twitter.com/ndepend/status/1635867251084521472?s=12

image-20230325163557032


Rx.Async 的第一个 alpha 版本已经发布。

https://twitter.com/howardvrooijen/status/1637018355243646977?s=12

image-20230325163623429


谈论 Span.CopyTo 变得可以展开。

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

image-20230325163344995

深入探索

通过 EgorBo 拉取请求通过 BLK 优化 stackalloc 归零 #83255 dotnet/runtime

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

ASP.NET Core SPA 模板需要更好的身份验证选项 #42158 dotnet/aspnetcore

https://github.com/dotnet/aspnetcore/issues/42158#issuecomment-1481742187

.NET 8 中对 ASP.NET Core SPA 模板的更改。

  • 扩展现有的基于 cookie 的身份验证并支持 SPA 应用程序中的自定义
  • 通过现代化现有身份支持基于谈话的身份验证
  • 从 SPA 模板中删除了 Dende IdentityServer 依赖项
  • 为 ASP.NET Core 中的身份验证选项创建新文档
  • 从模板到认证文件的链接

版权声明

由于笔者没有那么多时间对国内的一些文章进行整理,欢迎大家为《.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周报 【3月第4期 2023-03-24】相似的内容:

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

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

.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月第3期 2023-04-15】

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

.NET周报【11月第3期 2022-11-22】

国内文章 .NET Conf China 2022 第一批讲师阵容大揭秘!整个期待了! https://mp.weixin.qq.com/s/4p89hhBPw6qv-0OB_T_TOg 目光看过来 2022年12月3-4日,一场社区性质的国内规模最大的 线上线下.NET Conf 2022技术大会

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

国内文章 我做的FFmpeg开源C#封装库Sdcb.FFmpeg https://www.cnblogs.com/sdflysha/archive/2023/02/27/dotnet-conf-china-2022-ffmpeg.html FFmpeg是知名的音频视频处理软件,我平时工作生活中会经常

.NET周报 【3月第2期 2023-03-12】

国内文章 ASP.NET Core中如何限制响应发送速率(不是调用频率) https://www.cnblogs.com/coredx/p/17195492.html ASP.NET Core中有很多RateLimit组件,.NET 7甚至推出了官方版本。不过这些组件的主要目标是限制客户端访问服务的

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

国内文章 记一次 .NET某汽车零件采集系统 卡死分析 https://www.cnblogs.com/huangxincheng/p/17214154.html 前段时间有位朋友在微信上找到我,说他的程序会出现一些偶发卡死的情况,让我帮忙看下是怎么回事,刚好朋友也抓到了dump,就让朋友把 dum

.NET周报【10月第3期 2022-10-25】

国内文章 聊一聊被 .NET程序员 遗忘的 COM 组件 https://www.cnblogs.com/huangxincheng/p/16799234.html 将Windows编程中经典的COM组件拿出来再复习一下,解释了COM组件互相调用的原理。 使用 C# 开发的轻量级开源数据库 Lite

.NET周报【12月第3期 2022-12-23】

由于众所周知的原因,大佬们纷纷加入羊群,笔者也未能幸免,体验下来这绝对不是普通感冒的症状,身体不适,熬了几天,所以本周更新比较晚;另外精力有限,对于国际板块只有链接没有简介,十分抱歉! 在这个艰难时刻,大家照顾好自己和家人,做好防护,祝没羊的永远"郭襄",祝已羊的早日康复,没有一个冬天不可逾越,没有

.NET周报【1月第3期 2023-01-20】

这应该是2023年农历新年前的最后一篇.NET周报,再次预祝大家新年快乐! 国内文章 看我是如何用C#编写一个小于8KB的贪吃蛇游戏的 https://www.cnblogs.com/InCerry/p/building-a-self-contained-game-in-c-under-8-kilo