3

我正在开发一个 VB6 遗留应用程序。我已经开始在 VB.NET 中编写所有新代码,本质上是创建我所谓的互操作层。我可以通过两种方式解决这个问题:

  1. 使用此互操作层在 VB.NET 中编写所有新代码,并使用分阶段的方法进行升级。
  2. 继续编写 VB6 代码,然后在以后将其全部转换(使用大爆炸方法)。我目前没有时间转换整个应用程序。

我的问题是,哪种方法更好?

更新 我喜欢选项 1 的原因是因为有一个 ASP.NET 应用程序。以前的开发人员会在两个应用程序(即 VB6 和 ASP.NET)中有效地复制代码。因此,ASP.NET 应用程序中的一些代码可以与 VB6 共享,反之亦然。这就是为什么我认为选项 1 更好,但我找不到任何文献表明开发人员实际上会这样做

4

3 回答 3

2

在前世,我参与了同一类型的项目。原始应用程序是使用 Access 作为其框架编写的。然后出现了 VB6,它似乎工作得很好,并且允许更多功能,而不必改变最初在 Access 中编写的大部分内容。

随之而来的是.Net ...

...尽管我不喜欢 .Net 的开发阶段并且被迫使用互操作性层,但这是必要的。

也就是说,我将尽可能主观地回答这个问题:

如果您知道应用程序将完全转换为 .Net,那么请尽可能多地使用 .Net 进行新开发。除了对互操作性的看法(和事实)之外,我没有其他理由推迟它——例如更多的开销、性能等。

侧边栏 - 至少您没有与 Access 的互操作性问题......当它崩溃时,它会破坏一切。这是我第一次使用互操作(使用 Access),它并不漂亮。

等待.Net开发的优势:

  1. 交付时间更短(无互操作层)
  2. 更稳定的应用程序(无互操作层)

等待.Net开发的缺点:

  1. 重新编写整个应用程序时,发布周期很长(并且可能无利可图)
  2. 引入了许多新的错误
  3. 学习编写单元测试,这将是你的最后一件事

Beginning .Net development now will increase your chances of success in the long run. I don't believe an interop layer is going to cause you the headaches it did for me - and any degradation in performance should be minimal.

I don't know if you are involved with a team of developers on this project, but if you are, make sure everyone is on board with the move to .Net. I've seen a few VB6 developers strike a dear in the headlights pose over VB.Net. The nature is to continue writing in the same style they're used to.

于 2012-07-04T19:05:14.243 回答
0

我个人会使用你的第一个选项(因为你已经实现了互操作性层),这样当你做它时它会减少重写的痛苦......如果你正确地设计你的类结构。第二种选择将是我的首选方式,但由于您有时间限制,请使用第一种。最终 VB6 运行时不会成为较新版本的 Windows 的一部分,请参阅这个SO question。我自己有一个需要转换的 VB6 应用程序。

于 2012-07-04T18:38:45.587 回答
0

专注于为用户提供他们想要的东西。如果在 vb6 中更容易做到这一点,那么就这样做。在需要转换为 vb.net 时担心转换为 vb.net。将 vb6 转换为 .net 的工具现在非常好,正在不断开发中,因此有望进一步改进。

于 2012-07-04T18:49:21.360 回答