简介
1991年,美国微软公司推出了Visual Basic(可简称VB)。
Visual 意即可视的、可见的,指的是开发像Windows操作系统的图形用户界面(Graphic User Interface,GUI)的方法,它不需要编写大量代码去描述界面元素的外观和位置,只要把预先建立好的对象拖放到屏幕上相应的位置即可。
Basic 实际上是一个短语的缩写,这个短语就是 Beginners all_purpose symbolic instruction code ,其中文意思为“初始者通用符号指令代码语言”。
Visual Basic 6 有学习版、专业版和企业版三种版本,以满足不同的开发需要。学习版适用于普通学习者及大多数使用 Visual Basic 开发一般 Windows 应用程序的人员;专业版适用于计算机专业开发人员,包括了学习版的全部内容功能以及Internet控件开发工具之类的高级特性;企业版除包含专业版全部的内容外,还有自动化构件管理器等工具,使得专业编程人员能够开发功能强大的组骨子里分布式应用程序。
Visual Basic 是一种可视化的、面向对象和采用事件驱动方式的结构化高级程序设计语言,可用于开发 Windows 环境下的各类应用程序。它简单易学、效率高,且功能强大可以与 Windows 专业开发工具SDK相媲美。在Visual Basic环境下,利用事件驱动的编程机制、新颖易用的可视化设计工具,使用Windows内部的广泛应用程序接口(API)函数,动态链接库(DLL)、对象的链接与嵌入(OLE)、开放式数据连接(ODBC)等技术,可以高效、快速地开发Windows环境下功能强大、图形界面丰富的应用软件系统。随着版本的提高,Visual Basic的功能也越来越强。5.0版以后,Visual Basic 推出了中文版,与前个版本相比,其功能有了很大提升。 但是,功能再强大,Visual Basic 仍然有一个缺点:在没有MSVBVMDLL的计算机上必须安装所需的DLL文件。用它可设计操作系统,不过,比较困难。 在21世纪初,Microsoft 公司推出 Visual Studio .NET 2003,它与 Visual Basic 之间有了重大变化,Visual Studio 为各种编程工具做了一个平台,Visual Basic.NET 可在这种平台上运行。相对于传统VB,有很大的不同。VB .Net,首次使用.Net构架进行可视化编程,并且能很好地与COM构架兼容,Visual Studio .NET 2003 应用 .NET Framework 1.1 。
2005年 Visual Studio 2005 则运用了 NET 2.0 的技术,更加的方便了程序员的工作。可是新的程序对系统配置要求也较高,需要微软.Net Framework 2.0以上的.Net构架支持。
2007年12月,微软(Microsoft)推出了Visual Studio 2008 Beta 2 发生了重大的变化,在代码输入的时候,可以比VB2005快很多,在非特殊的情况下,VB2008都会自动开启、自动完成关键字这个命令,而且支持最新的 .NET Framework 3.5 SP1 Beta 。
VB编程语言历史Visual Basic从1991年诞生以来,现在已经18年了。BASIC是微软的起家产品,微软当然不忘了这位功臣。随着每一次微软技术的浪潮,Visual Basic都会随之获得新生。可以预见,将来无论微软又发明了什么技术或平台,Visual Basic一定会首先以新的姿态登上去的。如果你想紧跟微软,永远在最新的技术上最快速地开发,你就应该选择Visual Basic。
1991-西雅图夜空的雷电随着 Windows 3.0 的推出,越来越多的开发商对这个图形界面的操作系统产生了兴趣,大量的Windows应用程序开始涌现。但是,Windows 程序的开发相对于传统的DOS有很大的不同,开发者必须将很多精力放在开发GUI上,这让很多希望学习Windows开发的人员却步。1991年,微软公司展示了一个叫Thunder的产品,所有的开发者都惊呆了,它竟然可以用鼠标“画”出所需的用户界面,然后用简单的BASIC语言编写业务逻辑,就生成一个完整的应用程序。这种全新的“Visual”的开发就像雷电(Thunder)一样,给Windows开发人员开辟了新的天地。这个产品最终被定名为Visual Basic,采用事件驱动,Quick BASIC的语法和可视化的IDE。Visual Basic 1.0带来的最新的开发体验就是事件驱动,它不同于传统的过程式开发。同时,VBX控件让可视化组件的概念进入Visual Basic。Visual Basic 1.0是革命性的BASIC,它的诞生也是VB史上的一段佳话。 Visual Basic 1.0
1992-渐入佳境的Visual Basic由于Windows 3.1的推出,Windows已经充分获得了用户的认可,Windows开发也进入一个新的时代。Visual Basic 1.0的功能过于简单,相对于Windows 3.1的强大功能没有发挥出来。所以,微软在1992年推出了新版本Visual Basic 2.0。这个版本最大的改进就是加入了对象型变量,比如 Dim b As CommandButton Dim c As Control
而且有了最原始的“继承”概念,对象型变量分为一般类型(Control和Form)和专有类型(CommandButton和Form1等),一般类型的变量可以引用专有类型的实例,甚至通过后期绑定访问专有类型的属性和方法。还可以通过TypeOfIs运算符获取对象实例的运行时类型信息(这个功能就是当今C#的is运算符或Java的instanceof运算符)。除了对语言的改进和扩充,Visual Basic 2.0对VBX有了很好的支持,许多第三方控件涌现出来,极大地丰富了Visual Basic的功能。微软还为Visual Basic 2.0增加了OLE和简单的数据访问功能。 Visual Basic 2.0标准版 Visual Basic 2.0专业版 1993-数据库组件新添力量
Visual Basic 2.0推出没几个月,微软就发布了新版本的Visual Basic 3.0,可以看出VB这时候旺盛的生命力。乍一看,Visual Basic 3.0的界面没有太大的变化,但其实这个版本是非常及时的。它增加了最新的ODBC2.0的支持,Jet数据引擎的支持和新版本OLE的支持。最吸引人的地方是它对数据库的支持大大增强了,Grid控件和数据控件能够创建出色的数据窗口应用程序,而Jet引擎让Visual Basic能对最新的Access数据库快速地访问。Visual Basic 3.0还增加了许多新的金融函数。此外还增加了相当多的专业级控件,可以开发出相当水平的Windows应用程序。Visual Basic 3.0是98年以前中国最流行的Visual Basic版本,因为它开发出来的可执行文件非常小,通常能用一张软盘装下。不过,Visual Basic采用虚拟机运行P代码的做法也让很多开发者不满,他们认为这样程序运行的效率很低,这时候Visual Basic的竞争者Delphi也诞生了。 Visual Basic 3.0标准版 Visual Basic 3.0特别版
1995-第二次革命性变化,向COM进军从1993年到1995年年中,Visual Basic一直没有新的动静,焦急的开发者都想一窥这个神秘的新版本到底发生了什么变化。Visual Basic 4.0的BETA最后终于和大家见面了。这个版本包含了16位和32位两个版本,16位的版本就像是Visual Basic 3.0的升级版,而32位版则是一场新的革命。首先,人们发现VBX控件不见了,全部换成了OCX控件,这个OCX可能是指OLE Custom Controls,这个OLE已经不是传统的OLE了,用现在的话说,它就是COM控件。第二个最大变化是Visual Basic 4.0所用的语言换成了Visual Basic For Application,这就和Office 95所采用的宏语言统一起来,这个新语言有很多亮点:
1、 加入了“类模块”。这是面向对象最重要的封装性的基础。
2、 加入了属性过程,加上函数过程,子程序过程,VB已经有组件开发所需的封装性特征。
3、 加入了Byte类型、Boolean类型和Object类型。这大大完善了VB的类型系统。
4、 For Each语句和Collection对象。For Each语句给遍历集合类型提供了极大的方便,现在可以在动态增长的Collection上使用For Each,而不用担心集合内容的总数或烦人的下标问题。
这个版本的Visual Basic还能够开发DLL工程,其实就是COM的DLL,可以将书写好的类用这种方式和其他语言共享。
总之,这个4.0的版本为Visual Basic成为一种COM语言奠定了基础。用Visual Basic 4.0开发基于COM的DLL比任何一种开发工具都方便。但是,Visual Basic 4.0的性能问题变得更加严重了,P-代码的组件成为Visual Basic 4.0严重的性能瓶颈,而且巨大的运行库也让用户感到不满。Visual Basic 4.0对以前版本的支持也不好,使用了大量VBX的项目很难移植到Visual Basic 4.0中。因此,Visual Basic 4.0在中国的普及程度非常低。 Visual Basic 4.0
1997-Visual Basic的丰收年1997年,微软推出了Visual Basic 5.0,这个版本的重要性几乎和4.0一样高。COM(这时候叫ActiveX)已经相当成熟,Visual Basic 5.0当然对它提供了最强的支持。不过,国内还没有意识到COM的重要性前主要对这个版本另一个最大的亮点十分关注:本地代码编译器。Visual Basic 5.0终于在用户的呼声中加入了一个本地代码编译器,它可以让应用程序的效率大大提升。
Visual Basic 5.0的IDE支持“智能感知”,这是一项非常方便开发者的功能,可以不必记住很长的成员名称和关键字,只要按“.”,想要的东西统统弹出来。 Visual Basic 5.0还支持开发自己的ActiveX 控件、进程内的COM DLL组件、进程外的COM EXE组件以及在浏览器中运行的ActiveX文档。这极大丰富了Visual Basic的开发能力,在Internet开发上,Visual Basic 5.0也能有所建树。
1998-企业真正高效的源泉Visual Basic 6.0作为Visual Studio 6.0的一员发布,证明微软正在改变Visual Basic的产品定位,他想让Visual Basic成为企业级快速开发的利器。Visual Basic 6.0在数据访问方面有了很大的改进,新的ADO组件让对大量数据快速访问成为可能。数据环境和新的报表功能也让数据开发有了全新的体验。Visual Basic 借助COM/COM+强大的功能,可以开发具有N层结构的分布式应用程序。同时,Visual Basic还可以在IIS上开发性能超群的Web应用程序。Visual Basic 6.0在语言方面和IDE方面的改进都不大,但是许多新增的组件成为Visual Basic开发人员手中的利器,如File System Object等。新的字符串函数Split和Replace等也给Visual Basic的程序员带来很大方便。
总之Visual Basic 6.0已经是非常成熟稳定的开发系统,能让企业快速建立多层的系统以及Web应用程序,成为当前 Windows 上最流行的 Visual Basic 版本。
2002-第三次革命性变化,向.NET进军从1998年发布到2002年正式推出Visual Basic. NET简直吊足了开发者的胃口。从2000年就开始传言的具有继承、Try…Catch语句等新功能的全新VB7.0一直没有露面。直到2001年,Visual Studio.NET的第一个BETA版问世的时候,所有人都呆了——这是Visual Basic吗?And语句变成了BitAnd,数组只能从0下标开始,而且连Dim语句的意义都变了,几乎所有的窗体控件都变了,Long变成了Integer而Integer变成了Short,Variant不见了,Static不能用了……简直是翻天覆地,人们已经无暇关注这个版本有什么改进,转而担心我怎么才能接受。其实Visual Basic. NET完全是为了.NET Framework这一全新的平台而设计的,Visual Basic. NET的设计者一开始没有掌握好新平台和旧语言的平衡。到了BETA2中,很多东西回归了6.0,如BitAnd又变回了And,数组的定义语句也变回了原有的意义,Static也回到了Visual Basic中。但是BETA1惊人的变化让所有的VB开发者怕了,他们觉得这种语言被改的千疮百孔,有些人干脆转去研究传说中的新语言C#。但是Visual Basic. NET渡过几个BETA版本之后还是找到了正确的定位。Visual Basic. NET有对CLR最完善的支持,同时尽量保留着BASIC易懂的语法风格和易用性。这个版本新增加的功能已经数不清,最重要的几个是:
1、 继承。至此,Visual Basic完成了向面向对象转变的道路。
2、 共享成员。
3、 Try…Catch结构化异常处理。
4、 Delegate和Interface。
5、 名称空间。
6、 对自由线程的支持。
特别的是,Visual Basic. NET大大减少了Visual Basic语言的关键字,如GoSub、PSet等等。原先的Visual Basic有多达120个关键字,这给写程序带来了很大的不便,现在经过精简,Visual Basic脱下了这个沉重的包袱。
Visual Basic. NET现在是一门现代的、强壮的、面向对象的、简单的可视化开发语言。强大的语言功能吸引了很多开发者。历史是在不断重演的,Visual Basic. NET如今的处境和Visual Basic 4.0很相似,由于兼容性变差,人气也降低了。同时由于依附于.NET Framework,程序发布造成了一定的困难。现在国内使用Visual Basic. NET的人相对于Visual Basic 6.0来讲显得很少。但是凭借Visual Basic. NET强大的语言功能和MS的支持,Visual Basic. NET一定会显出它的光辉来。
2003-稳中求变的新版本Visual Basic. NET 2003是一个相当稳重的版本,改变很少,但对小处有很多改进。首先Visual Basic 6.0升级向导做了很大改进,这给从老版本痛苦升级的人带来了更多一些的希望。其次在IDE方面,Visual Basic. NET 2003修正了许多错误,还让事件处理恢复了6.0的开发体验。语言方面只有两项改进:
1、 在For、For Each语句中声明循环变量。
2、 增加了数学移位运算符。
在这个比较成熟稳定的新版本下,许多Visual Basic的爱好和开始重新了解Visual Basic. NET,社区里面也渐渐热闹起来。但是,有些使用C#的开发者坚持认为Visual Basic. NET是垃圾,尽管Visual Basic. NET拥有比C#更多的功能和更好的IDE。这说明不了解Visual Basic. NET成为它普及的最大障碍。 2005-完美主义的Visual Basic,能否再现辉煌?
为了让Visual Basic有最佳的开发体验,Visual Basic 2005的设计者绞尽了脑汁。这次Visual Basic 2005光语言上的改进就足以让Visual Basic的开发人员高兴一阵子。挑重要的列在下边:
1、 泛型
2、 运算符重载
3、 Partial Type
4、 窗体的默认实例(让你用VB6的语法使用窗体)
5、 语法的多种改进
6、My关键字
现在用Visual Basic 2005只要一行代码就可以读写注册表、访问文件、读写串口、获取应用程序信息…… 用Visual Basic 2005完全可以称作享受开发。而泛型、运算符重载等功能又可以让Visual Basic的开发人员深入.NET Framework的全部功能,开发出最优秀的应用程序。
2008-功能极强且最易用的 Visual Basic新版本的VB2008 具有下列新功能和加强功能
1、Language-integrated query: 可以让使用者在VB2008中进行资料查询。
2、物件关联式设计工具会协助开发人员建立和编辑,使应用程序连接至资料库的 link to sql 类别。
|| || Visual Basic 发展简史
语言特色制作应用程序安装盘等提供了友好的集成开发环境。
可视化的设计平台:在使用传统的程序设计语言编程时,一般需要通过编写程序来设计应用程序的界面(如界面的外观和位置等),在设计过程中看不见界面的实际效果。而在Visual Basic 6.0中,采用面向对象程序设计方法(Object-Oriented Programming),把程序和数据封装起来作为一个对象,每个对象都是可视的。开发人员在界面设计时,可以直接用Visual Basic 6.0的工具箱在屏幕上"画"出窗口、菜单、命令按键等不同类型的对象,并为每个对象设置属性。开发人员要做的仅仅是对要完成事件过程的对象进行编写代码,因而程序设计的效率可大大提高。
事件驱动的编程机制:面向过程的程序是由一个主程序和若干个子程序及函数组成的。程序运行时总是先从主程序开始,由主程序调用子程序和函数,开发人员在编程时必须事先确定整个程序的执行顺序。而Visual Basic 6.0事件驱动的编程是针对用户触发某个对象的相关事件进行编码,每个事件都可以驱动一段程序的运行。开发人员只要编写响应用户动作的代码。这样的应用程序代码精简,比较容易编写与维护。
结构化的程序设计语言:Visual Basic 6.0具有丰富的数据类型和众多的内部函数。其采用模块化和结构化程序设计语言,结构清晰,语法简单,容易学习。
强大的数据库功能:Visual Basic 6.0利用数据控件可以访问Access、FoxPro等多种数据库系统,也可以访问Excel、Lotus等多种电子表格。
ActiveX技术:ActiveX发展了原有的OLE技术,使开发人员摆脱了特定语言的束缚,方便地使用其他应用程序提供的功能,使Visual Basic 6.0能够开发集声音、图像、动画、字处理、电子表格、Web等对象于一体的应用程序。
网络功能:Visual Basic 6.0提供的DHTML(动态HTML)设计工具可以使开发者动态地创建和编辑Web页面,使用户能开发出多功能的网络应用软件。
语言基础注释方式在VB中,注释有2种方式。
1.以Rem关键字开头,并且Rem关键字与注释内容之间要加一个空格。注释可以是单独的一行,也可以写在其他语句行的后面。如果在其他语句行后使用Rem关键字,则必须使用冒号(:)与语句隔开。
2.也可以使用一个撇号(')来代替Rem关键字。若使用撇号,则在其他语句行使用时不必加冒号。
如:
|| ||
特征衡量在 Visual Basic 中,可通过属性、方法和事件来说明和衡量一个对象的特征。
事件(Event)
事件是指发生在某一对象上的事情。事件又可分为鼠标事件和键盘事件。例如,在命令按钮(Command Button)这一对象上可能发生鼠标单击(Click)、鼠标移动(Mouse Move)、鼠标按下(Mouse Down)等鼠标事件,也可能发生键盘按下(Key Down)等键盘事件。总之,事件指明了对象“什么情况下做?”,常用于定义对象发生某种反映的时机和条件。
事件代码如下:(此处以Command1的Click事件为例)
|| ||
方法(Method)
方法是用来控制对象的功能及操作的内部程序。例如,人具有说话、行走、学习、睡觉等功能,在visual Basic中,对象所能提供的这些功能和操作,就称作“方法”。以窗体为例,它具有显示(show)或隐藏(hide)的方法。总之,方法指明了对象“能做什么?”,常用于定义对象的功能和操作。
例如,让Form2窗体显示,就可以用如下代码
|| ||
属性(Property)
属性是指用于描述对象的名称、位置、颜色、字体等特征的一些指标。可以通过属性改变对象的特性。
有些属性可以在设计时通过属性窗口来设置,不用编写任何代码;而有些属性则必须通过编写代码,在运行程序的同时进行设置。可以在运行时读取和设置取值的属性成为读写属性,只能读取的属性成为只读属性。总之属性指明了对象“是什么样的?”,常用于定义对象的外观。
对象与类对象(Object)
Visual Basic.NET 具有“面向对象”的特性,Visual Basic.NET 应用种程序的基本单元是对象,用 Visual Basic.NET 编程就是用“对象”组装程序。这种“面向对象”的编程方法与传统的全部用代码编制程序的方法有很大区别,就像用集成电路芯片组装电视机和用三极管,二极管组装电视机的区别一样。显然,“面向对象”的编程方法比传统的编程方法更简单,更方便,并且编写出的程序也更加稳定。因此,“对象”可以被看做 Visual Basic.NET 程序设计的核心。
在 Visual Basic.NET程序设计中,对象中还可以包含头,手,腿,脚等部位,其中的每个部位又可以单独作为作为被研究的对象。在 Visual Basic.NET程序设计中,整个应用程序就是一个对象,应用程序中又包含着窗体(Form),命令按钮(Command),菜单(Menu)等对象。
类(Class)
在 Visual Basic.NET中,对象是由类创建的,因此对象可以说是类的具体实例,这就好比是蛋糕和做蛋糕的模具之间的关系。
各种不同的对象分属于各种不同的种类。同一类对象可能具有一些不同的特征(或是说同一类对象不一定具有完全相同的特性);具有某些相同的特性的对象,不一定是同一类对象,这就好比是人和猴子虽然都有身高、性别等特征,但二者之间还存在着智商、语言等特性差异,这两个对象之间的特性相差很多,根本就不能算是同一类对象。而男人和女人,虽然有着性别、生理等方面的差异,但他们绝大部分特性相同,可以算是同一种类。由此,可以归结为一句话:同一类对象的绝大部分特性相同。
相关控件窗体项目。所以Visual Basic中的控件大多和窗体项目有关。
分类
根据应用类型,Visual Basic控件可以分为如下3类:
内置控件
内置控件即Visual Basic工具箱中的控件,里面包含了常见窗体程序所需要的控件
Visual Basic中,大部分的程序执行都是在事件中完成的。
在代码中,控件的每一个事件都需要声明,声明方法类似一个子过程的声明。大部分的控件在双击控件进入代码界面的时候都会自动补完该控件的最常用事件的声明。具体代码示范如下:
|| ||
ActiveX控件
ActiveX控件包含不同版本Visual Basic提供的控件和仅在专业版、企业版中提供的控件,并且还包含第三方提供的控件。
ActiveX控件是对Visual Basic内置控件的扩充,开发人员可以根据个人需要进行随意扩充,扩充的ActiveX控件将在工具箱中显示。
在工具箱中添加ActiveX控件的流程如下。
(1)打开一个Visual Basic 6.0项目,一次选择【工程】->【部件】命令,在弹出的“部件”对话框中选择“控件”选项卡,在列表框中选择要添加的ActiveX控件
(2)返回Visual Basic主界面,此时添加的ActiveX控件已被添加到工具箱内
可插入对象
在Visual Basic的工具栏中,可以放置其他的第三方对象,可以像使用控件一样轻松使用。添加后的对象也在工具箱中显示,添加对象的方法和添加ActiveX控件类似,只要依次选择【工程】->【部件】命令,在弹出的“部件”对话框中选择“可插入对象”选项卡,再选择添加的对象即可。
有关第三方对象,可以从受信任的来源下载控件,并通过添加引用来导入。支持这些自定义的Vb的控件有:ComponentOne Studio,Spread,ActiveReports、MultiRow等。
语言特点基本特点VB 的中心思想就是要便于程序员使用,无论是新手或者专家。VB使用了可以简单建立应用程序的GUI 系统,但是又可以开发相当复杂的程序。VB 的程序是一种基于窗体的可视化组件安排的联合,并且增加代码来指定组件的属性和方法。因为默认的属性和方法已经有一部分定义在了组件内,所以程序员不用写多少代码就可以完成一个简单的程序。过去的版本里面 VB 程序的性能问题一直被放在了桌面上,但是随着计算机速度的飞速增加,关于性能的争论已经越来越少。
窗体控件的增加和改变可以用拖放技术实现。一个排列满控件的工具箱用来显示可用控件(比如文本框或者按钮)。每个控件都有自己的属性和事件。默认的属性值会在控件创建的时候提供,但是程序员也可以进行更改。很多的属性值可以在运行时候随着用户的动作和修改进行改动,这样就形成了一个动态的程序。举个例子来说:窗体的大小改变事件中加入了可以改变控件位置的代码,在运行时候每当用户更改窗口大小,控件也会随之改变位置。在文本框中的文字改变事件中加入相应的代码,程序就能够在文字输入的时候自动翻译或者阻止某些字符的输入。
VB 的程序可以包含一个或多个窗体,或者是一个主窗体和多个子窗体,类似于操作系统的样子。有很少功能的对话框窗口(比如没有最大化和最小化按钮的窗体)可以用来提供弹出功能。
VB 的组件既可以拥有用户界面,也可以没有。这样一来服务器端程序就可以处理增加的模块。
VB 使用参数计算的方法来进行垃圾收集,这个方法中包含有大量的对象,提供基本的面向对象支持。因为越来越多组件的出现,程序员可以选用自己需要的扩展库。和有些语言不一样,VB 对大小写不敏感,但是能自动转换关键词到标准的大小写状态,以及强制使得符号表入口的实体的变量名称遵循书写规则。默认情况下字符串的比较是对大小写敏感的,但是可以关闭这个功能。
VB 使得大量的外界控件有了自己的生存空间。大量的第三方控件针对 VB 提供。VB 也提供了建立、使用和重用这些控件的方法,但是由于语言问题,从一个应用程序创建另外一个并不简单。
语言缺点Visual Basic 语言具有不支持继承、无原生支持多线程、异常处理不完善等三项明显缺点,使其有所局限性(此些缺点皆已在 vb .net 获得改进)。
不支持继承
VB 5.0 和 VB 6.0 都是基于对象的编程语言,但是不包含继承特性。VB 中提供了特殊的类的功能,但是还是不能满足程序员的需求。
无原生支持多线程
Visual Basic 对于多线程无原生支持,只能通过Windows API的调用实现,且极其的不稳定。因为在API创建的线程中,并没有自动初始化运行时库,导致部分的函数无法使用。一般的,在VB6等早期的VB开发环境下,使用API创建线程的目的是完成容易使程序假死的大量数据或者逻辑的计算。
异常处理不完善
Visual Basic 中内置异常处理,即使未写异常处理代码,一旦用户出错也会弹出一个明确写出出错原因对话框,接着程序终止。
Visual Basic 中可以使用 Err.Raise抛出异常。对系统及用户抛出的异常的处理常用两种模式:一是使用 On Error Resume Next 处理错误;另一种是使用 On Error Goto 将运行引入错误处理代码。但相对 C++ 等语言而言,这样的异常处理破坏了代码的结构。
派生语言微软开发了一系列由 Visual Basic 所派生的语言:2
VBAVisual Basic for Applications(VBA):包含在微软的应用程序中(如Microsoft Office),以及类似WordPerfect、Office这样第三方的产品里面。VBA 这样嵌入在各种应用程序中看起来有些矛盾,但是它的功能和 VB 一样强大。
VBSVBScript(VBS):是默认的ASP语言,还可以用在Windows脚本编写和网页编码中。尽管它的语法类似于VB,但是它却是一种完全不同的语言。VBS 不使用 VB运行库运行,而是由Windows脚本主机解释执行。这两种语言之中的不同点影响ASP网站的表现。
vb.netVisual Basic .NET(vb .net):当微软准备开发一种新的编程工具的时候,第一决定就是利用 VB 6.0 来进行旧改,或者就是重新组建工程开发新工具。微软后来开发了 VB 的继任者Visual Basic .NET,同时也是.NET平台的一部分。vb .net编程语言是一种真正的面向对象编程语言,和 VB 并不完全兼容。
Visual Basic .NET(vb .net) 是新一代的 VB 语言,并不只是 VB 6.0 的简单升级,vb .net 与 VB (泛指 VB 6.0 之前的版本) 之间有非常大的区别。其新特性主要表现在以下几方面:
1.vb .net 完全集成到 Visual Studio 集成开发环境中,在这种集成开发环境与 VB 在若干方面有差异。主要体现在窗体的布局以及菜单等方面都有所不同。
2.vb .net 项目与 VB 不同。它使用基于文件夹的模型,所有项目均放置在项目文件夹层次结构中。
3.vb .net 中使用ado .net来访问数据库,ado .net是.NET Framework的一部分。在 vb .net 中实现数据访问的方法主要有两种:其一是在程序设计阶段,通过创建、配置数据适配器 DataAdapter 和生成数据集 DataSet;其二是在运行中,通过编程方式动态创建配置数据适配器和创建、生成数据集。
4.在 vb .net 中是使用asp .net技术来编写 Web 页面的。在asp .net中使用的也不是脚本语言,而是真正意义的编程语言。凭借asp .net的 Web 应用程序、XML Web Services 等基于 Web 的功能,使得 vb .net 开发 Web 页面与开发 Windows 应用程序很相似,Web 页面代码也显得有条有理了。
5.vb .net 已经成为完全的面向对象的编程语言,并且新增更多语言特性。
Visual Basic .NET有提供转换精灵,协助开发者将 VB 6.0 的程序代码转换为 vb .net 相对应之程序代码。
语言争议程序员中,对于各种语言孰优孰劣的争论并不少见,Visual Basic 更是成为了一种充满了争议的语言。
反方观点一些批评家认为 Visual Basic 是一种给儿童和菜鸟程序员的语言,它自从设计开始就是一种简单的语言。一些C++和Java中的特性在 VB 中并没有出现。在感受开发的方便和快速的同时,一些类似于编译时进行类型和声明检查的功能在默认情况下是关闭的。这样一些程序员一边感叹 VB 的易用性,一边沮丧地看着一些类似于“未定义类型”错误的发生。
一些批评家认为 Visual Basic 的简单特性使得其在未来具有伤害性。很多人自学了 VB,但是并没有学到好的编程习惯。当 VB 进入课堂的时候,学生们不会学到很多基础的程序技术和结构,因为很多技术已经包含在那些对用户可见的组件里面了。不用学习标准的编程习惯,因为 VB 具有可视化的特性,所以导致了一些莫名其妙的代码的产生。而且很多错误和警告的检查默认情况下都是关闭的,程序员很难找到隐藏的错误。有经验的程序员在用 VB 编程的时候都会把这些选项打开。
一些批评家批评微软简单地拷贝了BASIC的思想到 Visual Basic 中。
Visual Basic 开发的程序只能运行在Microsoft Windows中;且运行时还需要 VB 运行库。
Visual Basic 不能很好的综合Windows的基础 API,很多时候要使用低级运算的“小伎俩”来进行编程。而C 语言的低级内存运算比 VB 的要简单得多。
VB语言作为计算机语言的入门,是很多学生学习编程的入门级语言,大学生利用VB语言开始了他们学习计算机的世界。
正方观点任何工具都是针对不同任务发明的,如同刀剑和锄头,刀剑高手未必是锄地高手,刀剑高手除了杀人,不能生产粮食养人,所以任何工具歧视都是错误的。Visual Basic的强大在于能够快速开发企业级软件,使程序员有更多的时间和精力考虑用户的需求,生产出满足用户需要的软件,特别适合大型企业级软件的开发,比如MIS、MRP、MRP II、ERP等重量级的软件,而不是花很长时间去制作一个只有几K的DLL。
Visual Basic 的最大的优势在于它的易用性,可以让经验丰富的VB程序员或是刚刚懂得皮毛的人都能用自己的方式快速开发程序。而且 VB 的程序可以非常简单的和数据库连接。比如利用控件可以绑定数据库,这样一来用VB写出的程序就可以掌握数据库的所有信息而不用写一行代码。
Visual Basic 开发的程序虽然仅在 Microsoft Windows 中得到原生支持,但 Linux 等平台中存在着一些项目,使得能够使用 Visual Basic 的代码在这些平台下顺利编译。
任何语言开发的程序都需要一定运行时环境的支持,对于大型软件系统来说,需要支撑是很正常的,正所谓“站在巨人的肩膀上”。传统 Visual Basic 开发的程序需要 VB运行库的支持;Visual Basic .NET 开发的程序(如C#)需要 .Net Framework 的支持;Java 开发的程序需要 Java虚拟机的支持。