我有一个非常古老的 Visual Basic (.net 1.1) 项目,现在我愿意继续开发,但不是在 Visual Basic 中,而是在 C# 中。有没有办法将其转换为 C#?我可以想到两个选择:
- 使用在线提供的源代码转换器(但大多数时候它们都失败了,而且项目很大)
- 编译并将其反编译为 C#(虽然我会丢失注释和杂注标记)
进行此转换的推荐方法是什么?
我有一个非常古老的 Visual Basic (.net 1.1) 项目,现在我愿意继续开发,但不是在 Visual Basic 中,而是在 C# 中。有没有办法将其转换为 C#?我可以想到两个选择:
进行此转换的推荐方法是什么?
鉴于 .NET 自 .NET 1.1 以来发生了相当大的变化——特别是,有更多可用的库等会改变你处理各种任务的方式——我很想重新开始。鉴于您已经在更改 .NET 版本和语言,即使只是为了获得直接端口,您也需要投入大量工作......所以为什么不利用您从现有项目中学到的经验并进行投资呢?创造一个新的?
(我知道Joel 关于重写的博客文章,但是如果您已经决定通过将其转换为另一种语言来进行伪重写,那么我认为无论如何这种痛苦是不可避免的。)
对于编写良好的 VB 1.1,在线转换器应该做得不错。我会尝试批量转换项目的文件,然后手动浏览它们以查找明显的错误。
在线转换器更倾向于扼杀在较新版本的 .NET 中引入的功能(有充分的理由 - 这些功能导致编译期间更基本的代码转换,即它们使语言更加困难)。
/编辑:但 Jon 所说的有其优点:.NET 1.1 完全不同,在许多方面不如现代 .NET,并且自动转换不会帮助您在代码中采用现代语言和 CLR 功能。
刚刚重读了 Jon Skeet 提到的 Joel 的帖子,我想说一定要听从他的建议。编写一个引用旧 VB.NET 项目的新 C# 项目,并将代码从旧项目一点一点地移动到新项目中,一次一个类。每次你需要修改一些东西时,将相关代码从旧项目移动到新项目。
这应该有一些优点: