从Delphi 2006迁移到Delphi XE2

时间:2012-05-28 02:59:38

标签: delphi delphi-xe2 delphi-2006

delphi 2006中有一个代码库,过去多年没有开发过。如果需要激活开发有哪些选项。

  • 继续在2006年开发。(不确定IDE支持等)
  • 迁移到Delphi XE2。 (不确定需要什么)
  • 用Java重新编码。

似乎第二种选择更可行,但它会涉及到什么呢?我阅读了一些关于Unicode支持的内容,也不确定图形库支持。

为了正确看待事物,我是一名Java程序员,并且拥有C / C ++方面的经验。但是,我试图从市场战略的最小阻力路径的角度来理解它。

提前致谢。

4 个答案:

答案 0 :(得分:8)

我不能说在Java中重新编码它。根据代码库的不同,它可能是一个不错的选择,因为你说你有Java的经验(而且,我认为,不是使用Delphi)。

关于升级到Delphi XE2:

检查是否已使用任何第三方组件。

如果没有,您可能只需很少的更改即可升级到Delphi XE2。

如果是,请检查这些组件的源代码是否已经可用。

如果没有,如果要升级到Delphi XE2,则必须购买这些组件的新许可证(这次需要包含源代码的许可证!)。如果你真的很不走运,开发这些组件的公司已经大肆宣传。那么你要么坚持使用Delphi 2006,要么必须找到这些组件的替代品。

如果您已经获得了组件的源代码,您可能仍需要检查是否将它们升级到Delphi XE2。它可能会让你有些头疼。对于经验丰富的Delphi开发人员而言,升级良好编写的组件并不是一个问题(多年来我已经做过无数次),但对于那些不知道可能存在缺陷的人来说,这可能几乎是不可能的。

Delphi 2006和XE2之间唯一的重大变化(实际上发生在Delphi 2007和Delphi 2009之间)是切换到Unicode字符串。切换现有的代码库可能是无痛的,也可能是下背部的真正痛苦,这取决于它开始时的写入程度以及它如何(ab)使用字符串。

您尚未提及的另一个选项可能是升级到Delphi 2007,这对Delphi 2006来说基本上是一个错误修正,而不是真正的版本。如果我没记错,Delphi 2006软件包可以在没有重新编译的情况下使用Delphi 2007。

答案 1 :(得分:4)

一年前,我从2006年搬到了XE(不是XE2)。这很无痛。最重要的是unicode。但即使这样也相对容易(可能在我的具体情况下)。大多数是由Delphi以正确的方式处理的。最大的问题是导入组件,特别是当字符串被用作字节字符串时,我的字段(音乐,midi)是常态。在Embarcadero上有一个white paper字符串转换。

我只使用可用来源的组件。如果不这样做,您可能需要重新购买许可证。

答案 2 :(得分:2)

这是2006至2011/2012的跳远比赛!

但如果您考虑到这一点,就有可能:

  • 您必须使用新的转换方法转换字符串变量;
  • 您必须检查2006和xe / xe2之间的所有版本,以了解库是如何更改的,因为有些版本已被删除,其他版本已合并,还有一些已删除;
  • 您必须购买/下载第三方组件的升级(如果有)。

如果你做了3件事,应用程序就可以正常编译。

答案 3 :(得分:0)

升级IDE总是比重写代码更容易,如果代码中的任何复杂性超出了“Hello,World”等微不足道的情况。

Delphi 2006中的重大障碍可能是:没有源代码的旧组件,unicode问题,可能使用过时技术(主要是BDE),以及可能的一些低级别黑客攻击,例如使用未记录的功能。

You get old versions of Delphi free when you buy XE2 licence.但Delphi 2006并不存在。 Delphi 2007几乎相同(但更好)。 It may even be possible to use D2006 binary packages with Delphi 2007

重写时,首先要找出软件的实际功能。逐行。然后你需要在Java中复制它,希望是Java风格,然后你需要验证功能实际存在的旧软件,重复。

因此,如果旧组件出现问题,您可以在重新编译或部分重写之间进行选择。

另请阅读这篇旧文章:Things You Should Never Do, Part 1

那就是说,你需要商业理由进行重写,并且有人愿意为此付费。