先给结论:三条路线没有绝对优劣。业务差异化很强、平台将成为长期核心能力、企业拥有稳定产品研发团队时,可以考虑自研;希望掌握源码、快速形成可控底座,并愿意持续承担工程化建设时,适合基于开源组件二次开发;交付时间短、需求相对标准、需要成熟功能和厂商服务时,商业产品通常更稳妥。
真正的选型问题不是"买还是做",而是企业愿意长期拥有哪部分能力和责任。自研获得最高控制力,也承担全部产品、研发、测试、安全和升级责任;开源二开借用了成熟组件,却仍需自己补齐数据、权限、流程、版本和运维;商业产品把大量责任交给厂商,但会带来许可证、扩展边界、供应商依赖和长期费用。
本文用同一套企业级电子表单能力清单,对三条路线的交付速度、总拥有成本、私有化部署、许可证、人才要求、技术控制力和退出机制进行比较,并给出可执行的 POC 与决策方法。
一、核心结论与问题边界
先定义三条路线,避免比较错对象

自研表单引擎,是企业自行定义 Schema、设计器、组件协议、运行时、数据服务、权限、版本、流程集成和运维体系。即使底层使用 Vue、React、JSON Schema 等通用技术,只要核心产品责任由企业承担,仍属于自研。
开源组件二开,是选择 FormCreate、JSON Forms 等开源渲染器或设计组件作为表层基础,再建设业务对象、服务端校验、数据权限、流程绑定、发布版本、查询打印和监控。它通常不是"部署一个开源仓库就完成",而是用开源组件缩短局部研发周期。
商业产品,是购买厂商提供的完整表单平台或低代码平台,通过配置、扩展接口和厂商服务落地。产品可能以 SaaS、私有云或本地容器方式交付,也可能把开源渲染器与商业服务端组合在一起。判断路线要看责任与授权,而不是只看代码是否能下载。
企业选择的本质是能力所有权

企业级表单系统至少包含设计器、运行时、业务数据模型、规则、权限、流程、版本、多端、开放接口、安全审计和运维。选型时要逐项标记责任人:是企业研发团队负责,开源社区提供,实施商交付,还是产品厂商承诺。
自研路线中,几乎所有责任都在企业。开源二开只把通用控件、Schema 渲染或设计器框架交给社区,企业仍要负责平台化和生产运行。商业路线把产品研发与部分运维责任交给厂商,但业务建模、数据治理、接口梳理和验收责任仍不能外包。
因此,"有没有源码"不是唯一控制力。真正的控制力包括能否修改关键行为、能否独立部署升级、能否访问和迁移全部数据、能否在厂商停止服务后继续运行,以及企业是否拥有理解系统的人。
二、关键概念与能力差异
一张表看懂三条路线
| 维度 | 自研表单引擎 | 开源组件二开 | 商业产品 |
|---|---|---|---|
| 首次交付速度 | 慢,需要先建设底座 | 中等,可复用设计器与渲染器 | 快,标准能力可直接配置 |
| 技术控制力 | 最高,协议和路线自主 | 较高,但受上游架构影响 | 取决于扩展接口和合同 |
| 初始现金成本 | 许可低,人力投入高 | 许可通常较低,二开投入中高 | 许可与实施投入较高 |
| 长期成本 | 团队、测试、升级与运维 | 合并上游、兼容和平台治理 | 续费、增购、升级与服务 |
| 企业级完整度 | 由团队逐步建设 | 开源组件通常只覆盖局部 | 成熟产品通常更完整 |
| 私有化适配 | 完全可控 | 可控,但需自建运行平台 | 必须核对部署和离线授权 |
| 许可证风险 | 主要来自第三方依赖 | 必须审查主项目及全部依赖 | 关注用户、环境、模块和容量授权 |
| 人才要求 | 产品、前后端、架构、测试、运维齐全 | 需要理解上游源码和平台工程 | 需要产品管理员、集成和合同管理 |
| 退出难度 | 低到中,取决于文档与人员 | 中,取决于模型和二开深度 | 中到高,取决于数据与元模型开放度 |
| 更适合 | 战略平台、强差异化、长期投入 | 有研发能力、需要源码可控 | 快速交付、标准化、服务保障 |
表格中的"快"和"便宜"都只针对特定阶段。商业产品第一年可能最快,但大规模用户、多个环境和高级模块会增加许可费用;自研第一年最慢,却可能在大量内部应用复用后摊薄成本。必须用三到五年总拥有成本,而不是一次采购价做判断。
什么时候适合自研表单引擎
自研最适合表单能力本身就是企业数字化平台的核心竞争力,且业务模型与市面产品差异显著的情况。例如大型软件厂商需要把表单嵌入多个行业产品,或者集团要统一承载数百个系统、国产化环境和复杂流程规则。
自研的主要优势是协议自主。企业可以决定数据 Schema、UI Schema、组件扩展、版本兼容、权限计算和运行时架构,也更容易适配内部统一身份、数据库、工作流、消息、文件和审计平台。
但自研最容易低估"非画布功能"。拖拽控件和 JSON 渲染只是开始,随后还要处理主子表、字段权限、服务端校验、并发控制、版本回放、移动端、套打、文件安全、环境迁移、监控、无障碍和历史兼容。没有持续预算和产品负责人,自研平台很容易停留在能演示、难维护的状态。
适合自研的最低条件,是至少有稳定的产品经理、前端、后端、测试和运维能力,并愿意维护三年以上。若项目只批准一次性交付预算,却没有后续团队,自研通常不是控制力,而是技术债。
三、模型架构与运行机制
什么时候适合开源组件二次开发
开源二开适合企业已经有研发体系,希望缩短设计器和渲染器建设周期,同时保留源码和私有化控制权。FormCreate 官方说明其通过 JSON 生成动态表单,支持自定义 Vue 组件、多 UI 框架和移动端,并采用 MIT License;JSON Forms 的核心同样采用 MIT License,并把数据 Schema、UI Schema 和渲染器分开。
这些项目适合作为表单前端基础,却不应被误认为完整企业平台。开源组件通常不会替企业解决组织权限、业务数据库映射、流程节点策略、版本发布、历史回放、打印归档、运维监控和跨系统数据治理。
开源二开的关键不是"能不能改",而是"以后怎么跟"。企业需要决定采用原生扩展、维护轻量补丁,还是建立长期分叉。越多修改进入上游核心代码,未来升级与安全修复越困难。优先通过插件、渲染器、适配器和扩展点实现差异,保持自有代码与上游边界清晰。
选择开源组件前,应检查活跃维护者、发布节奏、问题响应、测试覆盖、类型定义、文档、依赖安全、许可证和替换成本。Star 数只能说明关注度,不能替代架构审查和生产验证。
什么时候适合购买商业产品
商业产品适合交付窗口短、业务规则相对通用、内部研发资源不足,或者项目需要明确 SLA、原厂支持、安全认证和升级服务的企业。成熟产品往往已经覆盖设计、权限、版本、环境、审计、报表和运维,可减少从零建设的风险。
商业产品的风险不只是价格,而是边界不透明。采购前必须确认设计器、运行时、服务端、移动端、离线能力、PDF、报表、连接器、多租户和高可用分别属于哪个版本或模块。Form.io 官方文档就明确区分平台许可、开发许可、离线许可和扩展库许可,部分高级组件、企业设计器、报表及连接器需要独立授权。
"支持私有化"也要继续追问:许可证是否需要联网校验,断网宽限期多长,能否部署在隔离区,升级包如何交付,数据库和对象存储能否自主管理,集群和灾备是否另行计费。商业合同必须把演示承诺转换为功能清单、性能指标、接口边界和退出条款。
商业产品不等于零开发。身份、组织、主数据、工作流、ERP 和历史系统仍需集成;特殊组件和复杂报表仍需扩展。合理目标是购买通用能力,把研发资源留给真正差异化的业务。
四、核心场景与处理策略
总拥有成本为什么不能只看许可证

总拥有成本应包括采购许可、实施、研发、测试、基础设施、运维、安全、培训、升级、数据迁移和退出成本。自研没有产品许可费,却有高额长期人力成本;开源没有传统采购费,却有二开、合并上游和兼容测试成本;商业产品减少研发投入,却可能随用户、应用、环境、接口调用或高级模块增长。
建议按三到五年测算,并区分固定成本和边际成本。自研的固定投入高,但大量应用复用后单个应用边际成本下降;商业产品固定投入较低,但用户和模块规模扩大时边际许可费用可能上升;开源二开介于两者之间,其成本主要取决于定制深度和升级纪律。
还要计算机会成本。若自研需要十八个月,而商业产品三个月可上线,延迟带来的业务损失可能远高于许可费;反过来,若商业产品无法满足关键差异,长期绕路和数据锁定也会形成隐性成本。
开源许可证和商业授权应该怎样审查

MIT、Apache-2.0 等宽松许可证通常允许商业使用和修改,但仍要保留版权与许可声明,并审查依赖、字体、图标、示例代码和可选插件的许可证。项目主页写"免费"不能代替仓库中的 LICENSE 文件和软件物料清单。
如果产品包含 GPL、AGPL 或其他强 Copyleft 组件,应由法务和开源治理人员结合部署方式、分发方式、修改范围与网络服务场景判断义务。不要在技术评审会上凭经验给出法律结论。
商业授权则要检查计费对象。常见维度包括开发者、最终用户、并发用户、应用数量、租户、CPU、节点、环境、域名、连接器和高级模块。还要明确测试、灾备、冷备和开发环境是否占用许可,集团子公司和外部用户是否属于授权范围。
最稳妥的做法是建立软件物料清单,记录组件版本、许可证、来源、修改和用途;商业合同附上授权矩阵,写明模块、环境、容量、升级、维护期和违约后的数据取回方式。
五、数据、规则与状态设计
私有化部署应该比较哪些真实能力

私有化部署不是"能把 Docker 镜像跑起来"。企业需要完整评估安装升级、数据库、对象存储、缓存、消息、密钥、备份、监控、日志、漏洞修复、国产化适配、离线环境和灾难恢复。
自研与开源二开可以完全控制部署拓扑,但所有故障和升级责任也在企业。商业产品可能提供标准镜像、部署手册和支持服务,但必须确认离线许可证、镜像获取、补丁时限以及数据库和中间件支持矩阵。Form.io 官方说明其平台可部署到云环境、本地数据中心或本机,同时不同部署产品和企业模块受许可证控制,这正是采购时需要拆开核对的典型情况。
无论采用哪条路线,数据都应由企业拥有并可导出。表单定义、组件配置、业务记录、附件、流程关联、权限策略和审计日志都要有备份与恢复方案,不能只导出最终提交数据。
技术控制力不能只用"有源码"衡量
拥有源码不代表能够安全修改。若团队看不懂架构、没有测试和发布流程,源码只是一个难以维护的资产。相反,商业产品若提供完整 API、插件协议、数据导出、版本兼容和源代码托管安排,也可能拥有较强的可控性。
建议从六个方面衡量技术控制力:核心模型能否扩展;运行时能否替换;数据能否完整迁移;关键问题能否自行定位;升级是否可选择;供应商或社区停止维护后能否继续运行。
开源二开还应测量"分叉距离"。统计自有补丁数量、修改的上游核心文件、落后版本数和回归测试成本。分叉距离持续扩大,意味着表面上拥有源码,实际上已经维护了一套自研产品。
六、工程实现与系统集成
团队能力决定了哪条路线能成功
自研需要产品规划、交互设计、前端组件化、后端数据建模、权限与安全、测试自动化、DevOps 和平台运营。开源二开还要求团队理解上游代码、发布节奏和合并策略。商业产品则需要强业务分析、平台配置、接口集成、厂商管理和合同治理。
企业应评估人员稳定性,而不只是当前人数。表单平台会持续演进,若关键架构只掌握在一两名外包人员手中,自研和深度二开风险很高。商业产品也需要内部产品负责人,否则业务规则、数据口径和扩展代码仍会失控。
一个实用判断是:如果企业无法承诺至少一个稳定小团队长期维护,就不应选择重度自研;如果完全没有技术团队,也不应购买需要大量二开的"平台型商业产品"。
供应商锁定与开源锁定都真实存在
商业产品可能通过专有 Schema、脚本语言、流程模型、连接器和许可证形成供应商锁定。开源二开也可能因为大量自定义代码、旧版本依赖和缺少文档形成"自我锁定"。自研则可能被关键人员、内部框架和历史兼容锁定。
降低锁定风险的关键是开放契约:数据 Schema 尽量使用通用 JSON 结构,接口采用 HTTP 与事件标准,业务数据不只存成不可查询的大 JSON,附件和审计可独立导出,流程与表单通过稳定 ID 关联。
退出方案应在选型阶段设计。要验证能否批量导出表单定义、版本、数据、附件、权限和日志;能否在没有原产品运行时的情况下读取;是否允许保留只读系统;终止服务后许可证是否继续有效。
七、安全、性能与治理要求
不同企业场景的推荐路线
集团级低代码平台、行业软件产品和多租户产品,若表单是长期核心能力,通常以自研或开源二开为主。差异化主要在业务模型、组织权限、流程、国产化和多端运行,企业需要掌握关键协议。
单一部门、快速试点、标准审批和短周期项目,商业产品通常更合适。它可以快速验证业务价值,避免在需求尚未稳定时投入平台研发。
已有强研发团队、强调私有化和源码可控,但又不希望从画布开始建设的企业,适合开源组件二开。应选择清晰的扩展边界,把开源项目作为前端基础,自行建设企业运行平台。
强监管或隔离网络场景,三条路线都可以采用,但要把离线运行、国密、审计、漏洞修复和灾备作为硬性准入条件,而不是在合同签订后再讨论。
混合路线往往比三选一更现实
企业可以自研核心数据模型、权限、流程和运行服务,前端采用开源设计器与渲染器;也可以购买商业平台承载通用内部表单,把高度差异化的行业应用保留在自研体系。
混合架构的前提是边界清晰。统一身份、组织、主数据、文件、消息和审计作为企业公共能力;不同表单产品通过 API 和事件连接。不要让多个平台分别复制员工、部门和字典,也不要让业务数据被锁在只能由某个设计器解释的私有格式中。
在云程低代码开发平台这类企业应用平台中,可以把表单、业务对象、工作流、门户和移动端作为统一底座,再按场景引入开源组件或外部商业产品。关键不是"全部自研",而是让核心数据和运行契约掌握在企业可治理的边界内。
八、平台落地、测试与选型
怎样设计一次可信的 POC

POC 不应只让三家产品各做一张简单申请表。应使用同一业务案例,包含主子表、异步数据源、字段联动、服务端校验、节点字段权限、移动端、附件、打印、版本升级和历史回放。
测试过程要记录实施工时、需要编写的代码、不可配置项、性能数据、异常恢复和升级影响。商业产品要使用合同准备购买的实际版本和授权;开源方案要固定版本与依赖;自研方案要给出完整里程碑,而不是只展示原型。
POC 之后用加权矩阵评分。硬性条件如私有化、离线运行、数据出口和合规不满足时直接淘汰;交付速度、体验和成本等软性指标再按业务重要性加权。不要用几十项平均分掩盖一个致命缺口。 
决策前必须准备退出方案
自研项目要准备人员交接、架构文档、测试资产和组件替换策略;开源二开要保存源码镜像、依赖仓库、补丁清单和上游同步记录;商业产品要在合同中写明数据导出、格式、周期、费用、终止后的只读期和迁移协助。
至少做一次真实迁出演练:导出一张表单的全部版本、数据和附件,在独立脚本或新系统中还原字段含义和记录关系。若只能导出 Excel 最终值,却无法取得 Schema、权限、流程关联和审计,退出成本仍然很高。
选型成功的标志不是签约或上线,而是三年后系统仍能升级、扩展、审计和迁移。
九、如果只记住五句话
第一,自研、开源二开和商业产品的差异,本质是能力所有权与责任分配。
第二,开源组件能缩短局部研发,但不会自动补齐企业级表单平台。
第三,商业产品要拆开核对平台、模块、用户、环境、私有化和离线许可证。
第四,总拥有成本要计算三到五年的研发、许可、运维、升级、迁移和机会成本。
第五,最稳妥的选型必须同时验证真实 POC、开放数据契约和退出方案。