LTEF 工艺试验测控场景,涉及多种工艺设备、阀门、温控仪表、传感采集单元,设备品牌杂、通信协议异构,涉及到23类 设备或仪表,需要完成实时数据采集、工艺流程自动控制、工况监测预警、过程数据存储回溯、可视化组态展示完整测控闭环。实现50毫秒的数据采集、100毫秒反向控制。反向控制包括单点控制和工艺过... ...
本文为MQTT系列开篇,结合8年实战经验,剖析物联网接入层为何普遍选择MQTT:低功耗、发布订阅模型、QoS保障及断线恢复能力。揭示项目中高频踩坑:QoS误配、CleanSession配置错误、ClientId冲突、心跳失效等真实问题。提出从协议基础到生产落地的六阶段学习路线,聚焦.NET生态与工程... ...
一、问题背景 在 WPF 开发中,我们经常用 `ShowDialog()` 显示模态弹框。某天产品提了一个需求:**后台命令触发时,可能同时弹出多个对话框**。 直觉上,连续调用两次 `Show` 就行: _customWindowService.Show(dialog2); // 弹第一个 _cu ...
控制器返回值解惑:ActionResult 隐式转换与 JsonResult 的差异 [!NOTE] ✏️ 原理 这是 ASP.NET Core 控制器返回值的核心知识点:方法声明返回 ActionResult<TResponse> 时,可以直接返回泛型实体 TResponse,底 ...
众所周知 Satori GC 是 .NET 上兼具高吞吐、低延时和低占用的 GC。为了更方便地在项目里使用 Satori GC,我把 Satori GC 封装成了 MSBuild SDK 并传到了 nuget 上,这样就能通过仅仅一行代码在发布时启用 Satori GC 了。 对于 .NET 10, ...
在实际应用开发中,可能UI框架的默认控件,已经不能满足实际的应用需求,或者某些功能被大量的重复应用,如果每一个使用的地方都书写大量的重复代码,则不仅会浪费精力,且让维护变得复杂,此时就需要将包含特定功能的部分封装成控件,便于重复使用。自定义控件就像造轮子,轮子造好以后,别的地方可以一键复用。今天我们... ...
人天生有一种能力——信息过滤。只要不是废物都具备这种能力,不需要算法和数据。生物许多行为是本能反应,深深刻进潜意识里。这就是人与机器的本质区别。机器在某些方面一旦没有相关的程序和算法支持,它就是废铁。 日志消息是给人看的,所以,过滤功能必不可少。即应用程序可以根据配置记录或不记录某些日志。 日志级别 ...
一、 前言 本文讲解在C#.NET源生成器中生成类的字段、属性、方法及参数和变量标识符的命名处理方式 二、 C# 命名规则 1. CamelCase(小驼峰) 首字母小写,后续单词首字母大写 参数和变量适用 私有字段使用下划线 + 小驼峰 2. PascalCase (帕斯卡、大驼峰) 首字母大 ...
本文介绍如何用 wherewhere 大佬开源的 DotNetHost.Win32Metadata 库,在 C# 里直接调用 hostfxr 的原生 hosting API,让 .NET Framework 4.8.1 宿主和 Native AOT 宿主都能加载并运行 .NET 10 的托管组件 ...
Logging 属于 .NET 官方扩展库的一部分,因此,它不算第三方库。应某大伙伴要求,老周出一系列介绍 Logging 的水文。老周向来乐于分享技术,啥主题不重要,只要老周会的东西就行;不会的东西,老周就不误人子弟。 Logging 库嘛,当然是用来记录日志的。从功能上而言,它不会太复杂。为了照 ...
本文介绍我维护的实验性 WPF 运行时发行项目 WpfRuntime,它把一套 WPF 的参考程序集、实现程序集以及必要的运行时文件打包成 NuGet 包,让 .NET 8 及以上的 WPF 应用可以提前体验尚未发布的 WPF 新功能。有伙伴有空来帮我试验一下没 ...
一:背景 1. 讲故事 好久都没写文章了,看现在各个社区大多都是AI写的文章,劣币驱除良币,文字这块算是沦陷了,没多少 passion to continue,但遇到一些经典的还是会人肉堆一堆,这篇我们就来分析一个内存暴涨的例子,这是一个朋友在微信上找到我的,有一个linux上的.NET程序,内存在 ...
在实际应用开发中,可能UI框架的默认控件,已经不能满足实际的应用需求,或者某些功能被大量的重复应用,如果每一个使用的地方都书写大量的重复代码,则不仅会浪费精力,且让维护变得复杂,此时就需要将包含特定功能的部分封装成控件,便于重复使用。自定义控件就像造轮子,轮子造好以后,别的地方可以一键复用。今天我们... ...
本次更新iNeuOS V5.6 版本,主要迭代聚焦安全加固、缺陷闭环、性能提升与风险管控等方面。完成大量安全漏洞、租户隔离、业务逻辑类缺陷修复,强化系统身份鉴权与数据访问防护能力,解决越权访问、SQL 注入、资源泄漏等风险。同时针对报表设计、表单设计、视图建模(WEB组态)、远程命令控制、桌面窗口和... ...
在文档安全管理中,通过编程控制 PDF 的访问权限(如禁止打印、禁止复制等)是常见需求。本文使用 Free Spire.PDF for .NET 免费库,基于其 PdfSecurityPolicy 类,介绍如何用简洁的 C# 代码完成权限设置。 两种密码的角色 用户密码(User Password) ...
一 简介 1.1 AScript AScript是一个开源的C#动态脚本解析执行引擎,支持自定义语法,支持扩展多种脚本语言(目前已支持C#/Python3/SQL/JavaScript/Lua五种语言),支持解释执行和编译执行两种执行模式,并且支持编译缓存。 目前官方最新版本:1.7.2 开源地址: ...
AScript是一个开源的C#动态脚本解析执行引擎,支持解释执行和编译执行两种模式,本篇介绍AScript中如何编译脚本中的递归函数。 一 解析函数 我们先来看个脚本: 1 int fib(int n) { 2 if (n <= 1) return n; 3 return fib(n - 1) + ...
在实际应用开发中,滑块控件主要用于拖动滑块调整当前的阈值,如拖动调整颜色范围;上下控件主要用于通过点击上下按钮切换数值或选项,它们所需要的空间更少,操作更方便。合理的利用滑块控件和上下控件进行布局,还可以起到事半功倍的效果,今天我们以一些简单的小例子,简述基于.NET的Windows窗体编程中Tra... ...
在实际应用开发中,有时候需要操作本地文件或文件夹,还需监控磁盘目录的变化,比如当新增或删除文件时,提示变更信息,以起到警示作用。合理的文件监控,还可以起到事半功倍的效果,今天我们以一些简单的小例子,简述基于.NET的Windows窗体编程中FileSystemWatcher控件的相关应用,仅供学习分... ...
1. DTO含有大量重复代码 1.1 实体类Comment代码如下 /// <summary> /// 评论 /// </summary> /// <param name="id"></param> /// <param name="createTime"></param> public class ...