我打算将大型vb6应用程序升级到.net.该项目使用许多第三方组件,例如VSFlexGrid以及水晶报告.它还使用源代码不可用的旧VB6 dll.我的问题是
我应该将源转换为C#还是VB.net足够强大?对于不受支持或使用不安全/过时技术的第三方组件,我该怎么办?
我欢迎任何以前做过这件事的人提供任何有用的意见.
这是对我对类似问题的几个答案的改编.
自动转换是比重写更好的选择.这是一个常见的陷阱,开始乐观地重写一个大型软件,在旧架构中修复一些众所周知的缺陷,早日取得良好的进展,然后陷入你多年来一直认为理所当然的功能陷入困境.在这一点上,您的管理层开始变得神秘莫测,一切都会变得非常不舒服.
......这是微软的一篇博文,与我同意:
我在.NET早期工作的许多公司首先考虑的是重写,部分原因是他们在迁移到.NET的同时强烈希望改进底层架构和代码结构.不幸的是,许多项目遇到了困难,有些项目从未完成.他们试图解决的问题太大了
这个优秀的Microsoft 页面建议使用两个第三方迁移工具,而不是(不再可用)内置的VB.NET升级向导--Artinsoft和CodeArchitects VBMigration.我相信他们对常见的第三方控件和DLL有一些支持 - Artinsoft支持这些.值得联系他们的依赖列表.VBMigration有一个免费工具,出于这个原因列出依赖项.也值得联系原始供应商,希望.NET等价.
微软页面还说:
对.NET执行完全重写要花费更多,并且难以做好[转换] ...我们只会在少数情况下推荐这种方法.
在Stack Overflow上有比VB.NET开发人员更多的C#开发人员,所以你可能会得到几个推荐C#的答案.从历史上看,微软也倾向于在.NET的新部分的代码示例方面更热情地支持C#等等.但微软现在向我们保证:
[C#和VB.NET]都是基于Microsoft .NET Framework的一流编程语言,它们同样强大.
因此,无论您是要选择C#还是VB.NET,都是个人决定.Artinsoft工具声称它可以将VB6转换为C#.
编辑:我刚刚通过编程网站上的广告找到了另一个产品--NewCode!
我的判断是,该网站并不像我上面写的两个竞争对手那么详细.这可能是不公平的.微软爱尔兰的一些人写了关于他们的博客 - 我认为他们的总部设在爱尔兰.显然,该工具将您的VB6转换为DSL,然后转换为VB.NET Winforms,C#,WPF,Java ......