【发布时间】:2014-06-23 19:22:18
【问题描述】:
我的公司有一个大问题。我们在 Delphi.NET 中开发了一个包含超过 1.000.000 行代码的应用程序。正因为如此,我们被 Delphi 2007 和 .NET 2.0 困住了。
随着技术和用例的发展,我们需要迁移到另一个开发平台。到目前为止,我们尝试了几种承诺将 Delphi.NET 转换为 C# 代码的工具 - 每个工具都有一些问题,例如字符串索引错误(Delphi 1 C# 0)或使用类型声明数组边界时。
采用这种方法后,我们尝试反编译 Delphi.NET 程序集 - 从中返回的代码难以阅读,并且具有数百个调用 Borland 特定程序集的辅助函数。我已经研究过自己编写转译器的可能性,但是 Delphi 的模棱两可的语法很难用直截了当的语法来实现。
所以现在有个很好的问题,是否还有任何可能不包括手动翻译所有代码?或者可能是允许部分和逐步迁移的迁移路径?
【问题讨论】:
-
允许部分和逐步迁移的迁移路径?对我来说,这听起来很诱人;但当然,除了行数之外,我对您的系统一无所知。它是模块化的吗,它是如何分区的等等?
-
该应用程序分为大约 200 个单元,并在 IIS 上提供旧式 WCF Web 服务。我在这里看到的问题是,尽管 .NET 允许语言互操作,例如在一个项目中组合 VB 和 C# 源文件 - 我不知道这种互操作如何适用于 C# 和 Delphi.NET
-
构建 UI 并通过 Interop 调用所有 Delphi DLLS 可以作为一个开始。然后,开始用适当的方法替换每个 DLL 函数调用。你的结果可以是更好的松耦合系统。
-
我认为如果你想把工作做好,你需要重新编写应用程序。
-
推荐阅读:有效地使用遗留代码(Robert C. Martin)
标签: c# .net delphi delphi-2007 delphi.net