← 首页
GeneXus 迁移 · 遗留系统现代化

被困在 GeneXus 里?迁出来,开发更快。

每一次修改都要经过生成器、经过少数能读懂知识库的人,还要受制于您无法掌控的版本周期。我们把您的系统迁到 React 和 .NET,与 GeneXus 并行运行,使用您现有的同一个数据库:无需数据迁移,无需一次性切换,您的团队在此期间照常交付。

GeneXus 原始开发约 6 年 · 约 30 万美元
我们重建至功能对等1 个月 · React + .NET · 同一数据库
每一格代表一个月的开发。真实项目,客户名称保密。
01
问题

生成器曾是捷径,如今成了瓶颈。

GeneXus 帮您快速建成了大量软件。多年之后,当初让您加速的模式,正是拖慢每一次修改的原因。

速度

每次修改都要经过生成器

一个字段、一条规则、一个界面:在知识库中建模、重新生成、编译、部署。在现代技术栈里几分钟的事,这里要花好几天,而且离不开专家。

人才

业务藏在少数人能读懂的知识库里

知识库是您业务规则唯一完整的地图,而能读懂它的人每年都在减少。招人又慢又贵,每一次人员离职都是风险。

工具

难以测试,难以集成

自动化测试、CI/CD、现代 API、响应式界面、AI 功能:这些都在和生成的代码较劲,而不是与之配合。

锁定

升级要看别人的日程

生成器每次升级版本都是一个独立项目,只要还有一个界面依赖它,授权费用就得继续付。

常见的出路是从零重写:一年的需求文档、冻结的产品路线图,再加上一个高风险的切换周末。这就是大多数团队被困住的原因。其实还有另一条路。
02
方法

不凭记忆重写。不做盲目一跃。

现代化项目之所以失败,是因为新系统依据的是人们记得旧系统做什么。我们依据的是旧系统实际做什么,并在它旁边、基于同一份数据构建。

原系统GeneXus照常运行,不做改动
新系统React + .NET逐个模块成长
共享您现有的同一个 SQL Server 数据库同样的数据,同样的用户。新系统自己的存储过程放在独立的 schema 中。
绞杀者模式

并行运行,共用同一数据库

新系统与 GeneXus 并行运行在同一个 SQL Server 上。先以只读方式起步,新界面直接读取真实数据,然后逐个模块接管。没有数据迁移,没有周末切换,原系统从不停机。

唯一事实来源

知识库就是需求规格

每一条业务规则都取自导出的 GeneXus 源码,并在新代码中注明文件和行号。不重新诠释,不凭猜测,知识库也终于变得可读。

先测量

以原系统的界面为准

做任何决定之前,我们先在运行中的系统上测量:标签、校验、每个下拉框的行为。源码与界面不一致时,以界面为准。

安全写入

写入绝不重复

写入通过我们自己的存储过程完成,放在独立的 schema 中:幂等(重试绝不产生重复)、记录谁做了什么、删除前先备份,并按租户隔离。

差异公开

每一处差异都有书面说明

我们照搬原系统,除非照搬会显示错误数据。任何差异在上线前都会写明原因,您始终知道改了什么、为什么改。

会失败的测试

基于真实数据的数千个测试

测试直接针对您自己的测试数据库运行,每个都预埋一个错误用例:不可能失败的测试不算数。每日金丝雀测试会在两个系统上运行参考操作并对比结果。

03
如何推进

逐个模块,按您的节奏。

您的团队全程照常交付。每个模块何时离开 GeneXus,由您决定。

01

阅读

我们拿到您的知识库导出和数据库结构,梳理每一个对象、规则和集成。您会得到计划:模块、顺序、风险。

02

镜像

新界面在您的真实数据上以只读方式上线,与 GeneXus 并行。您的用户可以零风险开始使用。

03

对等

逐个模块开放写入。每个模块都针对您的数据测试,每处差异都书面说明,并由您的用户验证。

04

下线

某个模块达到对等后,您就可以在 GeneXus 中将其下线。最后一个模块完成后,您就不再需要生成器。

最终交付
  • React + Vite
  • .NET API
  • 您现有的 SQL Server
  • 沿用原有用户(GAM),之后接入您的身份提供商
  • 带测试门禁的 CI/CD
  • 您的云,您的代码仓库
我们在 GeneXus 上验证了这套方法。它适用于任何您拥有源码的遗留系统:Delphi、Visual Basic 6、PowerBuilder、Oracle Forms、ASP.NET Web Forms。
04
实证

六年的 GeneXus,一个月达到对等。

一个多租户保险平台,用 GeneXus 开发了约六年、投入约 30 万美元:多保险公司报价、保单、理赔、出单、导入工具、用户与权限。以下是第一个月的进展。

  1. 第 1 天

    只读镜像上线:新界面直接从真实数据库读取。

  2. 第 2 天

    使用原系统的用户登录,从知识库梳理出数据模型,并依据源码重建核心引擎及其集成。

  3. 第 1 周

    首批模块开放写入,通过我们自己的存储过程完成,GeneXus 同时继续在同一份数据上工作。

  4. 第 1 个月

    核心模块达到功能对等。目前正与客户共同验证,与原系统并行运行。

1 个月
达到功能对等(原系统用了约 6 年)
约 4,900
个 GeneXus 对象作为需求规格被逐一阅读
55
个界面完成重建,并对照原系统测量
约 6,000
个自动化测试
0
行数据需要迁移
约 97%
功能对等率,逐项跟踪
应协议要求不公开客户名称。此外还加入了原系统从未有过的能力:AI 导入保单 PDF,以及适配任何设备的界面。欢迎通话时详细介绍。
05
常见问题

团队最先问的问题。

我们需要迁移数据吗?

不需要。新系统直接基于您现有的数据库工作。它自己的对象放在独立的 schema 中,原系统的任何内容都不会被改动,两个系统始终看到同一份数据。

开发期间我们还能继续在 GeneXus 里交付吗?

可以。两个系统在同一份数据上并行运行。尚未迁移的模块会继续在 GeneXus 中修改,直到轮到它们。

用户和权限怎么办?

新系统使用原系统同一套用户库(GAM)进行认证。大家用现有账号登录,每个租户只能看到自己的数据。之后您可以切换到自己的身份提供商。

集成和 Web 服务怎么处理?

每个集成都依据原始源码重建,并在承载真实流量之前,先在服务商的测试环境中验证。

一定要用 React 和 .NET 吗?

对于使用 GeneXus .NET 生成器的团队,这是我们的推荐:团队熟悉这个平台,SQL Server 也保持不变。如果您的团队使用其他技术栈,我们会在第一次通话时一起规划。

我们的系统需要多长时间?

取决于知识库的规模和集成数量。作为参考:约 4,900 个对象和十个外部集成,一个月达到了功能对等。通话时我们看看您的数据,再给出估算。

成果归谁所有?

归您。代码在您的代码仓库里,基础设施在您的云账户里。我们随时可以提供支持,但您不会离不开我们。

带上您的知识库,我们带上计划。

一次 30 分钟的通话。告诉我们系统规模、模块和集成情况,我们会告诉您并行重建是什么样子、需要多久、花费多少。