2011-06-01 24 views
5

我们的一个客户希望他们的Delphi应用程序转换为.NET 4.0。在阅读本网站上对各种类似问题的回复之后,我决定采取一步一步的方式将Delphi代码转换为.NET。从Delphi转换到.NET 4(没有任何工具)

由于我是一名.NET开发人员,我需要先熟悉Delphi。找到能够全面概述Delphi概念的单一站点是相当困难的。此外,我还没有找到任何网站提供有关在.NET中的Delphi的等价物的信息。 例如.NET中“stdcall”或“export”的等价物是什么?或者什么是.NET中特定的Delphi数据类型的等价物?

有没有人知道这种在线资源,它提供有关Delphi中的.NET等价物的信息?另外如果有人可以提供任何提示呢?

+0

这太广泛了,无法回答。阅读delphi语言指南并从那里获取它。 – 2011-06-01 12:22:48

+0

请参阅Embarcadero的文档wiki:http://docwiki.embarcadero.com/RADStudio/en/Main_Page – 2011-06-01 12:29:14

+3

我想补充一点,在语言元素之间寻找1:1映射是错误的。如果这会削减它,那么会有自动化的工具。例如,'stdcall'和'export'关键字指示一个设计用于其他应用程序的DLL。在.NET世界中没有直接的等价物,因为你无法从本机应用程序链接到.NET库,你需要使用各种互操作技术。 – 2011-06-01 12:39:36

回答

2

真的,要做到这一点的最快方法是从开始刮。试图将来自Deplhi的遗留代码转换为C#只是充满了问题,并且最终会有类似Delphi的C#应用​​程序。底层框架,Delphi中的VCL和.NET中的FCL具有显着的体系结构差异,所以考虑到转换时间大致相当于从头开始开发的时间量,所以您正在向第二类应用程序,如果你沿着转换路径。

而且我可能会补充说我已成功将应用程序框架从Deplhi转换为Delphi.NET,以用于Visual Studio。我这样做是为了维持两个开发环境之间的进程间通信和架构兼容性。如果这个好处不大,我就不会做这个转换。

2

正如其他人指出的那样,除非决定全面解释德尔福是什么以及它如何与网络进行比较,否则没有直接的方法可以回答这个问题。

您可能有兴趣了解RadStudio的最新版本确实包含了一个集成在VS中的Delphi.NET。

这可能是您工作最短,最安全的途径。

对于初学者来说,这两个版本(虽然差别很大)仍然具有足够的相似性,可以大部分进行交叉编译 - 这肯定是一个开始。

我不确定GUI,但只要应用程序使用主流组件,应该有dotNET对应。例如,想到DevExpress和TMS。

最后,但并非最不重要的,我相信,如果你需要任何具体的帮助,我们都会很乐意帮助:)

安德烈

+2

我不会推荐移植到Delphi Prism,主要是因为客户端明确要求使用c#版本,并且从Delphi win32移植到Delphi Prism几乎与移植到c#一样的工作量。 Delphi Prism或Oxygene不是Delphi,它是.NET的Object Pascal编译器。真正的Delphi.NET(德尔福2007年.NET)已停产,并有很好的理由。例如,在Delphi Prism – 2011-06-01 13:39:19

+0

中没有类变量这部分是正确的,但有几点需要考虑: 1)虽然语言不同,但仍然有很大的兼容性。 2)的确,Delphi.NET不是C#,但这不是问题,因为有很多转换器,包括诸如反射器 Plus之类的东西,虽然不可能匹配Delphi和dotNET 1到1,但它确实更快这样(在我看来)而不是任何其他选择。 Andrea – 2011-06-01 13:49:29

+0

移植到棱镜也会保持与VCL的联系,这是一个巨大的优势,使用C#时,您必须使用完全不同的框架。除了棱镜,您可以重用(大部分).dfm文件,而C#则必须重新设计这些文件,方式更多。 – Johan 2011-06-01 16:15:04

1

我会采取一些自动化工具移植到C#只是为了让你感受到移植不同语法的痛苦,之后就是所有的手工工作。

而且有一本书Delphi开发描述.NET和异同,.NET 2.0 for Delphi Programmers我知道,这是周围的其他方式,但IMO可以帮助

+0

谢谢@Antonio Bakula。我认为[Delphi程序员.NET 2.0]([http://www.amazon.com/NET-2-0-Delphi-Programmers-Shemitz/dp/1590593863])和[Delphi for .NET开发人员指南](http: //www.amazon.com/Delphi-Developers-Guide-Xavier-Pacheco/dp/0672324431/ref=ntt_at_ep_dpi_1)将会非常有用 – 2011-06-01 14:04:54

+0

-1链接到VCL和DFM文件怎么样?这是大多数工作的地方.... – Johan 2011-06-01 16:16:05

+0

自动化工具可以做到这一点,例如Delphi2CS可以将* .dfm文件转换为C#代码。在他们的网站上,他们表示Delphi2CS可以将VCL组件转换为c#。我没有使用它,所以我不知道这是如何工作的,但我做了一个研究,将我的Delphi 2006系统移植到C#上,在我当时工作过的最后一家公司(2007年)建议取消一起移植并继续使用Delphi :) – 2011-06-01 17:42:47

相关问题