“Windows开发”标签的文章
带有“Windows开发”标签的文章共 31 篇,按发布日期从新到旧排列。
-
Windows的「内存使用量」究竟表示什么 ── 正确解读 Working Set・Private Bytes・Commit・页面文件
任务管理器中的内存、Working Set、Private Bytes、Commit并不是同一个值。本文讲解Windows虚拟内存与物理内存的关系、页面文件的作用,以及在排查内存不足或泄漏时应该关注的指标。
-
在 Windows 应用中处理 USB 设备的方法 ── 虚拟 COM、HID、WinUSB、专用 SDK 该如何选择
从 Windows 应用控制装置和 USB 设备的方法,按虚拟 COM 端口、HID、WinUSB、供应商 SDK 四种方式进行比较。从是否需要安装驱动程序、多台连接时的识别、拔插追踪,到性能上限,都以实务视角进行梳理。
-
业务系统的编码设计 ── 商品编码・客户编码的确定方法与校验位
确定商品编码・客户编码等业务系统编码体系的实践指南。整理了有意义编码与无意义流水号的判断表、JAN・Luhn等校验位算法及C#实现、Excel开头零丢失的应对方法,直至位数溢出与迁移。
-
故障处理不止于恢复 ── 写给小型开发团队的 Postmortem(再发防止)实践模板
把故障处理停留在「修复、道歉,就此结束」,同样的故障就会反复发生。本文把 blameless postmortem 翻译给小型团队使用,整理出可在 1 小时内写完的模板、再发防止策略的强度判断表,以及实施的分级(triage)标准。
-
业务应用数据库架构的版本管理 ── 防止「每个客户数据库都不一样」的迁移实践
一份为分散在各客户处的业务应用数据库架构做版本管理的实践指南。整理了 PRAGMA user_version 与前向迁移的 C# 实现、EF Core Migrations・DbUp・自行实现的判断表,以及两阶段发布策略。
-
WinForms / WPF 应用的 CI/CD 实践 ── 用 GitHub Actions 实现从构建到签名、发布的自动化
一份用 GitHub Actions 搭建 WinForms / WPF 应用 CI/CD 的实务指南。整理了在 windows-latest 上构建+测试的最小 YAML、标签驱动的版本编号、集成 signtool 完成签名,以及按 MSI/MSIX/ClickOnce/xcopy 划分的 CI 集成判断表。
-
当自研 Windows 应用被 Microsoft Defender 判定为病毒 ── 误报处理与性能影响应对指南
本文整理自研 Windows 应用被 Microsoft Defender 误报时的正规处理方法:现代杀毒软件的判定机制、向 Microsoft 提交误报、从隔离中恢复文件,以及正确设置排除项及其风险。
-
睡眠、休眠、Modern Standby 与长时间运行应用 ── 用设计防止「夜里意外停止」
本文从 S3 睡眠、休眠、Modern Standby 的区别入手,整理长时间运行的 Windows 应用为何会出现「早上一看已经停止」的原因,并讲解睡眠期间计时器与 TCP 连接的行为,以及如何用 SetThreadExecutionState 进行抑制。
-
MAX_PATH 与 Windows 路径・文件名的陷阱 ── 260 字符限制、保留名称、末尾句点、大小写
梳理导致「找不到文件」的经典原因 ── 路径与文件名的各种限制。本文解析 MAX_PATH=260 的构成、通过 LongPathsEnabled 启用长路径、CON 等保留名称、末尾句点的规范化处理,以及 Path.Combine 的陷阱。
-
Windows 应用不适合 Web 化的情形 ── 判断表与「拆分」这一现实解法
「想把公司内部的 Windows 应用改造成 Web」的需求正在增加,但对于涉及设备联动、本地文件处理、离线运行、高速录入界面的应用来说,Web 化反而可能带来成本上升与功能劣化。本文从 Windows 委托开发的实务视角,整理出适合与不适合 Web 化的判断表,并提出「不是全部 Web 化,而是只把一部分放到 ...
-
用 PerfView 与 dotnet-trace 定位“变慢”的原因 ── .NET 性能排查实务入门
当业务应用出现“变慢”“CPU 占满”“偶尔卡死”时,该用哪个工具看什么?本文梳理 PerfView 与 dotnet-trace 的分工、CPU 采样的解读方法(inclusive/exclusive)、用 ThreadTime 排查阻塞时间,以及与 EventSource 自定义事件的组合使用,整理出一套实务...
-
Windows 事件日志・ETW 入门 ── 让业务应用程序的日志接入操作系统标准机制
Windows 业务应用程序的日志,是不是只靠文件日志来解决?事件日志与 ETW,是运维人员和操作系统标准工具所能看到的另一层记录。本文整理三种手段的分工方式、.NET 中的写入方法、通过 EventSource 进行的 ETW 埋点、收集与排查的实务做法,以及来源未注册、日志膨胀等常见陷阱。
-
在 C# 中安全调用 Win32 API —— P/Invoke 实务指南(DllImport / LibraryImport / CsWin32)
本文整理在 C# 中通过 P/Invoke 调用 Win32 API 或原生 DLL 时的实务要点:DllImport 与 LibraryImport 的区别、用 CsWin32 自动生成签名、字符串封送的陷阱、用 SafeHandle 管理句柄、SetLastError 与错误处理、结构体的 StructLay...
-
Windows出现“Windows 已保护你的电脑”提示的原因
整理Windows应用分发时出现SmartScreen警告的原因,从代码签名、EV/OV证书、Azure Artifact Signing、MSIX、Microsoft Store、ClickOnce、企业内部分发到App Control,以实务角度梳理应对方法。
-
ClickOnce 是什么 - 从实务角度整理其原理、更新机制以及适用与不适用的场景
本文围绕用于 .NET Windows 桌面应用发布的 ClickOnce 技术,结合 Mermaid 图整理其清单(manifest)、更新、缓存、签名机制,以及适用与不适用的项目类型。
-
用 Windows Sandbox 加快应用验证的方法
本文整理如何利用 Windows Sandbox 提升管理员权限问题排查、干净环境复现、权限不足与资源不足复现的效率,并说明 .wsb 与 CLI 的分工使用方式。
-
自动更新的安全设计——为什么仅靠 HTTPS 还不够
把自动更新当作信任边界来处理,从实务角度整理带签名的 metadata、客户端验证、密钥分离、防回滚措施与 fail-closed 策略。
-
如何划定单元测试与集成测试的边界
从纯逻辑、格式、配线、环境差异、时间依赖等角度,整理单元测试与集成测试的边界,并汇总成一张在实务中不容易犹豫的判断表。
-
Windows DLL 名称解析机制 - 搜索顺序与 SxS
本文从实务角度整理 Windows 的 DLL 名称解析机制,涵盖 DLL search order、Known DLLs、loaded-module list、API set、SxS manifest,以及 LoadLibrary 系列 API 的影响。
-
串口通信应用的陷阱 - 直到重连与日志设计
围绕设备联动和仪器控制中应避免的串口通信陷阱,从帧边界、超时、RTS/CTS、DTR/RTS、重连到日志设计,用实务视角进行整理。
-
Windows 应用崩溃时保留日志与转储的设计
整理当 Windows 应用因意外异常或程序缺陷而崩溃时,应如何组合使用常规日志、最终崩溃标记、WER LocalDumps 与监控进程,以便事后能够追溯原因。
-
Windows 应用 UX 设计 - 按使用场景划分的优先级
整理 Windows 应用 UX 设计中应优先考虑的因素,按 ToC / ToB、输入方式、使用环境、误操作代价分类,给出一套实用的判断表。
-
什么是 Reg-Free COM——无需注册使用 COM 的机制
整理 Reg-Free COM 的基础知识、激活上下文(activation context)与清单(manifest)的作用、优点、局限,以及在实务中判断是否采用的思路。
-
Windows应用的crash dump收集入门 - 先搞清楚 WER / ProcDump / WinDbg怎么分工
本文整理在 Windows 应用追查难以复现的 crash 时,要先以 WER LocalDumps 按应用单独配置为起手式,再依现场状况追加 ProcDump,最后才考虑 MiniDumpWriteDump 自研收集的决策顺序。读完能理解 mini 与 full dump 的取舍、PDB 与保存运维要点,以及 ...
-
为什么在 Windows 上应优先选择事件等待而非 Sleep(1)
在 Windows 上,短时 timed wait 的精度会受到 system clock 粒度和调度延迟的影响。本文整理了为什么在等待任务到达、I/O 完成或停止请求时,应该采用事件驱动而不是按固定间隔轮询。
-
如何从 C/C++ 调用 C# Native AOT DLL
本文整理如何把 C# 类库通过 Native AOT 发布为原生 DLL,并通过 UnmanagedCallersOnly 的入口点让 C/C++ 调用它,从适用场景、实现模式到注意事项逐一梳理。
-
在桌面应用中使用 .NET Generic Host 与 BackgroundService 的理由
本文整理在 Windows 工具或常驻应用中,如何使用 Generic Host 与 BackgroundService 来梳理启动、定期处理、退出处理、日志、配置与 DI。
-
TCP 重传导致工业相机通信中断的原因与排查
本文整理当 TCP 重传导致工业相机通信中断数秒时的排查方法,结合丢包、RTO、RFC1323 时间戳、Wireshark 确认要点一并说明。
-
FileSystemWatcher 实务指南:应对遗漏通知与重复通知
本文从遗漏通知、重复通知、完成判定的陷阱、重新扫描、原子式 claim、idempotency(幂等性)等角度,整理 FileSystemWatcher 的使用方法与注意事项。
-
Media Foundation 入门:用 COM 视角理解 API
本文按照最先需要掌握的顺序,结合 COM、HRESULT、IMFSourceReader、MFT 等 Windows 媒体 API 的基础术语,整理 Media Foundation 到底是什么。
-
在普通 Windows 上尽量做到软实时的实践指南
本文整理在普通 Windows 上让周期处理与低延迟处理保持稳定的思路,从定时器精度、线程优先级、电源设置和监测方法等角度展开说明。