📄 wzjh22.htm
字号:
<html><head><title>可视化编程工具综述</title></head><body bgcolor="#FFFFFF" vlink="#990076" link="#237654"><h1 align="center">可视化编程工具综述 </h1><p align="right"><i>冯培荣 编译 </i></p><font size="-1"><i><b><p></b></i></font><font face="宋体" size="3">Visual Basic早已成为人们喜爱的开发工具,而随着Borland Delphi 2.0的推出,可视化编程工具逐渐进入热潮。它方便的操作、强大的数据库支持以及独有的预编译特性,使其成为一个后来居上者。我们因此编辑了一组文章,对当前三 个典型的可视化开发工具进行了探讨,并介绍一下Delphi在代码优化上所做的努力。 </font></p><p>Microsoft的Visual Ba-sic自推出至今已经有了五六个年头了,但如今在可视化编程领域它遇上了一个可怕的挑战者,那就是Bor-land公司推出的Delphi。Delphi不但具有Visual Basic的全部功能,还有颇多自己的创新,这使得它一出台就大有后来居上之势。 </p><p>另外Oracle公司也有一个同类的可视化产品,即Oracle Power Objects 1.0。大致说来,Power Objects 1.0是Visual Basic的一个模仿,或许它主攻的客户是Visual Basic的老版本用户。目前Power Objects 1.0还比较嫩,也才出到1.0版。 </p><p>虽然Borland公司在其它软件方面似乎不甚如意,但Delphi却是一枝独秀。今年初,Borland又推出Delphi 2.0版,它已是一个支持OLE的32位软件了。有消息说Mi-crosoft也正在开发Visual Basic的下一代版本,Power Ob-jects的下一个版本估计也将很快出台,竞争的好戏还在后头。 </p><p>很难说哪个产品就绝对优秀,正所谓萝卜青菜各有所爱,编程人员都偏爱自己使得顺手的 开发工具。下面我们的论述,只是想在开发能力、数据库支持、运行性能,还有一些其它方 面对三方产品做些比较。 </p><h4 align="center">开发能力 </h4><p>粗一来看,这三家产品非常相似,它们都提供了可视化的开发环境,提供了对OLE构件(OCX)的支持,可以与多种数据库建立连接,并且它们都有自己的底层编程语言等等(Visual Basic和Power Object用的是Basic,Delphi用的是Object Pascal)。但如果细细比较,它们的差别还是很明显的。 </p><p>Visual Basic是第一个将即拖即放的开发方式引入快速开发环境的,从Windows 3.1到现在的Windows 95和Windows NT,它一直有很好的易用性。当前的Visual Basic版本则在OLE支持上表现出优势。使用OLE,Visual Basic开发人员不但自己能访问OLE服务器,还能自己创建OLE服务器以让其它具有OLE支持的应用程序来访问。有了这个功能,开发人员就可以用所 谓的分布式应用的思想来开发应用程序了。 </p><p>前文已经说过,Power Objects是Visual Basic的一个模仿,但它却同时有Windows和Macintosh的版本。可惜的是,Power Objects却不支持已成标准的ODBC,它宁愿提供自己的数据库驱动程序。Power Objects也支持使用OCX构件,但不支持VBX构件。 </p><p>与其它产品不同的是,Delphi使用Object Pascal作为它的底层编程语言。Delphi提供了与Visual Basic同样的OLE支持,它也能在应用中使用OCX构件。它最重要的特性还表现在它的预编译能力上,因为Visual Basic和Power Objects都得让应用程序解释执行,这不免浪费了系统资源和CPU速度。Delphi则预先将应用程序编译成经过优化的本地代码,其执行速度明显高于同类。 </p><h4 align="center">基于构件的开发 </h4><p>这三个产品都支持基于构件的开发(即用拼凑构件的方式开发应用程序),实际上,它们对 基于构件的支持能力可能还要大过它们对面向对象的所谓封装和继承的支持能力,因为 这样做对初学者有利。当然,它们也都有自己独特的面向对象支持方式。 </p><p>构件有两类,一类是操作系统本身所带的本地构件,它们是不可移植的;另一类则是第三 方厂商提供的构件库,如VBX和OCX等,它们存在着多个操作系统的版本。使用构件开发的一般思想是,尽量使用已有的构件来构造(或者说是拼合)应用程序,例如计算器、VCR控件、数据库访问,这些都有现成做好的构件让你引用,最好避免自己来创建本地构件 。 </p><p>一度统治构件市场的Visual Basic控件(VBX)为什么让位给了OLE控件呢?其基本的原因就是标准问题。VBX不是基于一个标准的构件开发平台。而OCX则不同,它使用的是基于OLE标准的构件开发接口。目前Visual Basic和Delphi还同时支持VBX和OCX,但Power Object只支持OCX。 </p><p>Delphi的基于构件的开发环境是目前面向对象和构件开发性能最好的。Delphi也是用它自己的构件库来书写的,在Delphi上开发应用可以简单到使用现成的构件库拼凑而以。Delphi提供的构件库称为VCL,它提供了在Del-phi上开发应用的基石。VCL几乎无所不包,它提供了你用于界面设计、数据访问、列表框、菜单等的各 种一般构件,它同样提供了诸如栅格、表、记事薄等各种实用构件。和Visual Basic和Power Objects一样,Delphi让程序员从构件板上直接拖放构件来构造应用程序,程序员也可以通过从VCL构件中继承其属性和功能来创建自己的构件 ,以恰好满足应用程序的需要。 </p><p>如果程序员要使用第三方厂商的构件库(如VBX和OCX),他只需将VBX或OCX登记入Delphi的构件板,然后就可以引用或继承VBX或OCX构件了。 </p><p>和Delphi比较相似,Visual Basic也可以让程序员以即拖即放的方式开发应用。它在集成环境中提供了一个toolbox,所有的构件就可以从toolbox取得。Visual Basic的toolbox构件库也可以用第三方厂商的OCX构件扩展,不过Visual Basic自带的构件库已很够用了。程序员也可以继承或修改构件的属性来创建自己的构件。 </p><p>Power Objects对构件的处理也比较类似,但遗憾的是,它只支持OCX,却不支持VBX构件。看来,要让程序员喜欢它,还得有待更多的VBX厂商推出其OCX的版本。 </p><p>但是,Power Object在有一点上与Visual Basic大不相同,那就是在对面向对象开发模型的支持上。Power Object是将对象建立在实体(Forms)上而不是控制(Contrils)上。 </p><p>程序员可以将任何实体放入一个类,又可以将这些类放入一个实体,并继承原来实体的特 性。对于含有相似实体的应用来说,这是比较方便的,因为只要程序员改动其中一个实体, 则所有从这个实体继承而来的其它实体也相应改变。对于典型的Client/Server开发工具来说,这一点是很重要的。 </p><p>这三种产品都提供了一些表格处理能力,例如Visual Basic捆绑了Crystal Reports,并允许将它作为一个OCX加入到应用程序中;Delphi则捆绑了Borland的Report-Smith,这两个表格处理应用基本上都具有了用户所需要的报表和图形显示能力。Power Objects使用的是其独特的表格应用,对于成组的表格处理比较容易,但对于复杂的表格则并不理想。不过可以用其它表格应 用来做替代方案(可以使用Crystal Reports,它可以被作为一个OCX集成到Power Objects中)。 </p><h4 align="center">数据库支持 </h4><p>三个产品都支持许多种数据库引擎,不管是本地的还是远地的,但它们访问数据库的方式 则各有独特之处。 </p><p>Delphi的Data Access提供了Delphi用于访问数据库的对象,包括建立连接、访问数据、查询内库等等。Borland Database Engine(BDE)则是Delphi数据库方案的核心,Delphi是通过BDE来与Oracle、Sysbase、Informix、In-terbase、DB2以及Microsoft SQL Server等数据库通讯的。使用ODBC标准接口,Delphi也可以访问DBASE和Paradox的文件。Delphi把许多BDE功能加入到构件中,从而使它成为三个产品中数据库开发能力最强的一个。Delphi 2.0新加入的一个特点是,用户不需要第三方的开发工具,直接能够在Delphi的集成环境中进行数据库操作。 </p><p>Visual Basic的数据库访问是建立在Data Access Ob-ject(DAO)和JET数据库引擎上。此外,Visual Basic还提供了一些控制方面的新特性。JET用于支持对表格的创建、维护或删除,还有如索引、查询等功能。V isual Ba-sic和JET对数据库的访问则是通过DAO。在前几个版本中,Visual Basic的数据库能力似乎给人以马后炮的感觉,但最近的Visual Basic 4.0却已经在技术上赶上来了。 </p><p>除了提供传统的数据库能力以外,Visual Basic和JET还提供了诸如数据库复制和较好的安全机制等一些特别的功能。 </p><p>Power Objects对数据库的支持似乎只是面向服务器的。令人奇怪的是,它不支持标准的ODBC,而只是对O-racle、Sysbase、Microsoft SQL Server等有限的几个数据库提供本地驱动程序。对其它数据库,它不提供连接能力。可能的原因是,Power Objects比较强调对数据库引擎的完全控制,而用ODBC很难做到这一点。在下一个版本中,它将会提供ODBC的支持。 </p><p>Power Object让所有的数据库请求都通过一个事务处理对象,统一由这个事务处理对象创建到数据库的连接并将有关的表格、图、索引直观地显示出来,不同的图标 代表不同的数据库资源,这比上两家产品具有更好的直观性。 </p><h4 align="center">OLE支持 </h4><p>三家产品都提供了对OLE的支持,说明白点,这是一种能允许一个应用程序给另一个应用 程序提供服务的公共接口。例如,通过OLE接口,Delphi可以将数据库的查询结果发送给Microsoft Excel。 </p><p>Visual Basic是OLE的老手,实现OLE控制只须几个定义操作,十分方便。Visual Basic又是少有的几个能在远程网络上支持OLE的软件之一,它允许程序员将应用程序分为几块,在各个不同的远程服务器上执行,这就是所谓"多层应用 "的概念。不过,虽然Visual Basic中提供了很先进的分布式应用功能,但这门技术还不太成熟,实用尚需一段时间。 </p><p>Delphi是通过一种"变种"的方式来实现OLE通信的。Delphi提供了一个TAutoObject对象,通过对它继承来创建OLE服务者对象,再将服务者对象的属性和方法通知给其它应用。Delphi另外还提供了一个辅助工具来使OLE操作变得简易。 </p><p>Power Objects目前还只能被看做是具有OLE能力,它还不能自己创建OLE服务者对象。 </p><h4 align="center">运行性能 </h4><p>运行性能包括开发工具性能、应用程序性能和数据库性能。由于Visual Basic含有较多的OCX控件,在比较快的机器上它更能发挥优势。 </p><p>Delphi和Visual Basic的32位版本表现出了较大的优越性。它们不但能生成16位的应用,还能利用Windows 95和Windows NT的多任务、多线程特性。比较起来,Power Objects似乎更停留在Windows 3.X上,当然它也能在Windows 95上运行。 </p><p>由于有预编译这一项,Delphi应用程序的运行速度明显要快于其它两个。Visual Basic和Power Objects还要使用P代码解释执行,这决定它们在运行速度、内存占用上要弱于Delphi。 </p><p>三家的数据库性能不相伯仲,但Visual Basic由于采用了标准的ODBC连接方式,而其它两家则采用本地驱动程序,理论上Visual Basic要慢一些,但新发布的32位ODBC弥补了差距。 </p><h4 align="center">正确的选择 </h4><p>如何选择恰当的工具,这取决于你使用的操作系统平台、开发工具易用性、性能和可扩 展性。如果你需要在Windows 95或Windows NT上开发,那就只能在Delphi和Visual Basic上选择;如果你需要让应用程序同时支持Windows和Macintosh,那Power Objects就是当然的选择了。 </p><p>总的来说,Visual Basic在开发的易用性上比其它两家要稍稍强些,而Delphi在开发能力上要占优势,但它略微复杂,不太适合于初学者。Power Object虽然也是一个完整的开发环境,但它的OCX支持较少,这会给开发者带来不便。 </p><p>如果你对运行速度比较在意,选择Delphi,它的预编译特性会让你满意。 </p><p>在可扩展性上,只好选择Visual Basic或Delphi,它们都提供了很好的对OLE的支持。虽然Visual Basic采用了所谓多层应用的结构,但这门技术毕竟还没有成熟,用者并不多。 </p></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -