暴
暴峰雨
导语
虽然和VB的第一个版本相比,目前被广泛使用的Visual Basic 6.0已有了很大的改进,但从多数程序员的编程实践来看,仍有很多不足。在汲取 大量经验、教训的基础上,即将发布的Visual Basic 7.0(简称VB7)具有非常突出的优点,那就是:使VB能更简单、快捷地用于设计、编写和调试出面向对象的优秀应用程序。
前不久,在全美Visual Basic圈内人士峰会(VBITS)上,微软宣布了将推出VB7,并表示这一新版本按 计划会在2001年2月发布。所以,现在想急于见到VB7的朋友,恐怕还得耐心等一段时间。
据说,在VB7中将有许多核心层面的改进,主要包括三方面:Web Forms、Web services和面向对象的语法方面的改进。Web Forms使得经验丰富的VB用户可以像现在编写单机程序一样, 简单地开发网络应用程序;通过方便普及的SOAP接口, Web services的运用可在联网的任何地方灵活配置你所设计的组件。在面向对象的语言 方面的关键性改进,使得VB7的代码像C++和Java一样具有灵活性。不过, 限于篇幅,我们不打算在这里对VB的新特性进行过于详尽的介绍,只想关 注VB7中那些具有重大改进的新特性。
★构造函数
当我们创建一个对象的时候,利用构造函数我们可同时给这个对象中的成员赋初值,这样有助于正确地初始化一个对象。现在,我们在创建对 象的时候,必须要等到对象创建完毕之后,另外调用一个独立的方法来对它进行初始化。在VB7中,我们可以利用构造函数给对象赋初值——这样我们就不需要再采用烦琐地调用赋初值的方法了。构造函数简化了编码的 过程,也减少了出错的机会。
★封装特性
封装的意思,就是指程序提供一个包含了一系列过程和函数的接口,其他的程序可以直接利用对象的这个接口,而不需要去了解接口里面的具体代码。接口中的代码,一般来说总是实现一些相对完整的功能。
★自由线程
从基本意义来讲,线程的意思就是让我们的程序可以在同一时刻做两 件以上的事情。比如,我们也许需要让程序在后台打印一个文档,同时还 要让它响应当前用户不断发出的命令。线程在创建具有高度扩展性服务端程 序的时候显得比较有用。而且,利用线程来编写具有极强交互性用户界面 的时候也十分容易,例如我们可以为一个需要长时间运行的程序加上一个 Cancel按钮,让用户可以有更多的选择。大家一定记得,以前使用VB编程 时,如何进行线程编写,的确让人绞尽脑汁。调试线程的复杂和不稳定性, 使编写线程变得相当复杂(因为只能使用API来写,还是伪线程的,说是多线程不如说是多进程来得恰当)。现在,新的VB7提供了编写线程的能力, 以一种相对简单的形式予以了实现。
★继承
一个语言是否具有继承特性,常被人们用作判断是否是面向对象语言 的关键标准。继承是这样的一种概念:如果一个对象能够获得另外一个 对象的接口和方法,并且可以扩展这些接口和方法,我们就称这个对象继 承了另一个对象。举个实际的例子,我们在产品存储程序中,可以创建一个 通用的,可以处理所有产品的产品对象——“Product”。从这个对象中,根 据是否需要上税,我又可以派生出一个免税产品对象“NonTaxable Product”和一个需税产品对象“Taxable Product”。两个对象都将继承原始产品对象“Product”的接口 和所有方法,但是将根据各自不同的实际情况,在需要的地方修改或扩展 原始对象的方法。
★初始化函数
现在我们在VB中还需要首先声明一个变量,然后我们才能对它赋初 值——这样子我们需要写两行代码。初始化函数可以让我们将这两个步骤 合并在一行代码中完成。虽然这是一个微小的变化,但是从代码的角度来 看,这个改进为我们提供了更少、更简单、更容易维护的代码。
★基于对象
对于一种计算机语言来讲,做到基于对象要比面向对象相对容易些。 不过,什么是基于对象,到现在也只有一个很模糊的定义——大概是指一种语言具有直接和对象进行交互的能 力。VB3.0就已经是基于对象的语言了,当时它能够和DAO对象以及控件 交互;后来随着版本的提升,这些对象已经扩大到了ActiveX控件、RDO、 ADO对象等等。
★面向对象
一种面向对象的语言至少需要满足三个条件:封装性(VB4中就已经实 现了)、继承性(VB7中才会有)、多形性(呵呵,多形性指的是多形态,就 是对多个对象的相同接口。VB3中就有了,是不是感到很惊奇?)所以,在 VB7中,会实现完全的面向对象,因为他将满足这三个条件。
★重载
对象们经常在类似的数据上开展同样的功能。比如,我们需要能够加服务和产品项到一个订购对象上。现在,我们必须分开对订购对象执行一 个方法。利用函数重载,我们仅需要执行ASS方法,然后让VB语言自己根据 情况去选择执行正确的函数。
★多形性
简单地说,就是让两个不同类型的对象,具有执行同一种方法的能力。 这使我们在采用代码调用这个方法时,不需要关心使用对象的类型。在VB5 中是通过执行关键字和多个COM接口来实现的。现在,在VB7版本中,我 么将看到继承接口同样也具有多形性。最后,VB在执行多形性时,给程序编 写相当大的灵活性。
★共享成员
又称静态成员和类级成员。这些是方法和变量相同地对所有的类事例来说。每一个对象创建的时候,基于一个给定的类,分享这些相同的变量 和函数。例如,我们可以计算出一个类有多少个实例创建了,只要我们声 明一个共享的计数器变量。
★结构化错误处理
替代了不稳定也极不灵活的 ONERR...GOTO...语句,我们有一个新的结构来处理错误。这一块结构包 含了TRY,CATCH。在TRY和CARCK之间的代码块被保护,如果有个错误出 现了,这个CATCH代码块就会运行,在CATCH运行完之后,FAN块内的代码 就做错误结束处理完之后的清除和收尾的工作。
★类型安全保证
VB7在变量的类型转换上显得特别前卫。它为了打印,会自动将数字转换成文字,并且还有更多类似的特点。有时候,这样的情况会导致不可知的副作用。有了类型安全控制后,我们将可以自己选择让VB避免自动做 类型转换,在程序编写时避免一些不可淤滞的错误,是显得非常有用的。
★用户界面继承
语言继承还是不够的,VB7还将让VB的表单具有继承特性。这意味着我们能创建一个基本的表单模板,也许模板中包含一个标准的工具条。公司标志和颜色,然后从这个模板中派生出我们所需要的其它模板,这些派 生的模板将继承原始模板的样式和代码。一个改变对于原始模板来说,可自动点播所有由次模板派生出来的其它表单,只需要简单的编译即可。
★ WEB表单
很多年来,VB很广泛地被认为是强大的表单设计工具。我们也习惯于在空间上双击出来一个编码窗口,然 后我们就可以在窗口里面写哪个空间的事件了。WEB表单将这个特性带给 了HTML开发。WEB表单是以浏览器为平台,所有的代码都运行在WQEN服务 器上。但同时,也留给我们拉放表单设计和双机空间编写服务端的时间代 码的能力。更妙的是,这是真正的VB代码,而不是VBS代码。
★WEB服务
一个WEB服务是一个组件,运行于一个WEB服务器上,并允许客户程序通过HTTP调用他的方法。在组件上的每种方法都表现为一个URL,而且 可以返回数据(或许是XML文档)并接受参数输入。这样的技术基于的是 开放SOAP标准,所以我们的服务端组件实际上可以被任何客户访问,而不管是什么语言或者平台。
随着VB7的推出,有一点是确定的:那就是VB将演变成一个完全面向 对象的语言。有了上述提到的这些新特性,VB仍将会是世界上使用最广泛的开发工具。可以这么说,对于在编程中所能考虑到的绝大多数情况,通 过VB7来解决都是可以实现的。
虽然和VB的第一个版本相比,目前被广泛使用的Visual Basic 6.0已有了很大的改进,但从多数程序员的编程实践来看,仍有很多不足。在汲取 大量经验、教训的基础上,即将发布的Visual Basic 7.0(简称VB7)具有非常突出的优点,那就是:使VB能更简单、快捷地用于设计、编写和调试出面向对象的优秀应用程序。
前不久,在全美Visual Basic圈内人士峰会(VBITS)上,微软宣布了将推出VB7,并表示这一新版本按 计划会在2001年2月发布。所以,现在想急于见到VB7的朋友,恐怕还得耐心等一段时间。
据说,在VB7中将有许多核心层面的改进,主要包括三方面:Web Forms、Web services和面向对象的语法方面的改进。Web Forms使得经验丰富的VB用户可以像现在编写单机程序一样, 简单地开发网络应用程序;通过方便普及的SOAP接口, Web services的运用可在联网的任何地方灵活配置你所设计的组件。在面向对象的语言 方面的关键性改进,使得VB7的代码像C++和Java一样具有灵活性。不过, 限于篇幅,我们不打算在这里对VB的新特性进行过于详尽的介绍,只想关 注VB7中那些具有重大改进的新特性。
★构造函数
当我们创建一个对象的时候,利用构造函数我们可同时给这个对象中的成员赋初值,这样有助于正确地初始化一个对象。现在,我们在创建对 象的时候,必须要等到对象创建完毕之后,另外调用一个独立的方法来对它进行初始化。在VB7中,我们可以利用构造函数给对象赋初值——这样我们就不需要再采用烦琐地调用赋初值的方法了。构造函数简化了编码的 过程,也减少了出错的机会。
★封装特性
封装的意思,就是指程序提供一个包含了一系列过程和函数的接口,其他的程序可以直接利用对象的这个接口,而不需要去了解接口里面的具体代码。接口中的代码,一般来说总是实现一些相对完整的功能。
★自由线程
从基本意义来讲,线程的意思就是让我们的程序可以在同一时刻做两 件以上的事情。比如,我们也许需要让程序在后台打印一个文档,同时还 要让它响应当前用户不断发出的命令。线程在创建具有高度扩展性服务端程 序的时候显得比较有用。而且,利用线程来编写具有极强交互性用户界面 的时候也十分容易,例如我们可以为一个需要长时间运行的程序加上一个 Cancel按钮,让用户可以有更多的选择。大家一定记得,以前使用VB编程 时,如何进行线程编写,的确让人绞尽脑汁。调试线程的复杂和不稳定性, 使编写线程变得相当复杂(因为只能使用API来写,还是伪线程的,说是多线程不如说是多进程来得恰当)。现在,新的VB7提供了编写线程的能力, 以一种相对简单的形式予以了实现。
★继承
一个语言是否具有继承特性,常被人们用作判断是否是面向对象语言 的关键标准。继承是这样的一种概念:如果一个对象能够获得另外一个 对象的接口和方法,并且可以扩展这些接口和方法,我们就称这个对象继 承了另一个对象。举个实际的例子,我们在产品存储程序中,可以创建一个 通用的,可以处理所有产品的产品对象——“Product”。从这个对象中,根 据是否需要上税,我又可以派生出一个免税产品对象“NonTaxable Product”和一个需税产品对象“Taxable Product”。两个对象都将继承原始产品对象“Product”的接口 和所有方法,但是将根据各自不同的实际情况,在需要的地方修改或扩展 原始对象的方法。
★初始化函数
现在我们在VB中还需要首先声明一个变量,然后我们才能对它赋初 值——这样子我们需要写两行代码。初始化函数可以让我们将这两个步骤 合并在一行代码中完成。虽然这是一个微小的变化,但是从代码的角度来 看,这个改进为我们提供了更少、更简单、更容易维护的代码。
★基于对象
对于一种计算机语言来讲,做到基于对象要比面向对象相对容易些。 不过,什么是基于对象,到现在也只有一个很模糊的定义——大概是指一种语言具有直接和对象进行交互的能 力。VB3.0就已经是基于对象的语言了,当时它能够和DAO对象以及控件 交互;后来随着版本的提升,这些对象已经扩大到了ActiveX控件、RDO、 ADO对象等等。
★面向对象
一种面向对象的语言至少需要满足三个条件:封装性(VB4中就已经实 现了)、继承性(VB7中才会有)、多形性(呵呵,多形性指的是多形态,就 是对多个对象的相同接口。VB3中就有了,是不是感到很惊奇?)所以,在 VB7中,会实现完全的面向对象,因为他将满足这三个条件。
★重载
对象们经常在类似的数据上开展同样的功能。比如,我们需要能够加服务和产品项到一个订购对象上。现在,我们必须分开对订购对象执行一 个方法。利用函数重载,我们仅需要执行ASS方法,然后让VB语言自己根据 情况去选择执行正确的函数。
★多形性
简单地说,就是让两个不同类型的对象,具有执行同一种方法的能力。 这使我们在采用代码调用这个方法时,不需要关心使用对象的类型。在VB5 中是通过执行关键字和多个COM接口来实现的。现在,在VB7版本中,我 么将看到继承接口同样也具有多形性。最后,VB在执行多形性时,给程序编 写相当大的灵活性。
★共享成员
又称静态成员和类级成员。这些是方法和变量相同地对所有的类事例来说。每一个对象创建的时候,基于一个给定的类,分享这些相同的变量 和函数。例如,我们可以计算出一个类有多少个实例创建了,只要我们声 明一个共享的计数器变量。
★结构化错误处理
替代了不稳定也极不灵活的 ONERR...GOTO...语句,我们有一个新的结构来处理错误。这一块结构包 含了TRY,CATCH。在TRY和CARCK之间的代码块被保护,如果有个错误出 现了,这个CATCH代码块就会运行,在CATCH运行完之后,FAN块内的代码 就做错误结束处理完之后的清除和收尾的工作。
★类型安全保证
VB7在变量的类型转换上显得特别前卫。它为了打印,会自动将数字转换成文字,并且还有更多类似的特点。有时候,这样的情况会导致不可知的副作用。有了类型安全控制后,我们将可以自己选择让VB避免自动做 类型转换,在程序编写时避免一些不可淤滞的错误,是显得非常有用的。
★用户界面继承
语言继承还是不够的,VB7还将让VB的表单具有继承特性。这意味着我们能创建一个基本的表单模板,也许模板中包含一个标准的工具条。公司标志和颜色,然后从这个模板中派生出我们所需要的其它模板,这些派 生的模板将继承原始模板的样式和代码。一个改变对于原始模板来说,可自动点播所有由次模板派生出来的其它表单,只需要简单的编译即可。
★ WEB表单
很多年来,VB很广泛地被认为是强大的表单设计工具。我们也习惯于在空间上双击出来一个编码窗口,然 后我们就可以在窗口里面写哪个空间的事件了。WEB表单将这个特性带给 了HTML开发。WEB表单是以浏览器为平台,所有的代码都运行在WQEN服务 器上。但同时,也留给我们拉放表单设计和双机空间编写服务端的时间代 码的能力。更妙的是,这是真正的VB代码,而不是VBS代码。
★WEB服务
一个WEB服务是一个组件,运行于一个WEB服务器上,并允许客户程序通过HTTP调用他的方法。在组件上的每种方法都表现为一个URL,而且 可以返回数据(或许是XML文档)并接受参数输入。这样的技术基于的是 开放SOAP标准,所以我们的服务端组件实际上可以被任何客户访问,而不管是什么语言或者平台。
随着VB7的推出,有一点是确定的:那就是VB将演变成一个完全面向 对象的语言。有了上述提到的这些新特性,VB仍将会是世界上使用最广泛的开发工具。可以这么说,对于在编程中所能考虑到的绝大多数情况,通 过VB7来解决都是可以实现的。
| 我们只不过是生命之网上的一股线绳,生活在离太阳最近的第3颗行星上,我们只有一个地球!One earth!
oicq:19906552 |
| 喜欢电影的朋友这来... |