深圳的客户来问 PC 软件定制开发,第一句多是「多少钱」,第二句是「多久能用」。这两个答案都没法脱口而出,因为它们不由功能清单决定,而由三件事决定:这套软件是不是纯客户端、要不要连内网服务、要不要把模型塞进用户的机器里。
把这三件事讲清楚,报价单和工期表才有讨论的基础。下面是优码云在深圳软件开发项目里实际使用的拆价口径:钱花在哪几块、工期卡在哪几步,以及哪些数字我们宁可不说。
先分清三类桌面端项目,报价才有坐标
同样叫「PC 软件」,三类项目的成本结构完全不同。谈价之前先归类,能省掉一轮无效报价。
| 项目类型 | 典型特征 | 成本重心 | 工期特征 |
|---|---|---|---|
| 纯客户端工具 | 单机运行,数据落在本地文件或内嵌数据库,断网可用 | 交互与本地计算、安装包与代码签名、跨版本数据兼容 | 较短,瓶颈在交互打磨与数据迁移 |
| 客户端 + 本地服务 + 内网部署 | 客户端配一个 Windows 服务或 Agent,数据进内网数据库,可能与读卡器、扫描枪、PLC、第三方 DLL 对接 | 现场集成与设备联调、权限与操作审计、离线升级通道 | 中等,瓶颈在外设清单与网络边界 |
| 带本地模型的桌面 AI 应用 | 模型随包分发或首次启动下载,依赖独显显存或统一内存,存在机型白名单与降级路径 | 显存预算与推理延迟调优、分发包体积、机型验证矩阵 | 较长,瓶颈在机型验证与降级设计 |
报价由哪几块构成
一份能对账的桌面端报价单,会把下面六块分开列,而不是给一个总价再补一句「含税」。
- 外壳框架与本地计算:原生(C++ / C# / Qt)还是 Web 技术栈(Electron / Tauri),以及业务逻辑放在哪一层。
- 代码签名与分发:证书归属、每个版本谁签、安装包与增量包怎么发、杀软误报怎么申诉。
- 更新通道:公网自动更新,还是内网自建更新服务器加离线包,含灰度、回滚与版本锁。
- 系统与信创适配:Windows 各版本、统信 UOS、麒麟,以及龙芯 / 鲲鹏 / 飞腾平台上的运行时差异。
- 现场验收:部署、外设联调、日志回传、管理员培训与缺陷分级修复窗口。
- 运维与版本节奏:发布频率、兼容旧版本数据的时间窗、紧急热修的响应方式。
框架选择:省下的人力,可能在用户机器上还回去
这一项对成本的影响常被低估。一份公开的 Tauri 与 Electron 对比与基准给过一组直观数据:同一份基准测试里,Tauri 构建出的应用只有 8.6MiB,而 Electron 的则达到 244MiB。
多窗口场景下的差距更明显:基于 Chromium 的渲染进程所消耗的内存,大约是系统 WebView 的两倍,窗口开得越多越刺眼。代价在别处——Tauri 首次构建明显更慢,遇到系统 WebView 版本差异要单独兜底;Electron 生态成熟、踩坑资料多。需要大量分发到低配办公机的项目,省下的开发人力常常会在终端支持成本上加倍还回来。
注意这组数字的边界:它来自一台 Mac 上的单机测试,示例应用只开窗、不带业务逻辑,Windows 上 Tauri 用的也是 Chromium 系内核,差距会小一些。选型时更该看的是「你的终端是谁的机器」。这一层的完整判断标准,我们写在Tauri 替代 Electron 的工程化路线里。
代码签名与分发:最容易漏进报价单的一笔
Windows 上的客户端不签名,用户第一次双击就会看到安全警告,SmartScreen 的声誉是逐版本累积的。EV 代码签名证书按年付费,属于公开可查的成本项,但真正吃工期的是流程:证书申请要过企业实名审核,私钥必须放进硬件令牌或云签名服务,每个发版都要走一次签名流水线,签名密钥泄漏还要能吊销。
内网环境更麻烦。更新服务器谁来维护、能否直连公网、防火墙策略由谁批、灰度名单怎么下发,这些都不是开发工作量,却直接决定项目能不能验收。把「自动更新」写成一行需求,是这个行业最常见的低估。想看清内网形态长什么样,可以参考我们交付的小乐 WMS 仓储管理项目。
信创适配与验收:按机型数而不是功能数计价
国产系统上的差异往往不在业务代码,而在运行时:WebView 内核版本、字体渲染、外设驱动、打包格式。验证成本随「系统 × 硬件平台 × 外设型号」的组合数增长,所以这一块适合按机型矩阵报价,而不是塞进总价。验收同理——每条需求配一个可执行的验收脚本,比写十页验收标准更能减少扯皮。
交付周期怎么算
工期的最大误解,是把它等同于开发时间。桌面端项目的关键路径通常在代码之外,我们单独整理过桌面应用从需求到上线的五道门槛,这里只讲与报价直接相关的部分。
- 需求冻结:外设清单、网络边界、机型清单三张表必须同时定下来。缺一张,后面的估算都是浮的。
- 可点原型:桌面端交互密度高,原型比文档省时间,尤其是批量录入、快捷键、离线状态提示这些细节。
- 迭代开发:按业务模块切分,每轮交付一个能在真机上点开的东西,而不是等整体完成。
- 试点:挑一两个真实工位跑全流程,暴露权限、网络、外设三个维度的真实问题。
- 灰度分发:先签先发的内部渠道,再分批推给终端,同时准备好回滚到上一版本的操作手册。
- 验收移交:构建链、签名权限、更新服务器账号一并移交,附一份「下个版本怎么发」的说明。
哪些项目会明显拖长?客户已经有机型与网络边界文档的,前三步会快很多;这些都靠到现场摸的,签名证书审核、防火墙策略审批、杀软白名单申请往往在开始写界面之前就已经成为关键路径——它们不受开发进度控制。这也是我们不接受「先报价、边界后补」的原因:补边界的成本最终都会回到预算里。
桌面端做 AI 的三个硬门槛
把模型搬到用户机器上,成本结构换了一套算法。真正的门槛不是「能不能跑起来」,而是「跑不起来的那批机器怎么办」。架构决策与成本拆分的细节,另见Electron 集成本地模型的架构决策与成本实测。
门槛一:显存与统一内存是同一个池子
本地推理的预算要同时装下三样东西:模型权重、推理时的 KV cache、系统与其他程序的余量。权重占用的量级大致是参数量乘以每参比特数再除以八,量化到更低比特位宽能压下来,但精度和长上下文表现会一起下降。
独显机器看显存,Apple 芯片的统一内存则与系统共用——本地模型一开,浏览器和 Office 一起变卡,是这类项目最常见的用户投诉。报价阶段就要把「目标机型的可用余量」问清楚,而不是等交付时才发现客户的采购标准是办公本。
门槛二:机型白名单与降级路径
凡是本地推理,报价里必须包含「降级」这一项:设备不达标的用户,客户端要么禁用 AI 功能并给出清楚提示,要么改走云端 API。这条分支不写进需求,验收阶段一定返工,而且返工的是已经打包签名的客户端。
门槛三:分发包体积改变了交付方式
带上模型权重之后,安装包从几十 MB 级跳到 GB 级,签名、断点续传、U 盘离线交付、内网镜像分发这几件事都会变贵。此时打包与分发方案本身就是一个独立报价条目,不该藏在外壳框架里。
| 判断维度 | 更适合本地推理 | 更适合云端 API |
|---|---|---|
| 数据出网限制 | 明确禁止出内网、涉工艺参数或个人信息 | 可出网,或可做脱敏后出网 |
| 网络质量 | 车间、产线、巡检等弱网或离线现场 | 稳定宽带办公环境 |
| 机型可控性 | 自有设备,可统一采购与升级 | 用户设备参差、无法约束 |
| 调用频次 | 低频、单机交互、每次调用都值钱 | 高并发、需要集中扩缩容 |
| 模型更新节奏 | 版本固定,随客户端迭代 | 需要持续跟最新模型能力 |
混合方案通常最省钱:本地跑小的分类、抽取与离线兜底,复杂生成走云端,两条路径共用同一套提示词与评测用例。
深圳团队和外地、海外供应商怎么选
报价单看起来差不多时,用五个具体问题去核对,比看案例册更有效。
- 签名与分发的具体方案:证书在谁名下?每版本谁签?密钥丢了怎么处理?
- 内网升级与回滚:更新服务器部署在哪、谁维护、回滚到上一版本需要做什么操作?
- 数据出网边界:日志与埋点默认开还是默认关?模型调用是否出网,出网走谁的账号?
- 源码、构建链与依赖归属:CI 脚本、签名权限、私有源是否一并移交,能不能在你自己的机器上构建出同样的包?
- 验收标准:每条需求是否配有可执行的验收步骤,缺陷分级与修复窗口写进合同了吗?
深圳团队的实在优势不在价格,而在现场:外设联调、内网策略沟通、试点工位蹲点,这些事远程做效率很低。港澳台与海外项目则要注意签名证书的地域要求与数据合规归属,这部分最好在报价阶段就单列。
常见问题
桌面端一定比 Web 系统贵吗?要看终端数量与集成深度。功能简单的内部工具,Web 更便宜;一旦涉及外设、离线、内网部署与代码签名,桌面端多出来的是一次性的分发与验证成本,而不是持续的开发成本。
能不能直接复用小程序的代码?业务逻辑和接口层可以复用,界面层基本要重写——桌面端的交互密度、快捷键、多窗口与离线状态提示和小程序不是一套东西。
本地模型必须配独立显卡吗?不一定,取决于模型规模与上下文长度。但必须提前确定目标机型,并准备降级到云端或禁用功能的路径,否则交付后无法收敛。
交付后源码和构建链归谁?按合同约定,我们默认源码、构建脚本与发布流程一并移交,客户可以在自己环境里复现发布。签名证书按客户主体申请,避免供应商切换时无法续签。
如果你正在深圳评估一套桌面端项目,可以把机型清单、外设清单和网络边界三张表发过来,我们按上面六块拆一遍,标出哪些是固定成本、哪些随需求浮动。联系我们,或先看已交付项目。
