Visual Basic(简称VB),是1991年由微软开发的结构化、模块化、面向对象的可视化程序设计语言。 Viusal Basic源自于BASIC编程语言,具有图形用户界面(GUI)和快速应用程序开发(RAD)系统的特点。它可以使用DAO、RDO、ADO连接数据库,或者创建ActiveX控件,用于生成类型安全和面向对象的应用程序。
1991年,微软发布了Visual Basic 1.0版本,目的是用来设计Windows程序。Windows操作系统不断升级,Visual Basic的功能也随之升级。2002年底,微软NET战略的推出使得Visual Basic开始迁移到.NET平台上,Visual Basic.NET版本上线了。但版本的变革也割裂了Visual Basic的阵营,2005年,微软宣布不再对Visual Basic提供免费支持。2010年,微软将Visual Basic.NET和Visual Basic融合到Visual Studio中。2020年,微软宣布结束对Visual Basic的开发。
Visual Basic依靠可视化的开发环境,曾经是热门的桌面开发工具,容易上手、可以直接编写图形界面的特点,使得Visual Basic成为很多人接触计算机编程的第一种语言。而随着Java等语言的兴起,Visual Basic的优势逐渐丧失尽。而且由于Visual Basic技术不支持继承、异常处理不完善、无原生支持多线程等缺点,大大限制了Visual Basic技术发展。
发展历史
发展历程
诞生与发展
1991年,微软推出了Visual Basic 1.0版,是在原DOS操作系统平台上的 BASIC 语言基础上开发的新一代面向对象的程序设计语言。与Basic语言不同的是,Visual Basic 是用来设计 Windows 程序的。这在当时引起了很大的轰动。1992年9月,Visual Basic 1.0 for DOS版本发布,这个连接编程语言和用户界面的进步被称为Tripod,最初的设计是由阿兰·库珀(Alan Cooper)完成的。
由于Windows 3.1的推出,Windows已经充分获得了用户的认可,而 Visual Basic 1.0 的功能过于简单,相对于 Windows 3.1 的强大功能并没有发挥出来,所以,微软于1992年推出了Visual Basic 2.0版本,改善了上一个版本的界面与速度,加入了对象型变量,对语言进行改进和扩充、对VBX有了很好的支持等。
Visual Basic 2.0推出几个月后,微软又发布了Visual Basic 3.0版本,该版本针对性的增强了数据库的功能,增加了对最新的ODBC 2.0的支持,提供了数个数据库控件和专业级控件,增加了许多新的金融函数。1995年,Visual Basic 4.0版本上线,该版本强化了可视化程序设计的概念,简化了用户设计应用程序界面的工作,还可以开发DLL工程,为Visual Basic成为一种COM语言奠定了基础,但是性能问题遇到了瓶颈,巨大的运行库也让用户感到不满,对以前版本的支持度也不够高。
为增强Visual Basic对Internet的支持和开发能力,1997年微软又推出了Visual Basic 5.0版本,同时也开启了Visual Basic中英文版本的时代。新版本是专门为Windows 95设计的,采用 Visual C++ 编写,融合Visual C++的优点,编译和运行速度比Visual Basic 4.0版本提高了近20%。随着Windows 98的发行,微软公司发布了Viusal Basic 6.0版本,该版本在创建自定义控件、对数据库的访问及对Internet的访问等方面都得到了进一步的加强、完善和提高。
版本大变革
随着微软NET战略的推出,Visual Basic 开始迁移到了.NET平台,2002年底,最新版本Visual Basic.NET登场,使得Visual Basic成为了完全面向对象的编程语言,并且成为功能有很大改进的Web设计工具。该版本利用 Microsoft.NET 框架进行重新设计,在此之前,发布的第一个Beta版本使得使用者的反响很大,对于能否接受该版本产生了分歧,经过几个版本的过渡之后才找到正确的定位。为了让Visual Basic程序员从巨大的变化中缓过来,于2003年问世的Visual Basic.NET 2003(v7.1)版本改动很小,是相当稳重的一个版本。修正了许多错误,将事件处理恢复了Visual Basic 6.0版本体验,语言方面由也进行了改进。
版本的融合
2005年推出的 Visual Basic 2005 是.NET框架的一部分,开发人员的工作效率是该版本发布的目标,Visual Basic 小组成员表示,使用 Visual Basic 2005可以节省50%的编码。但也是这个版本割裂了Visual Basic的阵营,微软宣布将不再对非 .NET版本的Visual Basic提供免费支持。2008年,Visual Basic 2008上线,该版本对数据访问、集成开发环境和编辑功能等都有所改进。2010年,Visual Studio 2010 版本发布,新版本将Visual Basic.NET和Visual Basic融合为 Visual Studio 中,还增加了许多新功能。2012年,Visual Studio 2012 版本发布,新增了异步功能、迭代器、调用层次结构、调用方信息、代码编辑器等方面的功能。2015年,微软发布开发工具 Visual Stuio2015 版本,对于跨平台的支持进行扩展增强,添加应用连接到服务的向导配置项目,集成开发环境做出了改进。2018年,TIOBE编程社区出具的报告写到“微软正在慢慢减少对 Visual Basic的投入,这种语言迟早会衰落。”2019年,Visual Studio 2019 版本发布,新版本对开发、协作和调试功能进行了改进。这也是微软最后一次对 Visual Basic 语言进行开发2020年,微软宣布结束对Visual Basic的开发。
历史版本
专业术语
对象和类
Viusal Basic是基于对象的程序设计语言,对象是系统的基本运行实体,Visual Basic中对象的概念和面向对象的程序设计中的对象概念是一致的,但是在使用上有很大的区别。Visual Basic中的对象分为两类:一类是由系统设计好的,成为预定义对象,可以直接使用或者对其进行操作;另一类由用户定义,可以建立用户自己的对象。在Visual Basic中,窗体和空间就是预定义对象。
类是一个抽象的整体概念,对象是类的实例化。类与对象是面向对象程序设计语言的基础。以“学生”为例,说明类与对象的关系,学生是一个笼统的名称,相当于一个“类”,而具体一个学生就是这个类的实例,也就是这个类的一个对象。
属性
属性是一个对象的特性,在可视化编程中,每一个对象都有一组特定的属性。对象常见的属性有标题、名字、颜色、字体大小、是否可见等。一个对象属性都有一个默认值,如果不明确地改变该属性值,程序就将使用它的默认值。通过修改对象的属性就能够控制对象的外观和操作,有些属性在运行时是只读。对象属性的设置一般有两条途径:通过属性窗口设置和通过代码设置。
事件
事件就是对象上所发生的事情。在Visual Basic中,事件是预先定义好的、能够被对象标识的动作,如Click单击、DbIClick双击、Load装入、Change改变等。不同的对象能够识别不同的事件。当事件由用户触发或系统触发时,对象会对该事件做出响应。响应某个事件后执行操作用过一段程序代码来实现,这样的代码叫做事件过程。Visual Basic中的事件分为系统事件和用户事件。
方法
Visual Basic系统将一些通用的操作编写成子程序并封装起来,这些通用子程序就称为方法。用户在程序中可以不加说明调用对象的想法。方法是属于对象的,在调用方法时应该指明方法所属的对象。
窗体和控件
窗体是一块“画布”,在窗体上可以直观地建立应用程序。在设计程序时,窗体是程序员的”工作台“,运行程序时,每个窗体对应于一个窗口。窗体结构与Windows环境下的应用程序窗口一样,具有控制单元、标题栏、最大化/还原按钮、最小化按钮、关闭按钮以及边框。窗体是Visual Basic中的对象,具有自己的属性、事件和方法。
控件和窗体一样,都是Visual Basic中的对象,它们共同构成用户界。Visual Basic的控件是具有自己的属性、事件和方法的对象,通常分为标准控件、ActiveX控件和可插入对象控件三种类型。标准控件是在默认状态下工具箱中显示的控件,被封装在Visual Basic的可执行文件中,如命令按钮、文本框、单选按钮等;ActiveX控件单独保存在.ocx类型的文件中,包括各种版本Visual Basic提供的控件;可插入控件是指用户可将Excel工作表或PowerPoint幻灯片等作为一个对象添加到工具箱中,编程时可根据需要随时创建。
语言基础
数据类型与数组
数据是指程序所需处理的信息,如:数值、文本、图形等。数据类型是指具有共同特征的数据所形成的种类;其中特征可以从“值的范围”和“值上允许进行的操作”来个方面来综合地刻画。数据类型可以划分为基本数据类型和自定义数据类型,基本数据类型是系统预定义的数据类型,自定义数据类型是在基本数据类型基础上,由用户定义的数据类型。
基本数据类型
自定义数据类型
在程序设计过程中,某一类数据可能由若干个数据项(又称为成员、元素)组成,自定义数据类型能够“封装”数据所包含的成员,归类和统一使用成员。自定义数据类型需要遵循“先声明、后使用”的原则.Type语句用于声明自定义数据类型,语法格式如下:
数组
数组是一种数据结构,是有序数据的集合,用于保存大量的、逻辑上有联系的数据,数组中的每个元素可以是不同数据类型的数据。在Visual Basic中,数组必须先定义再使用,定义数组后,必须为数组开辟所需要的内存区。根据内存区开辟时机的不同,可以把数组分为静态数组和动态数组。用数值常量或符号常量作为下标的数组是静态数组,而用变量作为下标的数组则为动态数组。
数组的定义也称为数组的声明。一维数组的定义格式为:
动态数组是指在定义数组时未给出数组的大小,即以变量作为下标值,当要使用时,再用ReDim语句重新定义数组的大小。
变量和常量
在程序运行过程中,其值不能被改变的量称为常量,能够改变的量称为变量,常量和变量名称称为标识符。标识符用来命名变量、符号常量、数组、方法、类、对象、接口和包等。
变量
变量所代表的内容可以发生变化。在计算机中,变量实际上代表着某种类型数据对应的存储单元,变量的名字就是该单元的名字。Visual Basic中变量必须先定义、后使用,定义变量时,必须定义其类型、名称和数据类型。格式如下:
常量
为了避免因常数变化而造成数据查找不便的问题,Visual Basic中提供了一个声明常量的功能,即用户可以为每个常数定义一个有意义的名字,凡是程序中需要使用此常数的地方,不必再写这个常数,而是以其名字代替。Visual Basic中提供的常量有内部常量和外部常量两大类。
命名规则
对Visual Basic模块中的过程、常量、变量和参数命名时,通常,不应使用与 Visual Basic 或主机应用程序中使用的函数、语句、方法和内部常量名称相同的任何名称,这会导致与语言中的关键字的意义混淆。 要使用与所指定名称相冲突的内在语言函数、语句或方法,必须显式标识它,在调用内部函数、语句或方法名,需要在其前面加上相关类型库的名称。例如,如果有一个名为的Left变量,则只能使用 VBA.Left调用Left函数。
关键字是对编译器具有特殊含义的预定义保留字集,如果使用关键字作为变量名称(标识符),需要将变量名称括在括号 ( [] ) 中。例如,[Let]是一个有效的标识符,但Let不是,因为它是一个关键字。
基本语句
语句是完整的指令,它可以包含关键字、运算符、变量、常量和表达式。在Visual Basic中,语句分为声明语句和可执行语句。这些语句可以调用方法或函数,并可以在代码块中执行循环或分支结构,或者将表达式的值赋予变量。
长语句在编写代码中可以拆分为几行,使用行继续符在下一行继续该语句,行继续符依次包含一个空格、一个下划线字符(_)和一个回车符,且必须是行的最后字符。例如:
编写代码中会向代码中添加嵌入的注释信息来帮助说明源代码,注释行以撇号(’)开头或以关键字Rem开头,后跟一个空格。注释可以添加在代码中的任意位置,但不能添加在字符串中。示例:
运算符和表达式
算术运算符和表达式
算术运算符用于实现算术运算,其运算对象和结果都是数值型数据。以x=5举例算术运算符和优先级:
算术表达式是用算数运算符和括号将数值数据连接而成的式子,但数学中的代数式并不一定是Visual Basic中的算法表达式。表达式在同一行上书写成线性序列,只能使用圆括号,且可以嵌套,不能使用方括号和花括号。表达式中不能出现π、α、β、λ等希腊字母,可以用其他字符串来替代,例如圆周率π可以用3.14来代替。表达式通过运算后有一个结果,运算结果的类型由数据和运算符共同决定。
关系运算符和表达式
关系运算的运算对象是数值型数据和字符型数据,是对两个数进行比较的运算。
关系运算的结果是逻辑型的值。当关系成立时,结果为True;当关系不成立时,结果为False。关系运算符的优先级相同,若关系表达式中又有算数表达式,则先进行算术运算,再进行关系运算。
逻辑运算与逻辑表达式
逻辑运算符是对操作数进行逻辑运算,运算的结果为逻辑性数据。当逻辑关系成立时,运算结果为True;当逻辑关系不成立时,运算结果为False。
控制语句
Visual Basic使用结构化的控制语句来控制程序的流程,其中If···Then···Else语句和Select···Case语句是选择语句,根据表达式的值从若干给定的语句中选择一个来执行。而根据表达式的值重复执行一组语句是循环语句,包括For···Next语句、For Each···Next语句、Do···Loop语句和While···End While语句等。
If···Then···Else语句
If···Then···Else 语句根据表达式的值有条件地执行一组语句。If···Then···Else语句分为单行格式和多行格式。
Select···Case语句
Select···Case 语句根据表达式的值执行若干组语句中的某一组。示例:
For···Next语句
使用 For···Next 实现多次重复一组语句的流程。语法如下:
For Each···Next语句
For Each···Next语句为集合或数组的每一个元素重复一组语句。语法如下:
Do···Loop语句
Do···Loop语句用于当Boolean条件为True或在条件变为True之前,重复语句块。语法如下:
While···End While语句
While···End While在给定条件为True时运行一系列语句。语法如下:
过程和参数
过程是结构化程序设计的一个重要组成部分,所有的操作代码都应该放在过程内部,过程是指括在过程声明语句和End语句中的一组代码语句块的总和。过程一经定义之后,可以在其他代码中被调用。Visual Basic中的过程有三种类型:Sub过程、函数过程和Property过程。
Sub过程
Sub过程也叫事件过程,事件过程名为“对象名_动作”,用Sub语句声明,以End Sub语句结束。下面代码是一个典型的事件过程:
Function过程
Function过程又称函数过程,分为内部函数和用户自定义函数两种类型,用Function语句声明,以End Function结束。
函数过程代码示例:
Property过程
Property过程又称属性过程,对应于属性的读写操作,属性过程分为三种:Property Get过程、Property Let过程、Property Set过程。Get用来处理从属性中读取数据的操作,Let和Set处理对属性赋值的操作,Let用于一般类型的属性,Set用于对象类型的属性。用Property语句声明,以End Property结束。
属性过程代码示例:
参数
过程中的代码需要某些关于程序状态的信息才能完成所执行的工作,信息包括在调用过程时传递到过程内的变量。当将变量传递到过程时,称变量为参数。参数的传递方式有两种:按值传递参数和按地址传递参数。按值传递参数时,传递的是变量的副本,如果过程中改变了这个值,则所作变动只影响副本而不是影响变量本身,用ByVal关键字传递。而按地址传递参数时,过程用变量的内存地址去访问实际变量的内容,可以改变变量值,用ByRef关键字进行传递。
参数传递示例代码:
函数
概念和使用
函数(Function)是能够实现一定功能的一段程序,由系统进行封装,程序员使用时只能看到函数名、参数和返回值等信息。使用时,程序员无须了解函数过程的实现细节,只需了解函数的参数特征和返回值特征即可。函数分为有参函数和无参函数,是过程的另一种形式,Visual Basic提供了许多内部函数。函数的使用称为函数调用,调用时需要注意以下几点:参数的个数及参数特征;数据类型应与参数要求类型一致;注意函数参数的取值范围;函数的返回值可以直接用于表达式中,参与运算。
内置函数
语言特点
面向对象的程序设计思想
Visual Basic中用来构成图形用户界面的可视化控件,就是“对象”,对象封装了程序和数据。不同的对象在程序中所赋予的功能是不同的。把面向对象的思想应用到软件中指导软件开发,能直接在程序界面画出控件,并设置空间的属性,建立的对象属性是可视的,不必编写建立和描述每个对象的程序代码,与编写完整的代码比较,可以较少程序语句。
可视化的程序设计语言
Visual Basic采用可视化的图形用户界面GUI(Graphical User 接口),开发人员利用系统提供的大量可视化控件,按设计要求的屏幕布局,在屏幕上可以画出各种图形对象“部件”,并设置这些图形对象的树形,Visual Basic便自动产生界面设计代码,程序设计人员只需要编写实现程序功能的那部分代码,从而大大提高了程序设计的效率。
结构化的程序设计语言
结构化的程序设计语言,能够方便实现“自顶向下、分而治之、模块化”的程序设计方法,Visual Basic是在结构化的BASIC语言基础上发展起来的,具有高级程序设计语言的结构化、丰富的数据类型、众多的内部函数,便于程序的模块化、结构化设计。结构清晰且简单易学,在输入代码的同时,编辑器自动进行语法检查,设计过程中可以随时运行程序,调试并改正错误,整个应用程序设计好之后,可以编译生成可执行文件(.exe),脱离VB环境,直接在Windows环境下运行。
开放的数据库功能与网络支持
Viusal Basic系统具有很强的数据库管理功能,不仅可以管理MS Access格式的数据库,还能访问其他外部数据库,如Visual FoxPro、Dbase、Paradox等格式的数据库。Visual Basic还提供了开放式数据连接功能,可以通过直接访问或建立的方式使用并操作后台大型网络数据库。在应用程序中,可以使用SQL直接访问服务器上的数据,并提供简单的面向对象的库操作命令、所拥护数据库的枷锁机制和网络数据库编程技术,为单机上运行的数据库提供结构化查询语言网络接口。
事件驱动的编程方式
事件驱动是增强程序图形界面交互性的主要方法,利用用户的动作或行为控制程序运行的流向。程序员只需要编写响应用户动作的代码,各个动作之间不一定有联系,代码短、易编写、易维护。Visual Basic通过事件来执行对象的操作,对象与程序代码通过事件及事件过程来联系。一个对象可以感知和接收多个不同类型的事件,每个事件均能驱动一段程序或事件过程,完成对象响应事件的工作,从而实现一个预编程的功能。
Visual Basic编程没有明显的主程序概念,程序员要做的就是面向不同的对象分别编写他们的事件过程,整个Visual Basic应用程序就是由这些彼此相互独立的事件过程构成,事件过程的执行与否以及执行的顺序取决于操作时用户所引发的事件,若用户为触发任何时间,则系统将处于等待状态。
交互式程序设计
传统的高级语言编程需要经过编码、编译和测试代码三个步骤,每一个步骤需要调用专门的处理程序,而Visual Basic将这三个步骤的操作都集中在它的集成开发环境内统一处理,使得这三个步骤之间不再有明显的界限,方便了设计人员的使用。大多数语言中,设计人员在编写代码时产生错误,在该程序编译时才能够被编译器捕获,这样造成了编码效率的局限性,而Visual Basic则采用交互式的在线检测式,在设计人员输入代码时便对其进行解释,即使捕获并突出显示其语法或拼写错误,设计人员能够及时发现错误并改正。
开发环境
开发环境和工具
Visual Basic的集成开发环境主要包括主窗口(由标题栏、工具栏、菜单栏组成)、工具箱、工程管理器窗口、属性窗口、窗体布局窗口、立即窗口、代码编辑器窗口等组成部分。
开发Visual Basic应用程序,可以使用文本编辑器编写代码,并使用编译器进行编译、运行,也可以使用微软集成开发工具:SDK软件开发工具包,包括开发人员编写、生成、测试和部署应用程序时所需要的工具;Microsoft Visual Studio,开发应用软件的平台,提供开发工具和功能、Xamarin Studio和Visual Studio Code等。
编译器
Visual Basic的一种运行方式是编译方式,是系统读取Visual Basic程序中全部代码,将其转换(编译)成机器代码,并保存在扩展名为.exe的可执行文件中,以便可以脱离Visual Basic环境运行该程序。Visual Basic支持的编译器有Visual Studio和.NET。
解释器
Visual Basic中另一种运行方式是解释方式,是系统读取触发事件过程的代码,将程序代码逐句转换(翻译)为机器代码,译出一句就立即执行一句,边解释边执行,转换后的机器代码不保留,如需再次运行程序,还要重新翻译。
异常处理
Visual Basic同时支持结构化和非结构化的异常处理,能够在程序运行发生异常时得到有效的处理,使程序能够继续执行下去。程序中的异常可分为三种:语法错误、运行时错误和逻辑错误。
结构化异常处理
结构化异常处理使用Try···Catch···Finally语句,语法如下:
将异常语句放在Try块中,如果产生异常,就会被送到Catch语句中,每个Catch语句都带有一个过滤条件,也可以没有。Visual Basic从上到下依次检查每个Catch块,如果抛出的异常与过滤条件相匹配,执行这个Catch块中的语句处理捕获的异常,Catch块中没有过滤条件则接收所有异常。Finally块中的代码将在处理完Try块后执行,可以将诸如关闭文件、释放对象实例等做清理工作的代码放在Finally块中。
关键字throw用来生成终止错误,使用throw关键字停止对命令、函数或脚本的处理,可以在if语句的脚本块中使用throw关键字来响应条件,或者用在try···catch···finally语句的catch块中,throw关键字可以引发任何对象,例如用户消息字符串或导致了错误的对象。
throw关键字的语法如下:
非结构化异常处理
非结构化异常处理使用On Error语句,On Error语句放在所要检查的代码块的最前面。当On Error语句所处理的代码块中产生一个异常时,控制权会立即转交到On Error语句所指定的程序行处理发生的异常。On Error语句分为三种类型:On Error GoTo Line语句、On Error Resume Next语句、On Error GoTo 0语句以及On Error GoTo-1语句。
On Error Resume Next语句表示其所处理的代码块中遇到异常就将其忽略,执行下面的代码。On Error GoTo 0语句表示禁用当前过程内的异常处理器,如果没有该语句,异常处理器将在过程退出时禁用。而On Error GoTo-1语句表示禁用当前过程中的异常,不包含该语句时,异常会在过程退出时自动禁用。
示例,名为DivideByZero的异常处理器用于被0除的异常。
标准库
标准库是指由编程语言自带的一系列函数和类,程序可以从符合标准的标准库实现中调用大量函数。 这些函数执行服务(如输入和输出),并提供常用操作的高效实现。
衍生语言
Visual Basic for Applications
Visual Basic for Applications(即Visual Basic for Applications)是基于 Visual basic发展而来的,与VB具有相似的语言结构。从语言结构上讲,VBA是VB的一个子集,它们的语法结构是一样的。两者的开发环境也几乎相同。但是,VB是独立的开发工具,它不需要依附于任何其他应用程序,它有自己完全独立的工作环境和编译、链接系统。VBA是一种内置在微软Office办公软件中的编程语言,依托于Office软件而不能独立运行。通过VBA可以实现各种Office软件操作的自动化,如在 Access中,可以通过VBA编写模块来满足特定的需要。
Visual Basic Script
Visual Basic Script简称VB Script是微软创建的一种脚本语言,使用同Visual Basic一样的语法。VB script源自Visual Basic for Applicant,继承了Visual Basic for Applications的大部分功能,包括对数学运算、数组、流控制、数据转换、COM对象、过程以及日期等的支持,但微软最初将VBScript设计为Web的脚本语言,因此取消了直接I/O函数并剥离了对类型的支持以提高VBScript的处理速度,因此,VBScript不支持显示类型,并且不包含用于直接访问客户端磁盘的本机命令,但后来成为通过Windows脚本主机编写面向Windows的批处理文件的流行语言。
Visual Basic.NET
Visual Basic.Net是Visual Basic 6.0的升级,是在.NET平台上编程的一种面向对象的程序设计语言。Visual Basic.Net语言主要用来构建在.Net Framework上运行的各种安全、可靠的应用程序。能更好地与Python及Ruby等动态语言互通操作,使得其语言表达逻辑和自然语言的表达非常相似。
OpenOffice Basic
OpenOffice Basic是一种源自Basic系列的编程语言,OpenOffice Basic 扩充了OpenOffice标准功能。可以在 OpenOffice Basic 中自动执行常见任务,可以链接到其他程序(例如,链接到数据库服务器),还可以通过按下某个按钮来执行复杂活动(使用预定义脚本)。OpenOffice Basic可以对所有OpenOffice功能进行完全访问,支持所有功能,还可以修改文档类型,以及提供创建个人对话框窗口的选项。OpenOffice Basic 编程语言有OpenOffice Basic 语言、运行时库、Apache OpenOffice API(应用程序编程接口)和对话框编辑器四个部分组成。
Gambas
Gambas是一个面向对象的BASIC语言分支和一个附带的IDE,能在Linux以及其他 Unix-like 计算机操作系统中运行。它提供一个与Visual Basic相似的用户体验。Gambas被设计成为一个针对迁移到Linux平台上Visual Basic开发者的Visual Basic替代产品。
WinWrap Basic
WinWrap Basic 是一个低成本、功能强的 .NET/WPF/COM 组件,是 ActiveX、VBScript、VB6、Visual Basic for Applications、Sax Basic 和 VSTA 脚本的替代品。它允许使用Visual Basic语言构建Windows应用程序。它支持将Web应用程序转换为本地应用程序,使其可以在没有网络连接的情况下运行。
LotusScript
LotusScript 是一种嵌入式的Basic脚本语言,具有语言扩展功能特色。是Visual Basic的通用语言,主要应用于Notes的客户端应用程序开发中。由于Lo tusScript与Java的后台类库基本一致,又被众多的 Notes开发人员所熟悉,因此LotusScript在Domino Web 开发中得到了广泛的应用
Corel WordPerfect Office
Corel Word Perfect Office是一款办公软件, 由文字处理软件“WordPerfect”、表格计算软件“Quattro Pro”以及幻灯演示制作程序“Presentations”组成。1998年,微软与Corel公司达成协议,在Corel公司产品中集成MicrosoftVisual Basic for Applications(Visual Basic for Applications)。Corel公司宣布了Corel WordPerfect套件和CorelDRAW等不同产品集成VBA的计划。
WordBasic
WordBasic是Word对象模型中的一个属性,该属性返回一个具有全部 WordBasic语句和函数的对象;该对象使WordBasic宏可在Word中运行。Word的每个元素(如文档、段落、字段和书签)都可以由Visual Basic中的对象表示,WordBasic语言由大约 900 个命令的平面列表组成,而 Visual Basic 由对象的层次结构组成,其中每个对象都公开一组特定的方法和属性, (类似于 WordBasic) 中的语句和函数。 大多数WordBasic命令在任何时候都可运行,而在Visual Basic中,只能使用在给定时刻有效的对象的方法和属性。
应用领域
Web网页开发
Visual Basic 6.0中,可以通过使用专用设计窗口来建立网页,以便与应用程序发生联系;也可以调入已存在的网页进行修改。在Visual Basic(VB)中建立网页时,可以将HTML元素放在设计器中,并布置它们的位置,用这种方法建立网页时,无需了解HTML标签,Visual Basic为网页中的每个元素建立标签和属性,即可完成特点功能的网页。Visual Basic可以将现有的HTML网页调入,进行重新调整用户界面、增加、删除网页上的元素。可以在Visual Basic中用代码处理动态网页DHTML发生的事件,响应网页中的元素所发生的事件。在Visual Basic中创建DHTML应用时,网页中的每一个HTML元素可作为独立的对象进行操作,可以设置它们的属性,调用它们的方法来修改特征。
应用程序开发
Visual Basic完全可视化的开发环境,事件驱动的编程机制使得编程易学易用,其中Visual Basic 2005构建的应用程序不仅能执行任务,而且具有多变的外观。使用其可以为Windows操作系统、Web、手持设备以及其他环境和设置创建应用程序,它最重要的优势是提高了开发工作中使用数据库信息和创建接口解决方案时的效率。
游戏开发
Visual Basic提供的集界面设计、编写代码、程序调试等于一体的集成开发环境,可以开发出多种具有图形界面的应用程序,以Visual Basic编制动画游戏,能够按程序代码延时,受程序代码的操作,在游戏软件的制作中具有重要意义。游戏界面的设计可通过Visual Basic提供的控件进行设计成一个窗体,窗体上的属性可以自定义。通过编码实现游戏过程和事件的发生,使用函数进行实现功能和绘图等。
用Visual Basic设计的简单游戏——黑白棋:
在窗体建立三个菜单,调用画棋盘函数过程来画出棋盘,然后调用Click命令实现单击事件,设计Timer事件的计时器,用函数进行绘制图形界面。执行程序后,游戏设计实现。
数据库应用程序开发
Visual Basic在数据库方面提供了功能和工具,利用Visual Basic提供的数据库管理功能,可以进行数据库应用程序的开发。用Visual Basic的可视化数据管理器VisData创建数据库,数据库的查询语言SQL语言没有屏幕处理或用户输入输出的能力,需要嵌入到Visual Basic语言中调用,提供访问数据库的标准方法,对于Visual Basic的关系数据库,数据存入数据库后,可以用SQL同数据库进行交互。Visual Basic中有三种数据访问的接口:ActiveX数据对象、远程数据对象和数据访问对象,与三个接口响应的三种可视化数据访问控件为ADO Data控件、Data控件和RDO控件
自动化和脚本编程
自动化是组件对象模型 (COM) 的一项功能,它是可供应用程序用来向开发工具、宏语言和其他支持自动化的应用程序公开其对象的行业标准技术。当应用程序支持自动化时,可通过 Visual Basic 访问应用程序所公开的对象。Visual Basic提供的字符串处理函数,如 Instr,Mid,Left,Format等,可以实现对字符串的比较、挑选、截取、抽取等,从而完成脚本所有关键字的解析和处理。Visual Basic Script就是微软创建的一种脚本语言,使用同Visual Basic一样的语法。
内嵌控件的应用
多媒体技术的普及,Visual Basic为了方便用户的开发,提供了功能较强的多媒体控件。其中较为简单的有MMControl控件,用于显示媒体播放的进度等信息以及控制媒体播放和结束。
网络的广泛应用使得许多语言都提供了网络程序的功能。Winsock控件是Visual Basic提供网络编程工具中的一种,它建立在TCP、UDP协议的基础上,完成与远程计算机的通信,使用该控件可以在很短的时间内创建一个简单的客户机/服务器程序。用户通过设置控件的属性并调用其方法即可连接到一台远程计算机上,并且还可以双向交换数据。
影响评价
反对观点
Visual Basic是一个充满争议的语言,很多批评家评判微软简单地拷贝了Basic语言的思想到Visual Basic中,计算机科学家Edsger Wybe Dijkstra说:“如果一个学生最早学过Basic,那么几乎不可能让他学会优秀的编程,因为这些已经放弃了重生的希望。”Visual Basic一开始就是一种简单的语言,所以很多人自学了Visual Basic,但是零基础的编程操作是他们不能掌握良好的编程习惯。并且一些C++和Java中的特性并没有在Visual Basic中出现,难以编写多线程程序和产品无法跨平台等问题使得Visual Basic不能胜任大型程序的开发。
支持观点
很多Visual Basic的支持者解释说Visual Basic的易用性就是它最大的优势,能使得经验丰富的程序员或者刚入门的人都能用自己的方式快速开发程序,而且Visual Basic的程序与数据库连接简单,利用控件即可绑定数据库,可以掌握数据库的所有信息而不用写一行代码。