“技术咨询”标签的文章
带有“技术咨询”标签的文章共 53 篇,按发布日期从新到旧排列。
-
作为设备搭载的操作系统,OpenHarmony能否成为选项 ── 与Windows IoT、嵌入式Linux的比较
工业设备的操作系统选型中,OpenHarmony能否入选?本文基于一手资料比较Windows IoT Enterprise LTSC、嵌入式Linux、OpenHarmony的维护期限、所需内存、开发环境与采购可行性,并以判断表整理出可以采用与应当放弃的条件。
-
什么是开源鸿蒙(OpenHarmony) ── 梳理它与鸿蒙(HarmonyOS)、HarmonyOS NEXT 之间的关系
OpenHarmony 与 HarmonyOS 并不是同一样东西。本文基于一手资料,系统梳理由开放原子开源基金会运营的开源操作系统,与华为的商用操作系统、以及去除 Android 兼容层之后的 HarmonyOS NEXT 之间的关系。
-
Power Automate 与 PowerShell+任务计划程序的使用场景划分 ── 不混用自动化工具,物尽其用地对接
面向 PowerShell+任务计划程序的夜间批处理与 Power Automate 流程开始在企业内部混用的中小企业信息系统部门,整理两者擅长领域的差异、该用哪种工具制作的判断表、通过 SharePoint 实现松耦合对接的联动模式,以及许可证与维护方面的注意事项。
-
Power Automate 的人员依赖对策 ── 让创建者离职后流程也不会停止
整理 Power Automate 流程因创建者离职、调动而停止运行这一人员依赖风险的应对方法。解说所有者账户被删除时的行为、共同所有者的设置、孤立流程的交接、执行账户的设计,直至通过流程台账进行盘点。
-
用 AI Builder 读取传真送达的订单 ── 减少手动录入转录的现实设计与局限
讲解如何用 AI Builder 的文档处理功能减少传真订单的手动录入转录。整理从一体机 PDF 化、自定义模型的学习、通过置信度分数插入人工确认的流程,到积分的费用感、与 EDI 的分工划分。
-
Power Automate 的许可证 ── Microsoft 365 里能免费到什么程度,什么时候需要 Premium
Power Automate 在 Microsoft 365 的范围内可以免费创建使用标准连接器的云端流程,但 HTTP、SQL Server、Dataverse 等高级连接器,以及 RPA、AI Builder 都需要付费许可证。本文整理 Premium/Process 的选择方法,以及 90 天试用版的注意事项。
-
用 Microsoft Forms 搭建社内申请・请求的受理入口 ── 把邮件与口头请求汇总到表单
一份把发往信息系统部门、行政部、财务部的邮件与口头请求汇总到 Microsoft Forms 的实务指南。整理问题设计与分支、组织内限定与匿名的区别、通过 Power Automate 实现的 SharePoint 转记・审批联动,以及 Forms 单独使用时的局限。
-
把 Excel 台账迁移到 SharePoint 列表 ── 用共享・历史记录・流程联动告别「台账损坏」
把共享文件夹中的 Excel 台账迁移到 SharePoint 列表(Microsoft Lists)的实践指南。整理了解决同时编辑・覆盖・行错位问题、从 Excel 导入的步骤、列类型设计、正确理解列表视图阈值 5000,直至 Power Automate 联动的全过程。
-
Power Automate 的错误处理与重试设计 ── 防止「原本正常运行的流程不知不觉停止了」
一套防止 Power Automate 流程「不知不觉就停止了」的设计模式集合。基于 Microsoft Learn 的官方规范,整理重试策略的默认值、通过范围(Scope)实现的 Try-Catch、失败通知、重新提交与幂等性,直至并发控制。
-
用 Power Automate 设计定期执行流程 ── 月末处理・营业日判定・提醒的实务
本文整理用 Power Automate 的 Recurrence 触发器自动化定期处理的实践指南,涵盖默认时区为 UTC 的陷阱、日期表达式、基于法定节假日主数据表的营业日判定、催办设计,以及 90 天自动关闭等运维注意事项。
-
用 Power Automate for desktop 实现核心系统转录自动化 ── 将 Excel、纸质单据的手动录入替换为 UI 自动化
本文是一份实践指南,介绍如何用 Power Automate for desktop(PAD)的 UI 自动化,替代向没有 API 的老旧核心系统手动转录数据的工作。内容涵盖免费可用的范围、无人执行所需的许可,以及通过选择器与异常处理实现稳定运行的方法。
-
用 Power Automate 自动处理邮件收到的订单・发票 PDF ── 保存、分类、通知与读取的设计
本文整理用 Power Automate 自动化处理邮件收到的订单・发票 PDF 的保存、分类与通知设计,从 Outlook 触发器与共享邮箱的前提条件、签名图片误判的应对方法,到用 AI Builder 读取内容及其许可证注意事项,均以实务者视角进行解说。
-
用 Power Automate 搭建审批流程 ── 将纸质与邮件签核、申请电子化
本文是一份实践指南,介绍如何用 Power Automate 将纸质签核单和邮件附带 Excel 的申请与审批流程电子化。内容涵盖审批操作的类型、Forms、SharePoint、Teams 的分工方式、结合执行历史保留期限制的记录留存方法,以及退回处理。
-
把 Excel VBA 宏迁移到 Power Automate ── 用 Office Scripts 替换的范围,与继续保留为 VBA 的范围
本文梳理 Excel VBA 宏能否迁移到 Power Automate,涵盖 Office Scripts 可以替换的范围、只有 VBA 才能做到的事情、连接器的限制值、许可证要求,以及从盘点开始的分阶段迁移推进方式。
-
故障处理不止于恢复 ── 写给小型开发团队的 Postmortem(再发防止)实践模板
把故障处理停留在「修复、道歉,就此结束」,同样的故障就会反复发生。本文把 blameless postmortem 翻译给小型团队使用,整理出可在 1 小时内写完的模板、再发防止策略的强度判断表,以及实施的分级(triage)标准。
-
ADR(Architecture Decision Record)入门 —— 在小规模开发中,用最简方法留住「为什么这样设计」
代码不会告诉你「为什么这样做」。本文讲解如何用 ADR(Architecture Decision Record),以「1 个决定 = 1 个 Markdown 文件」的方式记录设计判断的理由,并附带模板、写与不写的判断表,以及实际案例。
-
如何安全地为没有测试的遗留业务应用做修改 ── 特性化测试与重构实战
为了能安全地修改没有测试的业务应用,本文用 C# 示例讲解固定当前行为的特性化测试(黄金母版法)步骤、创建接缝(seam)的方法,以及不把重构与功能追加混在一起的运营规则。
-
别忘了先定好「多少秒才算达标」── 用 IPA「非功能要求分级」梳理非功能需求
「速度太慢」「故障应对超出预期」等纠纷,大多源于没有事先决定好非功能需求。本文用发包方也能理解的语言,解析 IPA「非功能要求分级」的六大项目、分级表与模型系统的用法,以及切实可行的应用方式。
-
当自研 Windows 应用被 Microsoft Defender 判定为病毒 ── 误报处理与性能影响应对指南
本文整理自研 Windows 应用被 Microsoft Defender 误报时的正规处理方法:现代杀毒软件的判定机制、向 Microsoft 提交误报、从隔离中恢复文件,以及正确设置排除项及其风险。
-
睡眠、休眠、Modern Standby 与长时间运行应用 ── 用设计防止「夜里意外停止」
本文从 S3 睡眠、休眠、Modern Standby 的区别入手,整理长时间运行的 Windows 应用为何会出现「早上一看已经停止」的原因,并讲解睡眠期间计时器与 TCP 连接的行为,以及如何用 SetThreadExecutionState 进行抑制。
-
Arm 版 Windows 上业务应用能运行吗 ── x64 仿真(Prism)与原生 DLL・COM 的现实
面向开发者与信息系统部门,回答「Arm 版 Windows 上业务应用能运行吗」这一问题。梳理 x64 仿真(Prism)的原理、驱动程序等无法运行的层面、.NET 中 AnyCPU 与 P/Invoke 的组合问题,以及 Arm 适配自查清单。
-
接手了没有源代码也没有文档的系统 ── 在不中断运行的前提下开展运维保守的实务步骤
本文整理在没有源代码、也没有文档的业务系统上开始运维与保守工作的实务步骤。涵盖对运行环境的保全与备份、可执行文件与数据库的盘点、从行为中还原规格,以及续用、封装、重建之间的判断。
-
MAX_PATH 与 Windows 路径・文件名的陷阱 ── 260 字符限制、保留名称、末尾句点、大小写
梳理导致「找不到文件」的经典原因 ── 路径与文件名的各种限制。本文解析 MAX_PATH=260 的构成、通过 LongPathsEnabled 启用长路径、CON 等保留名称、末尾句点的规范化处理,以及 Path.Combine 的陷阱。
-
网络驱动器与 UNC 路径的陷阱 ── 业务应用中处理文件服务器(共享文件夹)的实务
本文整理业务应用向共享文件夹输出、监控时的常见故障:驱动器号(Z:)为何在服务中不可见、各执行账户所需的权限、错误 1219,以及 FileSystemWatcher 的注意事项。
-
Windows 应用的任务栏托盘常驻与 Toast 通知 —— NotifyIcon 的坑与 AppNotification 的选型
本文整理了将业务 Windows 应用常驻在任务栏托盘(通知区域)并通过 Toast 通知告知用户的实现要点。内容涵盖 NotifyIcon 的正确用法与「关闭后驻留托盘」的设计、资源管理器重启后的重新注册、三种 Toast API(Windows App SDK AppNotification / Commun...
-
VB6 应用能用到什么时候 ── 运行时支持现状与务实的 .NET 迁移做法
VB6 应用程序到底能用到什么时候?本文整理 VB6 运行时的支持政策(Windows 11 也在支持范围内)与 IDE 支持早已终止这一不对称现状,并以实务指南的形式说明全面重写、自动转换、分阶段迁移的判断表、迁移前的资产盘点、VB6 与 .NET 的不兼容之处,以及 C# 与 VB.NET 的选择。
-
业务应用程序的日本年号・法定节假日・结算日处理 —— 抗改元设计与 JapaneseCalendar・营业日计算实务
报表要显示「令和8年」、营业日计算要排除法定节假日、20日结算次月末付款——日本业务应用程序特有的日期处理背后,隐藏着「日后会变动的规格」:改元、法定节假日的法规修订、月末的进位。本文整理了用 JapaneseCalendar 显示年号、抗改元的设计方式,法定节假日不可写死在代码中的原因,以及利用内阁府 CSV ...
-
Process Monitor(ProcMon)实战指南 —— 10 分钟定位「配置未生效」「ACCESS DENIED」问题
「明明修改了配置文件却没有生效」「昨天还能正常运行,今天却突然启动不了」——在动手修改源代码之前,Process Monitor(ProcMon)可以从文件、注册表访问的实际情况入手定位原因。本文从故障排查一线的视角,讲解 Filter 的实用技巧、NAME NOT FOUND・ACCESS DENIED・SHA...
-
Windows 应用不适合 Web 化的情形 ── 判断表与「拆分」这一现实解法
「想把公司内部的 Windows 应用改造成 Web」的需求正在增加,但对于涉及设备联动、本地文件处理、离线运行、高速录入界面的应用来说,Web 化反而可能带来成本上升与功能劣化。本文从 Windows 委托开发的实务视角,整理出适合与不适合 Web 化的判断表,并提出「不是全部 Web 化,而是只把一部分放到 ...
-
WinForms/WPF应用的多语言化 ── resx、附属程序集与区域文化切换的实务
本文从实务角度系统梳理Windows桌面应用多语言化的要点:CurrentCulture与CurrentUICulture的区别、resx与附属程序集构成的资源机制、WinForms的Localizable属性、WPF的现实方案选择、运行时语言切换,以及排版、格式、RTL等内容。
-
CSV 不是「纯文本」──C# 业务应用中 CSV 实务(字符编码・Excel 兼容性・注入攻击防范)
梳理业务应用 CSV 读写中常见的事故模式──用 Split(',') 自行解析、无 BOM 的 UTF-8 导致 Excel 乱码、前导零丢失、CSV 注入攻击──并从实务角度讲解 RFC 4180 规则、.NET 中 Shift_JIS 的处理方式(CodePagesEncodingProvider),以及使...
-
不要用 using 包裹 HttpClient —— C# 业务应用的 HTTP 通信实务(创建模式・超时设计・重试)
C# 的 HttpClient 如果每次都用 using 创建会导致套接字耗尽,改成 static 又无法跟上 DNS 变更——本文从 Windows 业务应用的实务角度,整理这两大问题的成因,以及通过 PooledConnectionLifetime、IHttpClientFactory 实现正确创建模式、超时...
-
用 PerfView 与 dotnet-trace 定位“变慢”的原因 ── .NET 性能排查实务入门
当业务应用出现“变慢”“CPU 占满”“偶尔卡死”时,该用哪个工具看什么?本文梳理 PerfView 与 dotnet-trace 的分工、CPU 采样的解读方法(inclusive/exclusive)、用 ThreadTime 排查阻塞时间,以及与 EventSource 自定义事件的组合使用,整理出一套实务...
-
不只是 appsettings.json ── Windows 业务应用的配置管理实务(环境差异化设置・敏感信息・写入位置)
本文从实务角度整理 Windows 业务应用的配置管理,涵盖 appsettings.json 的分层、IConfiguration 与 IOptions/IOptionsSnapshot/IOptionsMonitor 的选用方式、环境差异化设置、可写入配置的存放位置、敏感信息的处理、运行期配置变更,以及从 a...
-
Windows 业务应用程序的打印与 PDF 输出 ── System.Drawing.Printing / WPF / 报表库的取舍选型
本文按需求整理成判断表,梳理 PrintDocument 的 WinForms 打印、WPF 的 FlowDocument/FixedDocument 打印,以及 PDF 输出的可选方案。并从实务角度讲解分页控制、DPI 偏差等实现陷阱,以及从 Windows 服务打印、依赖默认打印机的风险。
-
把OSI参考模型彻底看懂 ── 拆解一个HTTP请求里的七层结构
本文不靠死记硬背来理解OSI参考模型,而是从实物出发。用C#组装出一个承载HTTP GET请求的Ethernet帧并进行解剖,通过十六进制转储和Wireshark确认L2〜L7如何以字节序列的形式层层物理嵌套在一起。文章从实务角度梳理各层与.NET API(HttpClient/SslStream/Socket)...
-
如何理解 Windows 的会话隔离 ── Session 0・RDP・多用户同时运行
整理 Windows 应用程序开发者容易混淆的「会话」概念。说明服务无法显示 UI 的 Session 0 隔离原因、RDP 连接时会话的行为、命名对象的会话隔离,以及共享 PC・RDS 环境中常见的设计失误,从实务角度解说。
-
VB6 / Access 业务应用的续用与迁移 ── 保留、封装、替换的判断表
VB6 应用程序与 Microsoft Access 业务应用该如何判断是直接保留、只封装一部分继续用,还是全面替换?本文整理运行环境现状、ACE 的 32bit/64bit 问题、共享文件夹多人使用风险,以及升级到 SQL Server 的判断表与实务步骤。
-
用 WinDbg + SOS 解读崩溃转储 ── 采集之后的实务分析入门
本文说明如何用 WinDbg 与 SOS 扩展实际读取已采集的 Windows 崩溃转储。内容涵盖符号路径设置、以 !clrstack、!pe、!dumpheap -stat、!gcroot 追踪异常与内存泄漏的方法、原生崩溃的 !analyze -v,以及与 dotnet-dump analyze 的使用区分,...
-
防止 Windows 应用程序重复启动 ── 命名 Mutex 与重复执行时的窗口前置
整理业务型 Windows 应用程序的常见需求——「不让同一个应用程序启动两次」——如何用命名 Mutex 来实现。涵盖 Global\ 与 Local\ 命名空间差异在 RDP 环境中的陷阱、拥有线程限制与 AbandonedMutexException、在 SetForegroundWindow 限制下把已有...
-
在 C# 中安全调用 Win32 API —— P/Invoke 实务指南(DllImport / LibraryImport / CsWin32)
本文整理在 C# 中通过 P/Invoke 调用 Win32 API 或原生 DLL 时的实务要点:DllImport 与 LibraryImport 的区别、用 CsWin32 自动生成签名、字符串封送的陷阱、用 SafeHandle 管理句柄、SetLastError 与错误处理、结构体的 StructLay...
-
在 WinForms/WPF 应用中集成 Entra ID 认证 —— MSAL.NET 与 WAM Broker 的实务架构
本文以实务视角整理在 WinForms/WPF 桌面应用中集成 Entra ID(原 Azure AD)认证的步骤:公共客户端的思路、ROPC 被弃用的现状、应用注册、MSAL.NET 的 AcquireTokenSilent 模式、WAM Broker、令牌缓存的持久化,以及导入判断与运维中的坑。
-
业务应用的日期时间与时区 ── 从 DateTime 的陷阱到 UTC 存储原则、测试设计
服务器迁移后时间整整差了 9 个小时、只有海外分支机构的日期会变成前一天——本文从 DateTime 的 Kind 与隐式转换梳理日期时间事故的根本原因。内容涵盖与 DateTimeOffset 的取舍、UTC 存储与 ISO 8601 原则、TimeZoneInfo 与夏令时、和 SQL Server/SQLi...
-
WPF 高 DPI 支持──「不是应该对 DPI 很强吗」却仍模糊、渗色的原因与对策
WPF 以 DIP(1/96 英寸)进行布局,从一开始就是 System DPI Aware,但移动到 DPI 不同的显示器时整体会渗色,位图与细线也会模糊。本文从实务角度整理原因判断、.NET Framework 4.6.2/.NET 上的 Per-Monitor DPI 支持声明方式、UseLayoutRou...
-
C# 操作 Excel 时 EXCEL.EXE 残留的问题 ── COM 引用释放模式与替换判断
本文从 COM 引用计数与 RCW 的运行原理,整理 C# 通过 Microsoft.Office.Interop.Excel 操作 Excel 时 EXCEL.EXE 进程残留的问题。内容涵盖「两个点规则」的陷阱、Marshal.ReleaseComObject 派与 GC 派两种释放模式、以 Hwnd 定位 ...
-
WinForms 的高DPI支持 - 4K显示器下模糊、错位的原因与实用对策
本文从 DPI 虚拟化与 DPI 感知模式(System Aware / Per-Monitor V2)的角度,整理 WinForms 应用在4K显示器、150%缩放环境下显示模糊、布局错乱的原因,并说明 .NET 与 .NET Framework 各自的配置方法、AutoScaleMode 与设计器的陷阱,以及...
-
Windows 的进程间通信该怎么选 ── 命名管道 / TCP / gRPC / 共享内存 / COM 判断表
整理 Windows 应用程序之间应该如何选择通信方式。用判断表整理命名管道、本地 TCP、gRPC、共享内存、文件对接、COM 各自的优势与陷阱,并从实务角度说明 UI+服务分离・32bit/64bit 桥接・权限边界等常见架构,以及命名管道的实现示例。
-
在 C# 业务应用中使用 SQLite ── WAL 模式、排他控制、防损坏对策、与 EF Core 的取舍
本文整理在 Microsoft.Data.Sqlite 中把 SQLite 嵌入业务 Windows 应用的实务知识:连接字符串与连接池、WAL 模式的原理、SQLITE_BUSY 与写入归并、通过事务提速、类型映射的陷阱、用 VACUUM INTO 备份,以及该在什么场合使用 EF Core。
-
Windows 服务的创建与运维 ── 从任务计划程序的取舍到 BackgroundService 服务化
常驻处理应该做成 Windows 服务,还是任务计划程序就够用?本文整理判断表,以及用 .NET Worker Service(UseWindowsService)创建服务的方法、运行账户、恢复选项、事件日志、安全停止处理,从实务角度梳理投入运维所需的设计。
-
IE 模式之后换成 WebView2 就够了吗 ── ActiveX 无法运行的限制与现实的迁移设计
本文从内部系统的角度,梳理 WebView2 的基本结构、Evergreen 与 Fixed Version 两种分发策略、用户数据文件夹的陷阱、原生与 Web 的联动方式,并在「ActiveX 无法运行」这一限制的前提下,整理出摆脱 IE 模式依赖系统的现实迁移顺序。
-
Windows应用的数据存储位置怎么选 ── SQLite / JSON / 注册表 / Access 判断表
Windows桌面应用的数据该存在哪里、用什么格式保存?本文整理AppData/ProgramData的使用区分,以及SQLite、JSON文件、注册表、Access(.accdb)各自的优势与陷阱,并附判断表,从实务角度讲解防止数据损坏与位数问题等注意事项。
-
任务计划程序的任务不执行、以 0x1 结束 ── 原因排查与安全的运维设计
本文整理 Windows 任务计划程序的执行账户与登录类型、「不管用户是否登录都要运行」的含义、以 0x1 结束的典型原因、启用历史记录、防止多重启动、PowerShell 脚本的正确调用方式,直到把定期执行真正落实到运维上的设计方针。
-
用 Power Automate 实现业务自动化 ── 云端流程与桌面流程的分工,以及错误处理设计
本文整理 Power Automate 云端流程与桌面流程的区别、与 PowerShell / VBA 的分工、许可证、错误处理、UI 自动化的稳定化,以及凭据信息的安全处理,提供把业务自动化落地到生产环境的实务设计指南。