c# - 有哪些工具可以将 Delphi 7 应用程序转换为 C# 和 .Net 框架?

标签 c# delphi migration

<分区>

我维护着一个用 Delphi 7 编写的旧的仅限 PC 的应用程序。尽管 Delphi 在过去为我提供了很好的服务,但我现在只将它用于这个应用程序,并且发现我的语言技能正在下降。它的语法与我的“日常工作”语言 Java/Ruby 差别太大,所以我需要更长的时间才能开始编写新代码,而且它太旧了,我没有使用过很多接口(interface)所以代码不受管理,这对我来说似乎很古老!

我的许多用户正在迁移到 Vista,这可能会在兼容模式下运行应用程序,或者可能会出现 GPF 问题,具体取决于 IT 部门如何配置他们的 PC,因此我必须对应用程序进行一些维护。我想知道我是否应该跳到一个更熟悉的堆栈。

是否有一个自动化工具可以完成将代码库转换为 C# 的工作,让我专注于任何非标准组件的转换?我正在使用一个名为 AbsoluteDatabase 的嵌入式数据库组件它与 BDE 兼容并始终使用标准 SQL,还有一个原生的 Delphi HTML 浏览器组件,可以与 Microsoft 世界的某些东西交换。

这些转换工具有多好?

最佳答案

我不知道有任何自动化工具可以进行这种转换。我个人建议您坚持使用 Delphi,也许只是升级到新版本。我见过一些尝试从 Delphi 转换为 C# 的 DOM 代码,但这并没有解决库问题。

CodeGear(正式名称为 Borland)有一个用于 going from C# to Delphi 的工具那行得通。我假设其他方向的工具将工作相同(需要大量编辑)。这是一个瑞典语工具,其工作原理与来自 Delphi to C# 的 CodeDOM 原理相同。 (以及许多其他语言)。还有其他的,我现在找不到。

另一种选择是升级到更新版本的 Delphi for .NET 并以这种方式将您的代码移植到 .NET。一旦你让它在 Delphi for .NET 中工作(这将非常容易,除了嵌入式数据库,除非它们有 .NET 版本)你可以使用 .NET ReflectorFile Disassembler将 IL 反转为 C#。您仍将使用 VCL,但可以使用 C# 而不是 Object pascal。

另一个类似的解决方案是将其移植到 Oxygene by RemObjects .我相信他们有从 Delphi Win32 迁移到 WinForms 的路径。然后使用 .NET ReflectorFile Disassembler将 IL 反转为 C#。

简而言之,没有简单的答案。语言迁移比库迁移更容易。这在很大程度上取决于您使用了哪些第 3 方组件(除了 AbsoluteDatabase)以及您是否直接在您的应用程序中进行了任何 Windows API 调用。

另一个完全不同的选择是寻找离岸团队来维护应用程序。他们可能可以很便宜地做到这一点。你可以在国内找到人,但毫无疑问,这会让你付出更多(尽管美元贬值和就业市场不景气,你永远不知道......)

祝你好运!

关于c# - 有哪些工具可以将 Delphi 7 应用程序转换为 C# 和 .Net 框架?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59547/

相关文章:

c# - 在 Windows 窗体中渲染 OxyPlot 图形

c# - neo4j 任务已被取消

c# - 将 Lambda 表达式声明为类常量字段

delphi - 多对多中的 AutoID 字段,使用 TDataSet/Query (Delphi/MSAccess) 插入

sharepoint - 将 MediaWiki 站点迁移到 Windows Sharepoint Services Wiki

c# - ASP.NET 4.5 或替代框架中的 OpenIdDict?

delphi - 为动态创建的控件制作屏幕截图

delphi - 为什么 TDateTimePicker.Checked 在 Windows 7 上始终返回 True?

php - Yii2迁移问题

database - nhibernate + 迁移工作流程