什么时候不可能支持Visual Basic 6.0应用程序?

时间:2008-12-30 15:02:22

标签: windows visual-studio vb6

在过去的3 - 5年里,我一直在更新基于Visual Basic 6.0的保险应用程序和商业集成工具包。

根据微软的“It just works policy”,2008年4月8日后不再支持IDE。

它仍然可以开发和部署Visual Basic 6.0应用程序。

什么时候不可能支持Visual Basic 6.0应用程序,或者它们会像Cobol应用程序那样永远存在吗?

更新:Microsoft声明2010年3月:Visual Basic团队致力于在Windows Vista,Windows Server 2008(包括R2和Windows 7)上为Visual Basic 6.0应用程序提供“It Just Works”兼容性。

2011年5月更新:
Happy 20th Birthday Visual Basic!

22 个答案:

答案 0 :(得分:35)

我会说他们处于危险之中,因为操作系统和硬件将从它们下面演变而来。

您可以在Windows XP上运行Visual Basic 6.0,但即使它已接近其生命的终点(它仍然在其死亡床上恢复)。

那些Cobol应用程序仍然存在,因为它们运行的​​大型机不会去任何地方。 “大铁”是在计算机价格昂贵且罕见并且必须运行20 - 30年的时间内建造的。不适用于基于PC和Windows的应用程序,这些应用程序被视为更易于使用。

答案 1 :(得分:27)

如果您需要继续支持VB6,我建议您创建一个包含XP和VB 6且包含所有服务包的VM。这样,即使桌面演变为可能与VB 6 dev环境不兼容的东西,您仍可以继续运行开发环境。两年前在Vista上安装Visual Studio 6时遇到了问题。

对于超出维护的新开发,我会考虑使用不同的环境。根据我的经验,您最好从一个全新的角度来看待它,而不是限制自己迁移到VB .NET。迁移是一件麻烦事,你真的应该在最适合你应用的环境中进行新的开发。这可能是VB .NET,也可能不是。

使用过时的技术开发永远不会成为问题,直到它成为一个问题,然后为时已晚。你需要保持在曲线的最佳点,你是唯一可以决定它是什么的人。如果过早切换,你可能会做出错误的决定,如果你等待太久,你将会落后太多。正是这样的决定让这个领域同时变得有趣和痛苦。

答案 2 :(得分:11)

各种机械制造商在VB6中开发了大量垂直市场软件。 VB6使用ActiveX控件,ActiveX DLL以及消耗大多数Win32 DLL的能力已经导致许多厂商的各种组件都支持VB6。

使用VB6和支持库比定制芯片上的旧组装方法或使用C的速度快至少一个数量级,更可靠。请注意,即使是C / C ++开发人员也可以使用它们,因为它们可以使用新的也支持图书馆。

这些应用程序中的许多都填充了数学函数,这些函数已经过测试,适用于环境及其设计的机器。

因此,当微软使VB.NET与VB6不兼容时,这对我们许多人来说是一笔巨大的交易。与从VB3到VB4-6的过渡不同,我们必须在很多地方触摸我们的代码才能使它与.NET一起工作。实际上很多事情都与用新语言重写软件的方式相同。

由于这些原因,VB6将继续存在一段时间,因为所有这些机器都在那里。仍需要新的更新和修复。

答案 3 :(得分:9)

它可能会工作很多年,但最终你将达到必须维护旧硬件,运行旧的,不可修补的操作系统以运行软件的程度。与此同时,你错过了所有开发的新框架和语言好东西。最终,您需要修复某些内容或添加在您的环境中无法实现的内容,然后您需要为累积的技术债务支付整个账单。

我的看法:您应该已经在升级到更新的平台或替换应用程序了。在我被迫处理之前,我几乎总是这样做。

答案 4 :(得分:6)

我认为Visual Basic 6.0应用程序将会存在很长时间,例如COBOL应用程序,并且出于类似的原因。我公司的部分产品仍然是VB6,在有充分理由之前不会更改。我们希望微软无法在很长一段时间内放弃VB6支持,因为他们的企业客户太多都拥有VB6应用程序。他们已经被迫将支持期延长到原来的计划之外。我们希望Raymond Chen能够战胜MSDN杂志 - 这个模糊的笑话只有在你记得Joel's post关于微软的后向兼容性与设计纯度的困境时才会有意义。

如果您正在考虑升级或重写,恕我直言this questionthis question会提供一些信息丰富的答案。如果有你想要的.NET功能,或者你只是想学习.NET,你可以使用Interop将新的.NET组件与现有的Visual Basic 6.0混合使用。

Visual Basic 6.0 newsgroups仍然非常活跃,所以很明显很多像我这样的老版本仍然在Visual Basic 6.0中开发:)

Duffymo,Bruceatk - Vista上的Visual Basic 6.0 IDE can be made to work,付出了一些努力。

答案 5 :(得分:5)

我希望在Windows 7之后支持VB6应用程序是不可能的。(我希望VB6运行时和IDE可以在Windows 7上运行,但不能在Windows 8上运行)

更新:2012年2月17日 Microsoft的Visual Basic 6.0支持声明现在包含Windows 8.它们意味着IDE也可以在Windows 8上运行。 http://msdn.microsoft.com/nb-no/vbrun/ms788708(en-us).aspx

答案 6 :(得分:5)

COBOL是一种公共标准,多个供应商在多个硬件平台上实现了多种实现。

VB6仅受微软支持,他们已经告诉过你,他们不会在新版本的Windows上支持它。所以最终它会有效地死亡。 COBOL可能也是如此,但远没有那么快。

答案 7 :(得分:4)

我十年前开始使用Visual Basic 3.0进行专业编程,我可能是最后一个迁移到.NET的人(我在2004年做过)。所以你不可能找到比我更大的平台崇拜者。

  1. 我认为Visual Basic 6.0不会很快消失。其中编写了许多遗留应用程序。公司会计软件,定制工具,您可以为它们命名。所以应用程序将会出现。

  2. 新的Visual Basic 6.0应用程序的数量正在逐渐减少,因此,如果您希望从事Visual Basic 6.0程序员的工作,那么您就已经过时了。

  3. 也就是说,对能够维护/修复/升级旧代码的人的需求非常强烈。

  4. 我有用Visual Basic 6.0编写的软件,它有大约10万用户,并且仍然很强大。我的所有新开发都是在C#中,但对于这个特定的软件,我想我会在2009年底或2010年开始用C#重新编写它。所以至少在那之前我没有看到Windows不支持Visual Basic 6.0。

答案 8 :(得分:4)

我认为他们会永远在那里。原因很简单:MS无法发布不支持它们的操作系统,因为没有大公司会购买该操作系统。

答案 9 :(得分:4)

使用VirtualPC / VMWare / VirtualBox等进行虚拟化,理论上应该可以支持VB6应用程序,前提是您拥有可以正确运行VB6的主机操作系统,您可以虚拟化运行这些应用程序。

我在考虑许多运行为NT4编写的软件的公司缺乏对虚拟机中新机器的驱动程序支持。

答案 10 :(得分:4)

从某个方面来说,它们将永远存在,因为vb运行时将继续在当今存在的微软操作系统上运行。例如,VB6应用程序仍可在Vista中运行。当microsoft停止在其操作系统上支持VB6运行时时,VB6应用程序将无法支持。

这意味着它们可能会继续存在,就像今天仍然存在一些COBOL应用程序一样。现在,新代码几乎永远不会用有效的死语言编写,因此VB6技能的可销售性会逐渐下降,直到一些低稳态仍然存在。

答案 11 :(得分:4)

您将始终能够在VB 6中进行开发,因为Microsoft不会访问您的计算机来卸载它。 如果您不想重写您的应用程序,那么您不需要/不必。

但是你现在获得的工具与你十年后的工具相同。因此,随着新的计算机科学范式的出现,你最终可能会落后(假设你不会开发自己的VB编译器)。

通过坚持使用当前的VB,您的应用程序将始终“可能”维护,但每秒都会变得更难。

答案 12 :(得分:3)

如果你仍然拥有操作系统和工具,它将永远不会“不可能”支持它们。

真正的问题是,如果你仍然想要支持他们。

答案 13 :(得分:3)

VBA还需要运行Visual Basic 6.0应用程序所需的大部分内容。

VBA不会很快发生 - 它的内容太多了。

因此,如果您已经足够大,可以在Visual Basic 6.0中进行开发,我不会担心它会在您的生命中停止工作。

答案 14 :(得分:2)

我认为Visual Basic 6.0将继续工作很长时间。首先,.NET作为商业大规模分布式应用程序的开发平台失败了。似乎没有人使用Visual Basic 6.0 / C ++的方式。 .NET运行时仍然不可靠(从经验来看,我们提取了一个.NET应用程序并用C ++重新编写它是出于这个原因)

我同意就业能力。

松散Visual Basic 6.0是微软的一个重大错误:它们被整个OO事物所催眠。大多数人都希望快速发展,而不是关于美丽代码的迂腐论点。

VBA取代了办公室内的Visual Basic 6.0:谁想到通过.NET路由操作Office?

答案 15 :(得分:2)

运行时仍然是.NET的噩梦。

我支持20,000-30,000个桌面上的代码并分析它们的注册表。没有任何.NET运行时(更不用说2+)的PC数量是惊人的。没有人可以向他们大规模分发辅助代码(核心应用程序是C ++),而不需要大量的支持人员来重新启动。

C ++是客户端应用程序的唯一方法。

整个OO海市蜃楼给MS带来了多么灾难,所以我们!什么是成本充气器!

...和ASP.NET webforms / viewstate ...我可以输入DAYS(我们的编程承包商显然已经这样做了。)

答案 16 :(得分:2)

VB6可能将永远存在于保险/银行类型组织中。硬件走出他们的领域不是问题。他们只会得到某种形式的模拟器。我已经看到一个非常旧的大型机的应用程序在一个模拟器内工作,该模拟器在另一个模拟器中。

对于非技术人员而言,考虑重写并重新测试已经有效的东西通常只是商业意义上的。 -

欢迎来到痛苦的地狱世界......现在出去:-) -

答案 17 :(得分:1)

我不得不说这是你不能指责的那么多(并且公正!)诽谤的COBOL。

COBOL不断得到IBM,UNISYS,MicroFocus等多个平台的新版本的支持,这些平台支持最新的硬件,64位寻址,内置的XML支持等等。甚至还有一个Linux版本(OpenCobol)。进展顺利。

此外,语言本身也在不断发展(如果你可以用新的保留词开发同样的旧错误: - })如果你不相信我,最新的语言规范完全是OO看here

所以COBOL还没有死,只是过时了。虽然我认为VB 6.0真的已经死了,而且自己的葬礼有点迟了。

答案 18 :(得分:1)

VB6程序不是Win32可执行程序,它依赖于许多附带的COM-ActiveX库。所以它只需要创建一个合适的setup-package。

顺便说一句,VB6 IDE在Windows 7 64位机器上完美运行(当然还有几个小调整)。

PS。不幸的是,我的公司仍然提供商业和公开提供的VB6产品,所以 - 我碰巧知道这一点。

答案 19 :(得分:1)

Visual Basic 6.0可以使用,直到您需要使用线程,或者直到您必须面对大于4 GB的文件。

答案 20 :(得分:1)

如果你开始将机器和操作系统添加到应用程序将不再运行的混合中,它就变得“不可能”。

Vista仍将运行VB6应用程序。我的猜测是7还将继续这样做......如果没有,总会有虚拟化。

贵公司可能计划的任何类型的硬件/操作系统升级都需要考虑现有的LOB应用程序。这与考虑当前版本的Office或您的电子邮件客户端没什么不同。

PC并没有真正的失效日期。即使你坚持使用XP,你也可以获得适合它的硬件,并且会在相当长的一段时间内继续这样做。如果您购买预制机器,则可能需要简单地降级已安装的操作系统。这不是什么大不了的事。

也就是说,在事情变得困难之前你可能还有3年左右的时间,之后又有1或2年之后人们不再想要在你的IT部门工作,因为一切都是古老的。

答案 21 :(得分:1)

我怀疑VB6应用程序的生命有限,因为雷德蒙德必须让其编码员忙着从每个人手中拔出地毯。

如果您认为在.NET中重写您的应用程序将保证其永生,请记住DDE,OLE,COM,DAO等等。

如果一个应用程序有效,没有好的理由它应该停止工作,没有人找到资源每隔几年重写一次,但遗憾的是有很多原因。