这一切都在C#存在之前就开始了
回到1999年,我们有了Visual Studio 5/6。如果您是使用Windows的独立软件供应商或公司,并且需要编写一个可以例如跟踪员工在项目上花费时间的应用程序,则可以选择以下几种方法:
- Visual Basic中的表单。
- Visual C ++中的MFC,ATL或Win32。
- Access 97/2000中的表单。
- ASP网站。
- Java applet。
当时,我们正处在Dot-Com泡沫破灭之前,因此,凡是对(4)或(5)表示满意的人,都去参加他们被其吸引的惊人的网络公司的股票期权谈判。
(3)在锁定和总体可伸缩性方面存在问题,但是我看到了许多由访问驱动的解决方案,这些解决方案可以根据需要运行支持功能。
这样就剩下了VB和VC ++:
当时,VB中的Forms编辑器在生产率方面非常出色。您可以拖放组件-不仅可以拖放按钮,标签和文本框,还可以拖放可重用组件的完整“ OLE控件”工具箱,例如聪明的Grids,Excel工作表或IE实例。连线是在后台进行的-一切都像对象一样,您只需双击事物即可添加事件处理程序。在Visual C ++中,这要困难得多。当时,作为Visual Studio开发人员支持团队的成员,我记得Visual Basic支持呼叫主要是关于哪个组件最适合使用或如何以某些方式优化其应用程序。几乎从来没有“我如何制作具有X,Y和Z用户界面功能的应用程序”。
在Visual C ++中构建丰富的UI是另一个挑战。尽管对对话框和SDI / MDI表单提供了Visual Editor支持,但它的功能还是相当有限的。将OLE控件(ActiveX)嵌入到MFC或Win32中的支持是一门妖art的事,尽管在ATL中要容易一些。连接诸如调整大小事件或所有者绘制之类的简单操作非常痛苦,更不用说组件中自定义事件所需的连接点了。
是的,VC ++具有执行速度,调试能力和灵活的框架/库/ UI选项,但是IDE支持无法涵盖所有方面,因此可以通过向导,全面的MFC类层次结构和90天等解决最常见的操作/ 2-free-idents支持行。
IIRC,VB附带的应用程序打包器,可以打包您的应用程序,VB运行时和最新的通用控件DLL,并为您提供一个独立的EXE安装程序,您可以将其放置在CD上并提供给客户。“您已安装了哪个msvcrtXX.dll和mfcxx.dll?”都没有,这困扰着MFC开发人员。
因此,出于上市时间和丰富的用户界面的原因,VB得到了很大的关注。
当Visual J ++和Visual Interdev在VS6中出现时,很明显,Visual Basic IDE赢得了与Visual C ++的较量,这是公平的恕我直言。毫无疑问,Visual Studio .NET为新的COOL C#语言提供了类似于VB的表单编辑器。
类似于Java / C / C ++的新语言,再加上VB人们一直喜欢的UI设计器,为现在使用MFC / ATL / Win32的C ++人们提供了新的迁移途径。对于不喜欢VB.net中缺少100%向后兼容性的VB 3/4/5/6的人们,这提供了一个在熟悉的环境中学习新语言的机会。
VB之所以如此全面,其原因可能与Microsoft的起源有关,而Basic是其旗舰开发人员产品,但目前我没有任何引用。