将VB.NET winforms应用程序移植到C#有什么"好"的资源吗?我确信有软件只是翻译代码,但我希望同时重构代码.保持它当前的形式是有问题的,因为它使用VB.NET允许的一些"糟糕的设计"实践,并且将进一步使未来的维护变得复杂.这里有没有人经历过这个过程,你是怎么做的?你使用翻译/重构方法了吗?您是否只是使用最终产品来重新创建功能而不查看大部分当前的代码库?你(集体)推荐什么?
更新:
正如我告诉Grauenwolf一样,用当前语言保留它会出现以下问题:
无法轻松添加功能.VB.NET不是一种我坚如磐石的语言.我很欣赏学习语言的讽刺意味 - 但是未来的维护将需要考虑那些不了解VB.NET的人.
应用程序的其余部分已移植到C#(事实上很久以前); 我们想要添加的所有功能都取决于解耦应用程序(现在它非常紧密耦合).我的选择是用一种我不太熟悉的语言重构它,或用我理解的语言重构它.
对于任何投票问题的人,我不确定你为什么这样做; 关注的不是我是否应该将其留在VB.NET中; 关注的是现在没有移植它的未来成本是多少.如果我要花很多钱来修复它,那么为什么不采取额外步骤并使其可以为未来的程序员维护?
作者注:我多年没有看过这个问题,最近有回复,所以我把'回答'移到了问题中并删除了'回答'(因为它不是真的答案).
根据我使用混合VB和C#项目的大型应用程序的经验,我建议将其保留在VB.NET中.如果设计有问题,那么修复它们,但将整个事物转换为C#听起来像是一个混乱,不必要的分心给我.
两种语言之间的非风格差异非常小,因此很难看到强制转换的功能需求.(Visual Studio 2003中有一个旧的错误,它排除了某些项目引用链,它们以特定的方式混合了C#和VB项目,但这是我遇到的唯一一个实际障碍.)
个别开发者肯定倾向于偏爱一种或另一种风格偏好,但完全转换需要做很多工作才能尝试不同风格的语法糖.
如果你使用像Reflector或Anakrino这样的东西,它的输出是基于IL而不是原始来源.无论它是否产生更好的代码都可以争论......但无论如何你可以尝试一下.:)