国内文章
推荐 3 种 .NET Windows 桌面应用程序自动更新解决方案
https://www.cnblogs.com/Can-daydayup/p/18927721
本文介绍了在快速迭代的软件开发环境中为 .NET Windows 桌面应用程序实现自动更新功能的重要性。作者分享了三种解决方案:ClickOnce、AutoUpdater.NET 和 Squirrel.Windows。ClickOnce 是微软的部署技术,支持用户交互最少的自更新应用;AutoUpdater.NET 是一个适用于传统 WinForms 和 WPF 应用的开源库;Squirrel.Windows 为 Windows 应用程序提供全方位的安装和更新管理工具。文中还推荐了相关的 GitHub 开源地址以供参考。
C#实现语音预处理:降噪、静音检测、自动增益(附Demo源码)
https://www.cnblogs.com/zhuweisky/p/18936492
这篇文章讨论音视频系统中语音数据预处理的重要性,主要涉及降噪、静音检测和自动增益三个方面。降噪消除背景噪声,静音检测识别无声片段以节省带宽,自动增益动态调整音量以保持输出稳定。文章还提供了一个C#实现Demo,展示如何从麦克风采集声音数据并进行预处理,包含代码实现细节和功能控制。该技术在音视频处理领域具有实用性和创新性。
.NET 10 支持Linux/Unix 的Shebang(Hashbang)
https://www.cnblogs.com/shanyou/p/18930500
本文介绍了.NET 10 Preview 5中C#的Shebang支持,包括其原理、使用方法及实际应用场景。Shebang标记告诉操作系统如何执行脚本,简化了C#脚本的运行。通过在文件首行添加#!/usr/bin/dotnet run,用户可以直接运行C#文件,提高了代码验证与开发效率。文章强调该功能在Linux/Unix系统的兼容性,但在Windows需显式调用dotnet run。实际应用包括自动化脚本、快速原型验证等。文章指出该功能降低了C#语言的学习门槛,展望未来将增加对多文件和Windows的支持。
Visual Studio 2022 中的 EF Core 反向工程和模型可视化扩展插件
https://www.cnblogs.com/Can-daydayup/p/18929377
本文介绍了EF Core Power Tools,这是一个基于C#的开源插件,用于在Visual Studio 2022中进行EF Core反向工程与模型可视化。该工具支持多种数据库,提供反向工程、迁移、模型可视化等功能,旨在降低EF Core的使用难度。用户可以通过友好的图形界面选择数据库对象并保存配置。文章还提供了安装链接和项目源代码,以及对使用EF Core的开发者的支持,并激励社区互动。总体来看,文章内容清晰且实用,适合开发者参考。
dotnetty 新的篇章- 开源
https://www.cnblogs.com/fanliang11/p/18938169
本文介绍了基于.NET8.0的surging微服务引擎,强调了对dotnetty组件的依赖以及其扩展情况。作者发布了开源代码,并提供了相关测试服务器信息和物联网平台的功能说明。文中提到了多协议适配能力和设备管理功能,能够支持异步编程开发。此外,本文涉及了IValueTaskPromise接口的扩展,展示了具体代码实现,为开发者提供了有价值的参考。
如何给 GitHub Copilot "洗脑",让 AI 精准遵循指令产出高质量代码
https://www.cnblogs.com/cuipengfei/p/18933709
本文探讨了如何有效引导AI编程助手GitHub Copilot,以提高代码质量。文章指出,虽然AI能加速编码,但生成的代码常常缺乏规范与错误处理。作者提出,通过一系列明确的指令集合,AI可以遵循软件工程的最佳实践,从而生成结构清晰、可维护的代码。这些指令涵盖核心行为、代码质量标准、流程模板和工具使用等方面,并强调了角色扮演和自我批判在提升代码质量中的重要性。最后,作者提供了在VS Code中配置指令的简单步骤。
记一次 .NET 某SaaS版CRM系统 崩溃分析
https://www.cnblogs.com/huangxincheng/p/18931014
文章讲述了一位学员在k8s中调试程序崩溃问题的经历。通过分析崩溃原因,发现是终结器线程抛出了空引用异常。作者使用调试命令进行了解析,展示了如何从崩溃的调用堆栈和异常信息中获取重要线索。这为读者提供了有价值的调试思路和实用技巧,体现了Linux下崩溃分析的复杂性。
[原创]《C#高级GDI+实战:从零开发一个流程图》第03章:画一个线,连接两个矩形!
https://www.cnblogs.com/lesliexin/p/18923105
本文介绍如何在两个矩形之间添加直线,强调代码与原理图的联系,设计过程分为三个步骤。首先,用户通过视频直观了解效果,并在代码中实现相关功能。接着,讲解了通过计算矩形中心点坐标来绘制连线的方法,以及在鼠标移动时如何重绘这些连线。最终提供完整代码供用户参考和编译。整体课程依托前一节的基础,使学习更加系统。
记一次 .NET 某无语的电商采集系统 CPU爆高分析
https://www.cnblogs.com/huangxincheng/p/18936554
文章通过讲述朋友在使用docker时遇到CPU高负载问题,引入对CPU性能的分析方法。在Windows和Linux环境中,分别介绍使用!important 和 !eeheap命令来观察CPU和堆的情况,详细说明了如何获取GC堆的数量和相关信息。这些步骤可以帮助分析和解决CPU高负载问题,具有一定的实用性和技术深度。
.NET 10 引入 后量子密码学 (PQC)
https://www.cnblogs.com/shanyou/p/18932238
.NET 10 预览版 5 引入了对后量子加密(PQC)的支持,旨在保护应用程序免受未来量子攻击的影响。PQC 采用新型加密算法,以抵御量子计算机的破解。虽然量子计算机尚未普及,但提早转向量子安全加密至关重要。Microsoft 在其核心库中添加了三种 P QC 算法,供开发人员执行安全密钥交换和数字签名等任务。该功能目前为实验性,仅支持 OpenSSL 3.5 及以上版本。PQC 的标准化也在其他科技公司中迅速推进,行业正朝着在主要平台上应用这一新标准的方向发展。开发人员需关注这一转变,以更好地保护未来的应用程序。
DotTrace系列:1. 理解四大经典的诊断类型(上)
https://www.cnblogs.com/huangxincheng/p/18938244
这篇文章介绍了JetBrains的DotTrace工具,强调其在.NET开发中的重要性。DotTrace支持跨平台诊断,兼容dotnet-trace生成的nettrace,具有优秀的可视化界面和自我托管能力。文章详细阐述了Sampling模式,用于分析程序性能,提供了一个简单的矩阵运算示例,演示如何在性能分析中使用该工具。整体上,文章逻辑清晰,内容深刻,是学习调试的重要资料。
(原创)[C#]一步步解决DotNetZip因超长路径(MAX_PATH)报错的问题。
https://www.cnblogs.com/lesliexin/p/18930533
本文探讨了超长路径(MAZ_PATH)问题的解决方案,重点使用DotNetZip库为例进行详细分析。文章分析了ZipEntry.AddDictionary()方法的操作,并通过反射对LocalFileName属性进行了深入探讨。为了避免超长路径问题,作者介绍了修复步骤和相应的代码逻辑。本文还提及DotNetZip的开源状态及其易用性,并分享了自己的开源项目,旨在为读者提供实用的解决策略。文章对超长路径问题进行了清晰而具体的阐述,适合开发者参考。
C# 异步编程:从 async/await 到 Task 并行库的全面解析
https://www.cnblogs.com/powertoolsteam/p/18932383
本文探讨C#中的异步编程,强调async/await和Task并行库的重要性。引言部分说明处理高并发和耗时操作的必要性,正文详细解释了异步编程的基本概念和实现方式,展示了async和await关键字的用法以及Task类的创建和管理。示例代码清晰地演示了异步方法的执行过程,强调了不阻塞主线程的重要性。整体内容系统全面,为开发者提供了实用的知识。文章深度和实用性较强,语言清晰易懂,具有一定的原创性和时效性。
纯C#软实现openGL(V0.1),黑盒变白盒
https://www.cnblogs.com/bitzhuwei/p/18889282/openGL-implementation-in-pure-CSharp
本文介绍了纯C#实现OpenGL的重要性以及具体方法。作者详细阐述如何通过创建SoftGL类实现OpenGL API,包括生成缓冲区和绘制元素的函数。文章强调了现代OpenGL中Shader的重要性与其并行计算特性,并讨论了如何让Shader运行的流程,包括解析Shader字符串、转换为C#代码并动态编译以模拟GPU运行。文中还探讨了提升效率的策略,清晰地描述了渲染管道的每一步。
记录.Net 8 发布增加 PublishTrimmed 裁剪选项,调用WMI 的ManagementObject 异常
https://www.cnblogs.com/wuty/p/18931865
本文介绍了如何在.NET 8环境中通过WMI查询BIOS序列号,并分析了在发布独立部署时启用裁剪选项所造成的问题。文章首先提供了使用System.Management库的代码示例,随后解释了裁剪选项可能导致的功能禁用,并提出了使用Microsoft.Management.Infrastructure库替代WMI作为解决方案。作者提供了修改后的代码示例,显示如何创建CIM会话进行查询。整体内容较为实用,贴近当前开发需求,适合开发者参考。
C# 将 CSV 转化为 Excel
https://www.cnblogs.com/powertoolsteam/p/18934279
本文介绍了如何在 C# 中将 CSV 文件转换为 Excel 文件的具体步骤。首先,创建一个控制台应用程序项目并读取 CSV 文件。接着,使用 EPPlus 库创建 Excel 工作簿,并将读取到的 CSV 数据逐行写入 Excel 表格。最后,保存 Excel 文件到指定路径。文中提供了详细代码示例,并提示注意事项,如设置许可上下文和文件路径的正确性。这一过程利用了 C# 的文件操作功能,使数据处理更为高效,适合需要在 Excel 中进一步分析数据的用户。
非常'肤浅'的理解MVVM
https://www.cnblogs.com/lvpp13/p/18934961
这篇文章讲述了写代码时的思维方式与简洁性。作者接到一个简单需求,判断数据首字母是否为A,初始代码被领导批评。作者向一位同事请教后,意识到代码可读性更重要。通过比较普通赋值与MVVM模式的实例,作者强调了用简洁的代码表达意图能减少他人的思考负担。最终,作者通过改进思路赢得了领导的认可,得到了更好的机会。
VKProxy新增速率限制功能
https://www.cnblogs.com/fs7744/p/18937649
VKProxy是使用C#开发的L4/L7代理,支持速率限制功能。速率限制控制请求流,防止滥用,确保公平使用,保护资源和增强安全性。该功能在ASP.NET Core中已有实现,通过System.Threading.RateLimiting NuGet包可以使用。VKProxy提供四种速率限制算法:并发、固定窗口、滑动窗口和令牌桶。并发限制器限制并发请求数,是一种独特的算法。此外,VKProxy还允许配置速率限制策略以适应不同场景,提升应用性能和安全性。
基于 C# 和 .NET 的 Spread.NET 数据处理实战
https://www.cnblogs.com/powertoolsteam/p/18930958
本文介绍了 Spread.NET,这是 GrapeCity 专为 .NET 平台设计的表格控件,旨在提高数据处理效率。Spread.NET 提供丰富的功能,包括数据绑定、单元格样式、公式计算及数据验证。开发者可以通过 Visual Studio 安装 Spread.NET,通过 NuGet 管理器轻松集成。此外,文中提供了示例代码,展示如何将 DataTable 绑定到表格中并进行数据编辑与验证,帮助开发者掌握这一工具,提升数据处理能力。
DotTrace系列:2. 理解四大经典的诊断类型(下)
https://www.cnblogs.com/huangxincheng/p/18942584
本文介绍了Timeline诊断类型,强调其在实际应用中的重要性。作者通过示例代码演示了矩阵乘法的性能测试,涉及的内容包括线程栈数据、ETW事件和TPL数据等。代码展示了如何生成随机矩阵并计算矩阵乘法,记录运算时间。文章简洁明了,适合开发者理解和应用。
03 - LayoutPanels例子 - SimpleInkCanvas
https://www.cnblogs.com/dalgleish/p/18938264
C# maui目前不支持InkCanvas,但可以自行实现。实现包括绘图、选择、移动和删除功能,并支持自定义橡皮擦和形状列表。通过Converter类进行类型转换,简化绑定逻辑。在XAML中引用Converter,使所有项目可用。在InkCanvas类中,重写GraphicsView与IDrawable接口,可创建自定义绘图路径,管理颜色、粗细和选择状态。
【好用推荐】免费在线图片压缩工具,附源码
https://www.cnblogs.com/shenchuanchao/p/18939675
这篇文章介绍了一个在线图片压缩工具,作者讲述了自己在处理大文件时的困扰,并设计了该工具以提高用户的便利性和安全性。用户可以通过上传图片并调整压缩质量来压缩图片,支持多种格式(JPEG、PNG、GIF、WebP、BMP)。技术实现方面,前端使用Fetch API发送文件请求,后端使用ASP.NET Core处理文件。文章还提供了详细的使用说明和源码链接,充分展示了工具的功能和操作简便性。
.Net 9.0环境下WebApi发布到IIS
https://www.cnblogs.com/mytudousi/p/18940865
本文详细介绍了在Visual Studio和IIS中发布Web API的步骤。首先,在Visual Studio中,通过设置发布参数,如发布目录、目标框架和发布模式,便可完成发布准备。同时,文章提到在IIS中需安装.NET 9.0和ASP.NET Core运行时,为Web API的顺利运行提供支持。接着,创建应用程序池,设置网站路径及端口,并测试API是否成功发布。最后,指引用户解决访问问题,确保应用可以正常访问。内容清晰,逻辑严谨。
Model Context Protocol C# SDK v0.3.0-preview.1 版本发布
https://www.cnblogs.com/shanyou/p/18942263
Model Context Protocol (MCP) 是一种开放标准,旨在实现大型语言模型(LLM)与外部数据源的集成。v0.3.0-preview.1 版本带来了异常捕获、网络错误反馈及可选日志集成功能,提升了开发者调试和监控的能力。MCP 为开发者提供标准化的方法,确保不同实现间的兼容性,减轻了开发负担。此版本的 SDK 兼容 .NET 技术,支持快速集成上下文感知模型调用与数据流转。该版本展示了 MCP C# SDK 的持续发展,鼓励 .NET 开发者使用并反馈,以推动生态发展。官方发布说明提供更多细节。
基于 C# 编写的轻量级工控网关和 SCADA 组态软件
https://www.cnblogs.com/Can-daydayup/p/18943217
SharpSCADA是一个用C#开发的开源工控网关和SCADA组态软件。它旨在满足工业自动化和监控需求,支持多种工业协议,如Profinet、EtherNet/IP、Modbus及OPC。功能包括实时数据采集、历史数据归档和报警功能,并提供简单的配置工具。用户可在Visual Studio中进行开发,支持多版本.NET Framework。安装和使用说明详实,用户可以直接测试源代码和可执行文件。该项目在GitHub上开源,并被收录在C#/.NET相关优秀项目中。
本周国际周刊未更新
C# .NET 交流群
相信大家在开发中经常会遇到一些性能问题,苦于没有有效的工具去发现性能瓶颈,或者是发现瓶颈以后不知道该如何优化。之前一直有读者朋友询问有没有技术交流群,但是由于各种原因一直都没创建,现在很高兴的在这里宣布,我创建了一个专门交流.NET性能优化经验的群组,主题包括但不限于:
- 如何找到.NET性能瓶颈,如使用APM、dotnet tools等工具
- .NET框架底层原理的实现,如垃圾回收器、JIT等等
- 如何编写高性能的.NET代码,哪些地方存在性能陷阱
希望能有更多志同道合朋友加入,分享一些工作中遇到的.NET问题和宝贵的分析优化经验。目前一群已满,现在开放二群。 可以加我vx,我拉你进群: ls1075 另外也创建了QQ Group: 687779078,欢迎大家加入。