.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线下技术沙龙活动在成都市世纪城新会展中心知域空间举行,共计报名人数90多人,实际到场60多人,13:30~18:00四个半小时的现场交流氛围极好,到场的童鞋也满载而归,我们看到了成都.NET社区小伙伴的激情,也让我们更加相信.NET社区的明天会更好

C#中使用CAS实现无锁算法

https://www.cnblogs.com/eventhorizon/p/17338890.html

本文主要介绍了C#中使用CAS实现无锁算法的方法和原理。文章首先解释了CAS的基本概念和优势,然后介绍了C#中使用Interlocked类的CompareExchange方法来实现CAS操作的方式,最后给出了两个算法示例:计数器和队列,分别展示了如何使用CAS操作来实现线程安全的数据结构和算法。

.NET无侵入自动化探针原理和主流实现

https://www.cnblogs.com/InCerry/p/about-dotnet-auto-apm-instru-impl.html

本文介绍了.NET无侵入自动化探针的原理和主流实现,主要包括以下内容:

  • APM探针的概念和作用,以及如何采集平台相关指标和组件相关指标。

  • .NET方法注入的方式和原理,包括静态注入和动态注入,以及各自的优缺点。

  • 基于CLR Profile API实现APM探针的原理,包括Profiler注册、JIT编译拦截、代码修改插桩、上下文传播和数据收集等步骤。

  • CLR Profile API提供的事件和接口,以及如何使用ILRewriter工具类进行IL代码的分析和修改。

  • RequestReJIT方法的介绍和优势,以及如何使用它实现动态地重新编译方法。

本文旨在帮助开发者深入理解.NET无侵入自动化探针的技术细节和实现方式,为.NET应用程序的性能监测和优化提供参考。

ASP.NET Core Web API 流式返回,逐字显示

https://www.cnblogs.com/cplemom/p/17269789.html

本文主要介绍了ASP.NET Core Web API 流式返回的方法和效果。文章分别用C#和js代码示例展示了如何使用流式响应返回文本和图片内容,以及如何在客户端实时捕获返回的信息。文章还简要介绍了Websocket、SSE和长轮询等网页和服务端通信的技术。

使用ServiceSelf解决.NET应用程序做服务的难题

https://www.cnblogs.com/kewei/p/17346228.html

本文主要介绍了ServiceSelf项目,它是一个为.NET泛型主机的应用程序提供自安装为服务进程的能力的工具,支持windows和linux平台。文章分别介绍了ServiceSelf的功能、自我服务安装、自我服务卸载和自我服务日志监听等特点,并给出了相关的代码示例。文章还对比了其他的服务生命周期包和日志提供者,并指出了ServiceSelf的优势和精炼的api设计。

记一次 .NET 某外贸ERP 内存暴涨分析

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

本文主要介绍了.NET高级调试训练营的一次案例分析,涉及到.NET内存暴涨的原因和解决方法。文章通过WinDbg工具,分析了一个.NET5的外贸ERP系统的内存dump文件,发现了托管堆上有大量的无根对象和临时对象,导致内存分配区域和提交区域相差过大。文章进一步定位了问题SQL语句和ORM框架FreeSql的映射机制,给出了优化建议和原理解释。

一个可用于生产项目 基于 .NET 6 自研ORM

https://www.cnblogs.com/China-Mr-zhong/p/17342895.html

本文主要介绍了基于.NET 6自研的轻量级ORM框架Fast Framework的特点和用法。文章从项目明细、核心对象、增删改查、Lambda表达式、数据库日志、事务和多租户等方面,详细说明了该框架的优点和缺点,以及如何使用不同的方法和对象进行数据库操作。文章还给出了开源地址和作者的联系方式,以及一些亮点功能和注意事项。

.NET实现解析字符串表达式

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

本文主要介绍了如何使用System.Linq.Dynamic.Core库来解析字符串表达式并生成Lambda表达式树。文章首先说明了功能需求和构建字符串表达式的两种方式,然后介绍了System.Linq.Dynamic.Core库的功能、用法和文档地址,最后浅析了该库的源码实现和原理,以及一些相关的类和方法。

如何在 .NET Core WebApi 中处理 MultipartFormDataContent 中的文件

https://www.cnblogs.com/hippieZhou/p/17316146.html

本文主要介绍了如何在.NET Core WebApi中处理MultipartFormDataContent中的文件。文章分析了一个由于前端APP发送的文件缺少fileName字段导致后端无法解析的问题,给出了后端的兼容性处理方案,以及前端的优化建议。文章还提供了相关的代码示例和注意事项。

LangChain vs Semantic Kernel

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

这篇文章是从开发人员的角度比较了两个用于构建与AI集成的应用程序的库:Semantic Kernel(SK)和LangChain。文章介绍了这两个库的背景、特点、优势和不足,并给出了一些相关链接。文章的主要观点是:

  • SK和LangChain都是为了简化开发人员使用OpenAI等大型语言模型(LLM)的过程,提供了一些协调业务流程、管理对话历史记录、实现链接等功能的工具。

  • SK是由微软创立的,主要面向C#开发人员,也支持Python,它被称为轻量级SDK,可帮助开发人员将代码组织到内置于Planner中的技能、记忆和连接器中。SK有一个官方的支持页面和LinkedIn学习课程,还有一个MS Graph连接器工具包,适用于需要与日历、电子邮件、OneDrive等集成的方案。

  • LangChain是由Harrison Chase创立的,他是一个ML工程师,它支持Python和TypeScript,其中Python具有更多功能。LangChain主要是为习惯于使用笔记本的ML工程师构建的,它不把自己称为SDK,而是Model as a Service粘合剂。LangChain有一个大型的开源社区,目前已经有29k star。

  • 文章认为选择使用哪一个库主要取决于开发人员的技能,LLM已经将机器学习的门槛降低到普通开发人员就可以开发AI应用,SK在帮助应用开发人员开发AI方面的帮助会比LangChain更大,作者会选择采用SK来构建AI应用。

ASP.NET Core - 缓存之分布式缓存

https://www.cnblogs.com/wewant/p/17114119.html

本文是基于 ASP.NET Core 框架的分布式缓存的介绍,主要包括以下几个方面:

  • 分布式缓存的概念和优势,以及与内存缓存的区别。

  • 分布式缓存的使用方法,基于 IDistributedCache 接口的抽象和扩展。

  • 分布式缓存的接入方式,以内存缓存和 Redis 缓存为例,介绍了如何配置和切换不同的缓存实现。

  • 分布式缓存的性能测试,比较了内存缓存、Redis 缓存和内存缓存结合 Redis 缓存的效率和消耗。

【译】ConfigureAwait FAQ

https://www.cnblogs.com/MeteorSeed/p/17327465.html

本文是关于 .NET 中 async/await 的 ConfigureAwait 方法的常见问题解答,主要涵盖了以下内容:

  • SynchronizationContext 和 TaskScheduler 的概念和作用,以及它们如何影响 await 的行为。

  • ConfigureAwait 方法的含义和用法,以及它如何通过传入一个布尔值来控制是否在原始上下文或调度器上执行回调。

  • 使用 ConfigureAwait(false) 的好处,包括性能提升和死锁避免,以及使用 ConfigureAwait(true) 的场景。

  • 使用 ConfigureAwait(false) 的指导原则,即在通用库代码中使用,在应用程序级代码中不使用。

  • 使用 ConfigureAwait(false) 的局限性和注意事项,例如它不会影响 ExecutionContext 和 AsyncLocal 的流动,它不会保证回调不会在原始上下文中运行,它需要在每个 await 处使用等。

  • 使用其他技巧来替代或辅助 ConfigureAwait(false) 的可能性和风险,例如使用 Task.Run, SynchronizationContext.SetSynchronizationContext, Task.GetAwaiter().GetResult 等。

记一次 .NET某医疗器械清洗系统 卡死分析

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

本文是一篇关于.NET程序卡死分析的技术博客,作者分享了一个.NET某医疗器械清洗系统卡死的案例,介绍了如何使用windbg工具观察内核态和用户态的线程栈,定位到卡死的原因是非主线程创建了一个用户控件,导致内核态在某种情况下给它发消息。作者提供了解决办法,并总结了这个案例的经验教训。

C# 如何设计一个好用的日志库?【架构篇】

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

本文介绍了C#如何设计一个好用的日志库,分别介绍了日志的简单记录、通过开源库HslCommunication和NLog实现不同级别和选项的日志记录,以及使用TextAnalysisTool.NET进行日志查看和分析的方法。本文旨在帮助开发者提高日志记录的技能和效率,提高程序的稳定性和可维护性。

主题

【英文】Windows 社区工具包 2023 更新 - #ifdef Windows

https://devblogs.microsoft.com/ifdef-windows/the-windows-community-toolkit-2023-update/

关于 Windows 社区工具包更新。

它引入了新的 WCT Lab 组件、下一个版本中的组件以及命名空间的统一。

文章、幻灯片等

【日文】我尝试创建一个可以使用 Azure Functions 和 LINE Messaging API 与 ChatGPT 通信的服务

https://zenn.dev/takunology/articles/linebotandazure-gpt

了解如何使用 Azure Functions 和 OpenAI 的 ChatGPT API 实现 LINE 机器人。

【日文】使用 SetWindowSubclass 的自定义窗口过程 (C# / WinUI 3)

https://zenn.dev/shinta0806/articles/de27f23a0c3684

如何在 WinUI 3 应用程序中执行自定义窗口过程(子类化窗口)。

【日文】如何轻松调试 Windows 服务 - Qiita

https://qiita.com/TheParkSider/items/dc0aa0a03c02cec462e6

如何在实施 Windows 服务时简化调试。

【英文】改进 Visual Studio 中 JavaScript 的语法突出显示 - Visual Studio 博客

https://devblogs.microsoft.com/visualstudio/improving-the-syntax-highlighting-of-javascript-in-visual-studio/

在 Visual Studio 2022 v17.6 及更高版本中引入了对 JavaScript 语法突出显示的改进。

【英文】如何在 Rider 中使用 Aqua Web Inspector 进行 ASP.NET Core 开发 | .NET 工具博客

https://blog.jetbrains.com/dotnet/2023/04/20/jetbrains-rider-and-aqua-for-aspnetcore-development/

如何使用 IDE 的内置 Web 检查器通过 Rider 中提供的 JetBrains Aqua 插件进行 ASP.NET Core 开发。

【英文】Git 工具预览功能以提高生产力 - Visual Studio 博客

https://devblogs.microsoft.com/visualstudio/git-tooling-preview-features-to-enhance-productivity/

Visual Studio(预览版)中与 Git 相关的增强功能汇总。

【英文】使用 ReSharper 减少集合查找 | .NET 工具博客

https://blog.jetbrains.com/dotnet/2023/04/18/reduce-lookups-in-hashset-dictionary-and-other-collections-with-resharper/

关于 ReSharper 指出在操作 Dictionary 和 HashSet 等集合之前调用 ContainsKey 和 Contains 的不必要情况的能力。

【英文】.NET Web 视图控件中的 Chrome 扩展

https://dev.to/dotnetbrowser/chrome-extensions-in-net-web-view-controls-11lm

关于DotNetBrowser、WebView2、CefSharp等WebView中Chrome扩展的支持情况。

【英文】使用 Serilog 格式化 .Net 应用程序日志并将其发送到 Elasticsearch

https://medium.com/@ingrid.jardillier/format-and-send-net-application-logs-to-elasticsearch-using-serilog-9819742cf806

配置 Serilog 以将日志发送到 Elasticsearch 的说明。

【日文】从内存转储中检查 .NET 应用程序用于 HTTP 通信的代理设置 - Qiita

https://qiita.com/nishiseki/items/fe3e4795df9f790831f7

如何获取 .NET 应用程序的内存转储并从内存转储中解析 HTTP 代理配置信息。

【英文】使用 Kubernetes 运行非 root .NET 容器 - .NET 博客

https://devblogs.microsoft.com/dotnet/running-nonroot-kubernetes-with-dotnet/

它通过示例介绍了 .NET 8 支持的 Kubernetes 上非根容器的使用。它也应该与 dotnet-monitor 一起工作。

【日文】[Xamarin/C#] 在智能手机上创建一个VR照片展示应用

https://zenn.dev/daddy_yukio/articles/a70e04b8896f15

关于用Xamarin.Forms显示360度球面图像的实现。

【英文】为 .NET SDK 项目设置绝对输出路径

https://weblog.west-wind.com/posts/2023/Apr/21/Setting-an-Absolute-Output-Path-for-NET-SDK-Projects

关于构建时如何指定输出目标路径,以及如何通过AppendTargetFrameworkToOutputPath指定不将目标框架添加到路径中。

【英文】使用自定义集合调查 Enumerable.LastOrDefault 中的崩溃 - Gérald Barré

https://www.meziantou.net/investigating-a-crash-in-enumerable-lastordefault.htm

讨论在自定义集合上使用 LINQ LastOrDefault 方法时非线程安全操作引发异常的情况。

【英文】.NET 8 性能版

https://steven-giesel.com/blogPost/f6504300-7bf0-48d2-8a14-ba4e2bbea02e

.NET 8 和更早版本在枚举、LINQ、反射和列表等领域的基准性能比较。

【日文】用于 Azure OpenAI 服务的 C# SDK(也可用于 ChatGPT)

https://zenn.dev/microsoft/articles/azure-openai-service-csharpsdk

一篇关于开始使用 Azure OpenAI 服务的 .NET SDK(包括 ChatGPT)的文章。

【日文】在 C# 中创建带有 QR 图像的 Excel(NPOI、ZXing)

https://zenn.dev/junnuj/articles/a68409f9e18fd0

如何使用 ZXing.NET 生成二维码并使用 NPOI 在 Excel 中嵌入图像。

【日文】使用语义内核轻松链接 GPT 和外部工具 - 技术主题的味道

https://acro-engineer.hatenablog.com/entry/2023/04/18/120000

如何使用 Semantic Kernel 集成 ChatGPT API 和外部工具 Elasticsearch。

【杂记】清除赋值规则 |不明航班C博客

https://ufcpp.net/study/csharp/start/definiteassignment/

关于避免未初始化的显式分配规则。它还提到了 C# 10 中的改进。

库、存储库、工具

microsoft/Tokenizer:用于 OpenAI LLM 的 BPE 标记器的 .NET 实现。

https://github.com/microsoft/Tokenizer

OpenAI 的 tiktoken 令牌计数库的 .NET 实现。

  • 使用 C# 计算 Azure OpenAI 服务令牌

CalvinAllen/vs4mac-super-clean:Super Clean 是 Visual Studio for Mac 的一个扩展,当它被触发时,会完全清除解决方案中所有项目的 bin 和 obj 目录

https://github.com/CalvinAllen/vs4mac-super-clean

用于删除所有 obj 和 bin 目录的 Visual Studio for Mac 扩展。

bUnit-dev/bUnit:bUnit 是 Blazor 组件的测试库,它使测试看起来、感觉起来和运行起来都像常规单元测试。bUnit 使呈现和控制被测组件的生命周期、传递参数和将服务注入其中,触发事件处理程序,并使用内置的语义 HTML 比较器验证从组件呈现的标记。

https://github.com/bUnit-dev/bUnit

使 Blazor 组件更易于测试的库。

  • Blazor 组件测试:原始标记的基本验证

版权声明

  • 国内板块由 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,欢迎大家加入。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/17662.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

msn邮箱在哪里登录?

MSN是微软公司旗下的门户网站,涵盖了我们生活的方方面面,沟通、社交、出行、娱乐等等。下面,我就给大家介绍一下MSN邮箱的登陆方法。如果你也想知道,就一起来详细了解下吧。 1、网页搜索MSN官网将其打开,如果你有账号&…

outlook邮箱收件服务器密码,微软邮箱(hotmail+outlook):应用密码获取+STARTTLS加密...

本文针对hotmail/outlook邮箱的登录进行详细说明 微软邮箱官网(HOTMAIL/OUTLOOK):http://outlook.com # 一、畅邮设置 # 1.1、输入邮箱 # 1.2、输入密码 部分账户开启了 两步验证 ,请使用 应用密码 登陆 # 1.2.1、应用密码 创建新应用密码 创建其他应用密…

微软邮箱(hotmail/outlook):应用密码获取+STARTTLS加密

本文针对hotmail/outlook邮箱的登录进行详细说明 微软邮箱官网(HOTMAIL/OUTLOOK):http://outlook.com 一、畅邮设置 1.1、输入邮箱 1.2、输入密码 请先开启 双重验证 ,请使用 应用密码 登陆 。 1.2.1、双重验证 开启入口&…

hotmail接收邮件服务器(pop),Microsoft微软邮箱 outlook、hotmail 打开pop和imap的方法

分享个微软邮箱 outlook、hotmail 打开pop和imap的方法 只有打开了pop或者imap , foxmail一类的邮件管理客户端才能正常收邮件;打开了smtp才能正常发邮件。 设置方法如图: 1.登录进去账户以后,点击右上角的设置,齿轮图…

ChatGPT爆火 Meta有哪些新举动?

2023年初,人工智能聊天程序ChatGPT爆火,随后国内外众多科技行业巨头都开始纷纷入局人工智能赛道,这其中也包括Meta。近日,Meta创始人扎克伯格宣称正在整合团队力量,致力于构建生成式人工智能。Mete究竟在人工智能领域有…

“目前水平最高”!Meta 挑战 ChatGPT

来源:数据观综合 编辑:蒲蒲 Meta发布全新大型语言模型LLaMA,加入硅谷AI竞赛。 继微软、谷歌之后,Facebook母公司Meta也宣布加入AI军备竞赛。 Meta 推出全新大语言模型 北京时间2月25日,脸书母公司 Meta CEO 扎克伯格在…

《流浪地球》让人细思极恐的是什么?

问:《流浪地球》让人细思极恐的一句话是什么? 答:交通第三交通委提醒您:道路千万条,安全第一条。行车不规范,亲人两行泪。 问:【闪拍生活】APP让人细思极恐的一句话是什么? 答&…

假期观影|《流浪地球》观后感

早上带着儿子一起去看了这场电影,电影里面描述的是不幸的事情,但现在的孩子是幸福的,想想自己这个年龄的时候只有《地道战》《地雷战》《上甘岭战役》还有《铁道游击队》等等爱国教育片。现在他们都是这类科幻大片。科幻题材的电影我看过《后…

北大教授雷奕安质疑《流浪地球》的69个不合理之处

数据猿导读 说不得,摸不得,更打不得!似乎所有人都在小心翼翼地活着、看着,被裹挟着、被引领着、被正确着、被... 来源:科学网博客丨作者:雷奕安 数据猿官网 | www.datayuan.cn 今日头条丨一点资讯丨腾讯丨搜…

从ChatGPT到MOSS,《流浪地球2》是否会照进现实?

要说热点的话,那么2023年开年至今,从流浪地球的MOSS引发的巨大讨论与争议,到ChatGPT的爆火引发的全民跟风热潮,至微软推出的新必应在测试中出现的“暴雷”,一切的舆论,一切的争议,都终归出于“人…

现有大语言模型(ChatGPT)的上下文理解能力还是假象吗?

人工智能的一个重要方面是人机交互智能,人机交互智能的核心在于机器对自然语言的理解,而机器翻译是衡量这种理解的有效方式。 按照目前LLM的技术路线,仅仅靠计算语言形式的概率能否产生人类式理解还是未知,但我们知道人类式理解是…

朋友圈宣传文案 朋友圈产品推广文案模板怎么写?

朋友圈互推,本质是利用异业联盟互换资源的原理; 营销值得学举个在现实生活中常见的例子,大家就能很好的理解,异业联盟互换资源的原理。使用得当,效果便是11>2! 我们院子有个买鸡蛋的大姐,为人实在乐于…

chatgpt赋能python:使用Numpy在Python中进行科学计算

使用Numpy在Python中进行科学计算 对于需要进行科学计算和数据分析的程序员,Python是一个非常有用的编程语言。而Numpy(Numerical Python)则是Python生态系统中最受欢迎和广泛使用的科学计算库之一。该库提供了高效的数组操作,线…

开源的全文搜索引擎总结,chatbot和chatgpt项目必备资源

全文搜索引擎就是通过从互联网上提取的各个网站的信息(以网页文字为主)而建立的数据库中,检索与用户查询条件匹配的相关记录,然后按一定的排列顺序将结果返回给用户。 1、Apache Lucene Java 全文搜索框架 许可证:Apa…

搜索框功能实现

搜索框功能实现 在开发搜索框过程中需要实现两个小功能,技术栈是nuxt.js 功能描述如下功能1:当鼠标聚焦的时候搜索框下方出现热门推荐,如下图所示 功能2:当输入搜索内容的时候,热门推荐消失,出现搜索结果…

input type=search 实现搜索框。

欲实现一个文字搜索的功能,要求输入时,键盘回车按钮提示显示为“搜索”。效果如下: input typetext并不能达到这种效果,google了一下,html5 增加的typesearch可以做到(但需要input typesearch外面包上一层带action属性…

chatGPT网站报错:Sorry,you have been blocked

打开charGPT网站突然进不去,显示:Sorry,you have been blocked. 尝试清理了chatGPT网站的cookie数据,还是不行。 最后解决方法: 关掉网站,换一个VPN国家,再次打开网站,登录进入成功。

一种解决ChatGPT报错“Sorry, you have been blocked“的方法

ChatGPT突然不能用,尝试了网上说的重启V某N,打开隐私模式等方法都不管用。 采用下面方式,解决: 1.打开浏览器的 “设置”。 2.找到语言设置 3.将首选语言改成英语 搞定!

最强绘图AI:一文搞定Midjourney(附送咒语)

最强绘图AI:一文搞定Midjourney(附送咒语) Midjourney官网:https://www.midjourney.com 简介 Midjourney是目前效果最棒的AI绘图工具。访问Midjourney需要科学姿势。 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下…