.NET周刊【8月第5期 2025-08-31】

B站影视 港台电影 2025-09-22 09:39 1

摘要:作者分享了开发独立在线客服与营销系统的经验。经历了多次版本更新,逐渐解决了各种奇怪的问题,如数据库编码错误导致插入失败。初期常出现用户反馈,随着使用人数增加,问题反馈减少。作者阐述了UTF-8与MySQL编码不一致导致的记录丢失,指出MySQL的utf8只支持

字数 5731,阅读大约需 29 分钟

独立开发在线客服系统 5 年,终于稳如老狗了:记录我踩过的坑(一)

作者分享了开发独立在线客服与营销系统的经验。经历了多次版本更新,逐渐解决了各种奇怪的问题,如数据库编码错误导致插入失败。初期常出现用户反馈,随着使用人数增加,问题反馈减少。作者阐述了UTF-8与MySQL编码不一致导致的记录丢失,指出MySQL的utf8只支持三字节字符而emoji需四字节。为解决该问题,建议全面切换到utf8mb4并修改数据库和表结构,以确保兼容性和稳定性。

一个 .NET 开源、功能强大的在线文档编辑器,类似于 Microsoft Word,支持信创!

本文章介绍了DCWriterLite,一个基于.NET的开源在线文档编辑器。它使用XML存储文档,结合Canvas和SVG技术,以克服传统HTML DOM的局限性,提供实时分页和可靠的撤销功能。DCWriterLite适用于多种操作系统,包括Windows和Linux,并支持多行业应用,如医疗、金融和教育。该项目使用Blazor WebAssembly开发,并且可以完全自定义文档结构。文章还提到该项目被纳入C#/.NET优秀项目中,旨在为开发者提供学习和技术分享的平台。

婶可忍叔不可忍的AutoMapper,你还用吗?

AutoMapper是一款功能强大的对象映射工具,但其设计复杂,导致开发者使用不便。本文通过对比AutoMapper与开源项目PocoEmit,指出AutoMapper在类型转换时需要繁琐的配置代码。PocoEmit通过定义静态实例,简化了映射过程,并提高了性能。测试数据显示,PocoEmit在处理嵌套对象和列表时显著快于AutoMapper,特别是在生成委托方面。此外,AutoMapper生成的委托使用复杂,PocoEmit则提供了更友好的接口,减少了开发者的负担。

《HelloGitHub》第 113 期

HelloGitHub 是一个分享有趣开源项目的平台,特别适合对开源感兴趣的用户。它提供多种语言项目的资源,包括 C 和 C#。其中,C# 相关项目包括 PixiEditor,功能全面的 2D 图形编辑工具,以及 TickerQ,这是一款专为 .NET 设计的任务调度库,具备零反射、高性能和实时监控等特性。其他语言项目涵盖 C++、Go 和 Java,提供了多样的工具与功能,适合不同开发者的需求。每月更新内容,持续吸引开源爱好者的关注与参与。

上位机开发之假装有设备,使用 C# 模拟串口设备

本文介绍了如何利用C,用于上位机开发。作者使用了RS-485标准和工具com0com在Windows环境下创建虚拟串口,以便于开发和调试。文章强调了获取详细设备协议文档的重要性,并推荐了一些串口调试工具。通过步骤说明,读者可以在命令行中创建、修改、删除虚拟串口,操作简单明了。文中提供了具体的C,展示了如何实现串口通信,为理论结合实践提供了良好参考。整体内容清晰易懂,适合相关开发人员快速上手。

C# SIMD编程实践:工业数据处理性能优化案例

本文探讨了通过SIMD技术优化工业扫描设备的性能。传统C,而使用SIMD后可缩短至几十毫秒。SIMD(单指令,多数据)利用现代CPU的并行计算能力,同时处理多个数据。文章提供了实战案例,介绍了使用内存映射文件和AVX2指令集的效果,显著提升了最大值、最小值、平均值和方差的计算效率。整体方法提高了生产线的实时检测能力,是传统处理方式的重大技术突破。

开源一套Microsoft Office COM 组件的 .NET 封装

MudTools.OfficeInterop 是一套 .NET 封装库,简化了对 Microsoft Office 应用程序的调用。它降低了 Office COM 组件的复杂性,提供简洁统一的 API,帮助开发者集中精力于业务逻辑。该库实现了自动资源管理和增强的代码可维护性,显著提高了开发效率。用户可以轻松处理 Excel、Word 和 PowerPoint 的基本功能和高级操作。相对于原生 Office Interop,MudTools 提供更强的类型安全和更低的学习成本,是 Office 自动化的有效解决方案。

一款基于 .NET 开源、功能全面的微信小程序商城系统

UrShop是一款基于原生微信小程序和.NET Core技术的开源商城系统,采用GPL-3.0许可证。它包括微信小程序端和后台管理端,功能全面。项目结构清晰,涵盖多种模块,技术栈完备,使用AspNet MVC、WebApi、EntityFramework等关键框架。该项目演示方便,提供详细的功能模块和技术细节。此外,UrShop被纳入C#/.NET优秀项目汇总,促进开发者提高工作效率。项目源码可在Gitee和GitHub获取。

使用c

这篇文章探讨了使用C Generator相较于表达式树实现对象深克隆的性能。作者首先回顾了之前基于表达式树的深克隆实现,包括多种类型的支持。接着,文章定义了测试环境和数据结构,并展示了如何设置Dto的实例。作者意在通过benchmark测试,对比Source Generator与手动深克隆的性能,旨在提供针对性能优化的实用方案。本研究的内容涉及深克隆机制,涉及了多种数据类型的处理,具备较强的实用价值和技术深度。

记一次 .NET 某企业审批系统 崩溃分析

该文章介绍了如何分析C。作者通过讲述一个朋友的真实案例,展示了使用windbg工具分析崩溃信息的过程。文章详细描述了崩溃时的上下文信息和异常记录,包括进程名和异常代码。通过解读堆栈信息,作者指出了造成崩溃的可能原因,强调了全局异常处理的重要性。整体而言,文章具备实用性和技术深度,适合开发者参考,尤其是在处理Windows Forms应用程序崩溃时。

精选 2 款 .NET 开源、实用的缓存框架,帮助开发者更轻松地处理系统缓存!

缓存技术在提升应用响应速度和减轻数据库负载方面至关重要。文章推荐了两款适用于.NET的开源缓存框架。FusionCache 是一个高效的.NET缓存框架,支持多种缓存类型,包括内存缓存和分布式缓存。EasyCaching 提供基本和高级缓存用法,简化了开发者的缓存处理。所有项目都在C#/.NET优秀项目集中,方便开发者获取最新动态和最佳实践,并鼓励大家推荐优秀项目。

聊一聊 .NET 的 AssemblyLoadContext 可插拔程序集

本文探讨了AssemblyLoadContext在崩溃dump分析中的应用,主要用于替代.NET Framework的AppDomain。通过具体示例,展示了如何实现插件的可插拔性。文章详细介绍了IPlugin接口及其实现,同时提供了自定义AssemblyLoadContext的代码实例,演示了如何加载和执行插件。内容结构合理,结合实用案例,适合开发者理解插件系统的实现方式和使用场景。

记一次 .NET 某放射治疗光学定位软件 卡死分析

本文讨论了医疗软件的卡死问题,通过分析主线程的操作来找出原因。文章中展示了使用调试命令获取的堆栈信息,帮助理解程序为何会卡死。主要涉及窗体程序的性能问题,分析实例详细,适用于诊断和解决实际开发中的问题。

记一次 .NET 某人力资源网 CPU爆高分析

这篇文章分析了CPU过高利用率的原因,探讨了dump分析过程。作者分享了使用procdump捕获CPU高峰的方法,强调数据的可信性。文章提到通过!tp命令观察CPU利用率,并利用windbg验证分析数据。作者还讨论了CPU的健壮性,以及在分析时不能完全依赖sos命令。整体分析逻辑清晰,内容技术深度较高,适合有一定基础的读者。虽然背景故事吸引人,但对新手可能较难理解。

C#/.NET/.NET Core技术前沿周刊 | 第 51 期(2025年8.18-8.24)

这篇文章是关于C#/.NET/.NET Core的技术周刊,记录和追踪相关领域的最新技术动态和资源。文章涵盖了多种技术主题,包括耗时监控、UI控件库、Windows搜索工具、泛型集合的比较及WPF与ASP.NET Core的混合应用。内容深入且实用,适合开发者。还提供了相关项目的开源链接。

C++ 与 C 示例 (基于VS2022)

本文介绍了如何在C++动态链接库。首先,在Visual Studio中创建C,然后添加C++动态链接库项目。接着展示了如何定义和导出DLL函数,包括使用extern "C"和模块定义文件的方法。最后,讲解了在C,强调调用约定的重要性。文中提供了详细代码示例,便于读者理解和实现C++的联合开发。

微信 SDK + Senparc.AI + MCP 打造微信 AI 开发助手(二):在 Cursor、VS Code 等 IDE 中自动编写

本文介绍了如何利用Senparc.Weixin SDK、Senparc.AI和MCP来构建微信AI开发助手。首先,阐述了开源微信SDK和MCP的地址。接着,详细介绍了在IDE中配置MCP的方法,包括打开MCP配置、插入微信AI配置等步骤。配置完成后,读者可以通过AI助手快速生成代码,减少编码时间。文章提供了示例代码,展示了如何调用微信SDK保存素材并通知管理员,强调了工具的实用性和便捷性。

如何使用PocoEmit.Mapper替代AutoMapper

PocoEmit是一个高性能的对象转化工具,无需手动配置,能够替代AutoMapper。本文介绍如何获取Mapper实例,包括默认实例和自定义实例的创建。PocoEmit支持简单类型、可空类型、构造函数和属性间的转化,能够简化代码,提高效率和可读性。示例展示了基础类型和枚举的互转,以及可空类型和类构造函数的转化。PocoEmit特别适用于快速实现类型转化,适合开发人员减少重复代码,提高开发效率。

【渲染管线】UnityURP[渲染路径]底层源码解析

该文章深入探讨Unity的可编程渲染管线(URP),介绍了SRP的核心架构和功能,讨论了如何继承RenderPipeline类自定义渲染流程,并详细说明ScriptableRenderContext在C。文章还阐述了管线资源分离机制的实现,以及通过RenderPipelineManager管理渲染生命周期事件的方法。动态渲染策略的运行时切换也有所涉及,强调了其对不同硬件性能的适应性。文章提供了URP的具体实现细节,展示了默认渲染器和渲染路径的定义,具有较高的技术深度和实用性。

使用二次封装的Excel COM 组件操作Excel\WPS ET中的区域、行和列

本文针对开发者提出 Excel 单元格操作的解决方案,重点在高效处理单元格区域、行列数据及数据读写,避免性能问题。介绍了 IExcelRange 接口及其基本操作,包括获取和读写单元格值、设置公式、区域选择、复制粘贴、插入删除单元格及格式设置等。提供了代码示例,内容深入且实用,适合需要提升 Excel 操作效率的开发人员。

WPF+MVVM入门学习

文章主要介绍了WPF的MVVM模式实现,包括自定义实现和使用CommunityToolkit与Prism框架的比较。文中详细诠释了如何创建BaseNotifyPropertyChanged类,以便于UI界面的属性值变化能自动更新。同时,KeyPressViewModel类的创建展示了如何处理输入框的值、光标位置及按钮事件。源代码链接和推荐博主也提供了参考。

Oauth2傻傻分不清楚

本文讲解了Token、Session、Cookie、JWT和OAuth2的概念,旨在帮助读者理解它们的区别与联系。通过餐厅就餐模型引入这些概念,详细解释了Cookie和Session的定义、工作原理及其相关代码示例。Cookie是在浏览器端存储的小段文本,由服务器发送,用于身份识别。Session则存储在服务器端,管理用户的状态信息。文章还提到Cookie的重要属性及安全建议,涵盖HttpOnly、Secure、SameSite和Max-Age的作用。整体上,文章深入浅出,适合有一定基础的读者。也探讨了不同方案在安全性和实用性上的选择。

手算神经网络BP传播算法

本文旨在帮助初学者理解神经网络BP传播算法的手算过程。作者结合个人经历,强调先前对偏导的理解不足,导致对算法的误解。文章通过简化的示意图,介绍仅涉及基本数学概念,避免复杂的矩阵运算。作者假设读者有基本的神经网络知识,提供了具体的输入样本和期望输出,说明如何通过手算得出结果。尽管讨论BP算法显得过时,作者希望重新帮助读者理清思路。整体上,内容通俗易懂,便于初学者入门。

【译】模型上下文协议(MCP)现已在 Visual Studio 中正式发布

模型上下文协议(MCP)现已在Visual Studio中正式发布。MCP为AI开发者提供了一个开放标准,便于连接外部工具和服务。它可以接入数据库、代码搜索等强大功能,支持自定义工作流和企业集成。Visual Studio中新增的MCP客户端集成使连接更方便,并且提供一流的身份验证。新一键安装功能简化了服务器连接流程。通过与GitHub政策集成,企业可更好地控制MCP功能的访问。用户的反馈对MCP的改进至关重要。

【译】增强 Visual Studio 聊天中的代码库感知能力

Visual Studio 最新版本引入了语义搜索功能,提升了代码搜索的效率和准确性。新功能结合了传统的关键词搜索与 AI 模型的深度理解,使得搜索不再仅限于词语匹配,而是能够理解查询的语境和意图。此技术利用向量嵌入,将查询和代码段转化为高维空间中的点,评估它们的语义相似性。开发者可在 Azure DevOps 和已建立索引的 GitHub 仓库中使用此功能,显著提高代码搜索的精准度和智能化。这一转变降低了开发者在复杂代码库中查找信息的难度,改善了用户体验。

【App Service Linux】在Linux App Service中安装 TCPDUMP 并抓取网络包

在App Service for Linux环境中,可使用tcpdump抓取网络包。首先,通过SSH进入应用容器,然后使用apk工具安装tcpdump。执行tcpdump命令以开始抓包,参数设置包括监听所有接口、过滤特定IP和端口、禁止DNS解析并输出详细信息。抓取完成后,使用Ctrl + C停止,并通过Kudu新界面下载抓取的网络包。该过程为网络故障排查提供了有效解决方案。

主题

Visual Studio 中的 AI 路线图(9 月) - Visual Studio 博客

Aspire CLI 入门 - .NET 博客.NET 10 预览版现已在 Azure 应用服务上推出! • 3.7.1111.0[6], 3.7.1112.0[7], 3.7.1113. 0[8]、 3.7.1114.0[9]、 3.7.1115. 0[10], 4.0.79.0[11], 4.0.80.0[12]、 4.0.81.1[13]、 4.0.82.0[14])、 4.0.83.0[15]• Azure.Communication.PhoneNumbers_1.5.0[21], Azure.Developer.Playwright_ 1.0.0[22], Azure.Developer.Playwright.NUnit_1.0. 0[23], Azure.Provisioning.RedisEnterprise_1.0. 0[24], Azure.ResourceManager.NetApp_1.12. 0[25], Azure.ResourceManager.StorageCache_1.3. 2[26]• 社区工具包/Aspire[28]• domaindrivendev/Swashbuckle.AspNetCore[32]• dotnet/aspire[35]• googleapis/google-cloud-dotnet[37]- Google.Cloud.BigQuery.AnalyticsHub.V1-1.10.0[38], Google.Cloud.BigQuery.Reservation.V1-2.9.0[39], Google.Cloud.Compute.V1-3.14.0[40], Google.Cloud.Compute.V1-3.15. 0[41]、 Google.Cloud.ConfidentialComputing.V1-1.9。 0[42]、 Google.Cloud.Config.V1-1.9。 0[43]、 Google.Cloud.TextToSpeech.V1-3.13。 0[44]、 Google.Cloud.Video.Transcoder.V1-2.11。 0[45]、 Google.Shopping.Merchant.Accounts.V1-1.1。 0[46]• open-telemetry/opentelemetry-dotnet-contrib[48]让 Copilot 编码代理处理繁忙的工作 - .NET 博客如何在 .NET 中处理来自 Debezium 的消息

我尝试了 MCP 扩展的 Azure Functions 支持,自发布以来 - Shibayan Miscellaneous Notes

[C#] 渴望原语和自定义资源。 - 尼诺的花园。

Windows 社区工具包已有 9 年历史! · CommunityToolkit Windows · 讨论

.NET | 2025 年 9 月 | .NET Tools 博客

使用可重用的提示文件促进 Copilot 协作 - Visual Studio 博客

我检查了 .NET MAUI 源代码中 Entry →本机控制流使用和创作 .NET 工具人工智能驱动的库生成的潜力:“TDoubles”的发展所见的挑战与未来[Blazor] 如何在 Blazor 中设置必需参数

如何在 .NET 中使用 Azure OpenAI 的响应 API 第 2 部分“使用 IChatClient”

.NET 中的 IOptions 与 IOptionsSnapshot 与 IOptionsMonitor — 有什么区别?

https://medium.com/@alexbel83/ioptions-vs-ioptionssnapshot-vs-ioptionsmonitor-dotnet-6f2305b09770

Windows UAC 和 VirtualStore

在 .NET 中执行 OpenTelemetry 的最简单方法:OTLP + Collector

OData .NET (ODL) 9 预览版 - OData如何在 .NET 中使用 Azure OpenAI 的响应 APIChip-8 WASM 仿真器[C#] 校验和/哈希算法实用指南

在 Playwright C# 中拦截和模拟 API 请求 | Web 测试示例

C# 15 联合 - NDepend 博客[C#] 尝试使用 MagicOnion 的 Json转码内存优化以降低 CPU 成本

https://ayende.com/blog/203011-A/memory-optimizations-to-reduce-cpu-costs?Key=77d4c0db-6b32-4914-916e-d181ee2cfd95

使用新的 WebView2 AllowHostInputProcessing 键盘映射功能

C# 14.0 中的新增功能现代的加密通信 - QiitaWPF/MVVM 的实用“全局异常处理”设计与实现 - Qiita

创建一个 AI 聊天客户端并在那里使用 MCP 客户端/服务器 - 奇塔

从命令提示符使用 COM 组件构建 C# 应用程序

EFCore.Visualizer - 在 Visual Studio 中查看实体框架核心查询计划 - .NET 博客

ReSharper 的新进程外引擎将 Visual Studio 中的 UI 冻结时间缩短了 80% | .NET Tools 博客

公共预览版:Roslyn Analyzer for Durable Functions in .NET Isolated | Azure 更新 | Microsoft Azure

https://azure.microsoft.com/en-us/updates?id=500473

kekyo/nuget-server:简单模式化的 NuGet 服务器

mehrandvd/skunit:skUnit 是 AI 单元的测试工具,例如 IChatClient、MCP Servers 和 SK 内核。

Claude Elwood Shannon(1916年4月30日—2001年2月24日)是美国数学家、电子工程师与密码学家,被誉为信息论之父,奠定了现代数字通信和信息时代的理论基础1[51]。

他出生于美国密歇根州佩托斯基,在盖洛德长大,父亲是法庭遗嘱认证律师,母亲是德裔移民后裔、语言教师及高中校长2[52]。少年时期兴趣广泛,曾自制模型飞机和无线电通信系统,被发现是发明家托马斯·爱迪生的远亲2[53]。

1936年,香农同时获得密歇根大学数学与电气工程双学士学位3[54]。此后进入麻省理工学院(MIT)攻读研究生,师从Vannevar Bush,并在1938年以硕士论文《继电器与开关电路的符号分析》开创性地将布尔代数与继电器电路结合,为数字电路和计算机发展奠定基础2[55]。

二战期间,他在贝尔实验室工作,从事防空系统和加密通信设备研究,其成果用于保护盟军高层通信安全1[56]1948年,香农发表划时代论文《通信的数学理论》(A Mathematical Theory of Communication),提出信息熵概念,奠定信息论框架,开创了数据压缩与纠错码等技术的理论基础3[57]除学术贡献外,香农还因热衷发明而著称,创造了会骑独轮车的机器人、机械杂耍机、西洋棋对弈程序等,被称为“科学界的大玩具家”2[58]他一生获奖无数,包括1972年首届IEEE香农奖以及1985年京都奖基础科学奖1[59]。晚年罹患阿尔茨海默症,逐渐淡出公众视野,并于2001年在马萨诸塞州逝世,享年84岁1[60]克劳德·香农(Claude Shannon),C# .NET,LOGO,高大上

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

• 如何找到.NET性能瓶颈,如使用APM、dotnet tools等工具

• .NET框架底层原理的实现,如垃圾回收器、JIT等等

• 如何编写高性能的.NET代码,哪些地方存在性能陷阱

希望能有更多志同道合朋友加入,分享一些工作中遇到的.NET问题和宝贵的分析优化经验。目前一群已满,现在开放二群。可以加我vx,我拉你进群: ls1075另外也创建了QQ Group: 687779078,欢迎大家加入。

引用链接

[1]AvaloniaUI/AvaloniaUI:

[2]

[3]11.3.5:

[4]aws/aws-sdk-net:

[5]aws/aws-sdk-net:

[6]3.7.1111.0:

[7]3.7.1112.0:

[8]3.7.1113. 0:

[9]3.7.1114.0:

[10]3.7.1115. 0:

[11]4.0.79.0:

[12]4.0.80.0:

[13]4.0.81.1:

[14]4.0.82.0:

[15]4.0.83.0:

[16]Azure/azure-cosmos-dotnet-v3:

[17]

[18]3.53.1:

[19]Azure/azure-sdk-for-net:

[20]

[21]Azure.Communication.PhoneNumbers_1.5.0:

[22]Azure.Developer.Playwright_ 1.0.0:

[23]Azure.Developer.Playwright.NUnit_1.0. 0:

[24]Azure.Provisioning.RedisEnterprise_1.0. 0:

[25]Azure.ResourceManager.NetApp_1.12. 0:

[26]Azure.ResourceManager.StorageCache_1.3. 2:

[27]社区工具包/Aspire:

[28]社区工具包/Aspire:

[29]v9.7.1:

[30]v9.7.2:

[31]domaindrivendev/Swashbuckle.AspNetCore:

[32]

[33]v9.0.4:

[34]dotnet/aspire:

[35]dotnet/aspire:

[36]v9.4.2:

[37]googleapis/google-cloud-dotnet:

[38]Google.Cloud.BigQuery.AnalyticsHub.V1-1.10.0:

[39]Google.Cloud.BigQuery.Reservation.V1-2.9.0:

[40]Google.Cloud.Compute.V1-3.14.0:

[41]Google.Cloud.Compute.V1-3.15. 0:

[42]Google.Cloud.ConfidentialComputing.V1-1.9。 0:

[43]Google.Cloud.Config.V1-1.9。 0:

[44]Google.Cloud.TextToSpeech.V1-3.13。 0:

[45]Google.Cloud.Video.Transcoder.V1-2.11。 0:

[46]Google.Shopping.Merchant.Accounts.V1-1.1。 0:

[47]open-telemetry/opentelemetry-dotnet-contrib:

[48]

[49]Instrumentation.AWS-1.12.1:

[50]使用 skUnit 测试 MCP 编排:

[51]1:https://zh.wikipedia.org/zh-hans/克劳德·香农

[52]2:https://case.ntu.edu.tw/blog/?p=36957

[53]2:

[54]3:https://baike.baidu.com/item/克劳德·艾尔伍德·香农/10588593

[55]2:

[56]1:

[57]3:

[58]2:

[59]1:

[60]1:

来源:opendotnet

相关推荐