2012-09-16 38 views
1

我有一个非常古老的Visual Basic(.net 1.1)项目,我愿意继续开发,但不是在Visual Basic中,而是在C#中。 有什么办法将它转换为C#?我能想到的两个选项:将Visual Basic(.net 1.1)项目转换为C#

  1. 使用源代码转换器可在网上(但他们失败了大部分的时间,而该项目是大)
  2. 它和反编译它来编译C#(虽然我会失去评论和编注标记)

什么是建议做这种转换的方法?

+0

选项2,举手。评论可以被复制和粘贴。 – 2012-09-16 18:26:05

回答

3

鉴于.NET自.NET 1.1以来发生了相当大的变化 - 特别是有更多的库可用,这将改变你将如何处理各种任务 - 我很想重新开始。鉴于您已经在改变.NET版本和语言,即使只是为了获得一个直接的端口,您也会做很多工作......所以为什么不从您现有的项目中吸取经验教训并投资创造一个新的?

(我知道的Joel's blog post on rewriting,但如果你已经决定,你将它转换成另一种语言要伪重写,我觉得有些疼痛是不可避免的反正。)

+0

您会如何看待Joel的建议?通过引用旧的VB.NET项目来创建一个新的C#项目,并逐渐移动代码? – phoog

+0

@phoog:说实话,这取决于项目。在某些情况下,这将是伟大的;在其他情况下,最终可能会迫使你坚持做出错误的决定。 –

1

井写的VB 1.1,在线转换器应该做一个体面的工作。我会尝试批量转换项目的文件,然后手动浏览它们以查找明显的错误。

在线转换器更倾向于扼杀.NET新版本中引入的功能(出于很好的理由 - 这些功能会导致编译过程中出现更基本的代码转换,即它们会使语言更难)。编辑:但是Jon说的有好处:.NET 1.1与现代.NET差别很大,并且自动转换不会帮助您将现代语言和CLR特性引入代码。

0

刚刚重读Joel Skeet提到的Joel的帖子,我会说接受他的建议。编写一个引用旧的VB.NET项目的新C#项目,并将代码从旧项目中逐个移动到新项目中,一次一个类。每次您需要修改某些内容时,请将相关代码从旧项目移至新项目。

这应该有一定的优势:

的作品,并不需要被感动可以保持不变
  1. 旧代码。
  2. 您甚至无法在运行程序之前彻底重写数周或数月的繁琐代码翻译,从而避免所需的开销。
+0

它规定了转换顺序,请注意,如果类型X指向Y类型,则必须先转换类型Y *,或者同时转换类型Y *。它也采用了现有的设计,正如我所说,这可能不合适。 –

相关问题