我已经尝试了一些可用的选项,例如Netcoole的Delphi2CS和TurnSharp。它们都是非常简单的代码,如果你有组件,它将产生大量的错误。我的项目很大,大约1GB,计算所有vcl,源和存储库。是否有这样的工具来进行这种重型转换?感谢。
答案 0 :(得分:10)
恐怕没有可靠的自动化工具来实现这样的功能。 Delphi和.NET之间的差异很大。我在2002年进行了类似的转换,我手动完成,通过从头开始重写整个项目,这是硬核的东西。显然,如果您认为将其移植到.NET将是一项太多的工作,您可以通过将其公开为COM对象来重用功能。
答案 1 :(得分:3)
立即停止。我做了大约70,000行代码的转换,所有非可视类库的东西,我估计需要3个月才能使它正常工作,即使用Delphi 2007.NET编译器编译程序集并在Visual Studio 2010项目中使用它们。为了我的目的,这很重要,因为它给了我一个跨平台的分布式应用程序框架,但这种努力几乎杀了我!
答案 2 :(得分:2)
这可能是一个天真的建议,但您是否考虑过转换为Delphi Prism(基于Delphi语法的.NET语言)?
它仍然不是一件容易的事,但是一些VCL组件(例如来自DevExpress的组件)具有.NET对应物。
答案 3 :(得分:1)
进行这样的转换毫无意义。这将花费数年时间(没有工具可以在您需要的复杂程度上为您完成此项工作),结果将是您目前所拥有的更复杂的版本。 C#应用程序将在您当前应用程序运行的所有相同操作系统中运行,并具有所有相同的功能。 (实际上有些可能会掉线,因为本机代码可以做几件事.net代码不能。)
此外,您将无法找到处理转换所需的程序员,因为这需要具有Delphi和C#专业技能的开发人员。如果你认为很难找到Delphi的开发人员,那就等到你试图找到也是C#专家的Delphi开发人员并且愿意开展这样的转换。它们比黑色独角兽更难找到。
答案 4 :(得分:0)
您的项目不太可能具有所需的单元和集成测试级别,这使得这不仅仅是一个非常昂贵和困难的项目。使用自动转换时,很难实现使代码惯用于现代c#所需的体系结构更改。
答案 5 :(得分:0)
如果您打算使用WPF进行可视化界面,那么您可以使用hwndhost来托管现有的Delphi框架。我们刚刚开始真正做到这一点,并且让我们一次性重写整个代码库。请查看http://msdn.microsoft.com/en-us/library/aa970061.aspx以获取微尘信息。
答案 6 :(得分:0)
我们已经尝试使用我们的D7应用程序,或实际上我们打算这样做并在分析阶段结束放弃,因为我们无法找到并使用合适的工具来完成此操作而无需修复大量错误和错误在它背后。
我建议你考虑使用一个新的IDE(如果你有一个旧IDE),如果你真的必须这样做。无论如何检查this similar question并阅读有这个问题的人的经验,这不是真的令人鼓舞。