它的wysiwyg 界面设计方式同现在的visual basic是一样的。下面的图片演示了一个web窗体的设计:(附加图片webforms1.gif)
web窗体运行于服务器上,产生基于html3.2标准的html页面发送到客户端。这一点同asp相同,但是由于web程
序是编译执行的,同解释执行的asp比较起来速度要快很多。
下面是对将visual basic 6.0开发的基于浏览器的应用无缝转移到visual basic.net上的一些介绍以及结构方
面的建议。
我们建议你使用微软多层构架来开发你的应用,利用asp来开发界面,同时使用visual basic 6.0或者visual
c++ 6.0开发的com组件,visual basic.net完全支持asp,你可以同时使用asp、asp.net、web窗体来扩展你的应用。
同时visual basic 6.0或者vc6商用组件可以不经升级获修改直接在visual basic.net中使用。
包含dhtml页面以及客户端dll的dhtml 应用不能自动升级到visual basic.net。我们建议你在visual basic
6.0下开发这些应用。同dhtml工程一样,activex documents不被visual basic.net支持。不能自动升级。我们建
议:或者在visual basic 6.0下开发activex documents或者将activex documents转换为用户自定义控件。不过
activex documents 和 dhtml应用程序可以集成到visual basic.net技术中。
web类(webclasses)在visual basic.net中将不再存在。web类应用将升级到asp.net;不过,在自动升级后
你还需要做一些更改。现存的web类应用可以集成到visual basic.net的web窗体和asp应用中,但是在新工程中,
我们建议在新工程中使用asp的windows dna平台。关于更多的关于windows dna的信息,请访问微软dna站点:
http://msdn.microsoft.com/isapi/gomscom.asp?target=/dna/
客户/服务器工程
visual basic 6.0提供以下技术用于建立客户端/服务器应用:
visual basic窗体
microsoft transaction server (mts)/com+中间层对象
用户控件
visual basic.net提供了新的窗体包:windows窗体。相对于visual basic 6.0的窗体,windows窗体使用不同
的对象模块,不过绝大部分是兼容的。当你的工程升级时,visual basic窗体自动升级到windows窗体。下面是
windows窗体的示例:(附加图片windowsforms1.gif)
对于开发中间层的mts and com+ 服务器组件,visual basic.net提供了更强大的支持。使用统一的调试器,
你可以从 客户端到mts/com+组件再到客户端进行步进调试。同时集成调试器也支持在mts 和 com+ 组件内部进行
调试(组件需要以native code方式编译,包含符号调试信息以及不进行优化)。
visual basic.net同样也提供了新的中间层组件:web services(web服务器)。web服务器包含在asp.net中,
其结构如下图所示:(附加图片webservices.gif)
通过使用http传递允许方法请求可以通过防火墙传递。数据的传递使用基于工业标准的xml,允许其它语言以
及平台访问它们的功能。尽管不再支持mts事务,但是你还是有理由将你的应用升级到web server,如果你不仅需
要分布式事务处理而且需要跨平台操作。通过visual basic.net你可以通过简单的拖-放操作来完成。
当你的工程升级后,用户控件会升级到windows控件;然而,自定义属性标记设置以及加速键设定不会升级。
单层应用
visual basic 6.0支持建立以下类型的单层应用程序:
单层数据库应用程序
visual basic插件
普通的应用程序以及游戏。
单层数据库程序的代表就是使用visual basic访问微软access数据库。这些应用可以有限制的升级到visual
basic.net
现在visual basic.net集成开发环境(ide)已经完全集成为visual studio.net ide的一部分,visual basic.net
包含新的中性语言(language-neutral)的扩展模块visual basic.net的插件现在就等同于visual studio.net
add-ins,你可以利用visual studio.net中的任何语言来开发插件。例如,你可以编写一个visual basic.net插件
来绘制visual c#窗体的颜色或者为vb类添加注释。为了支持这些新的功能,visual basic.net已经不再支持旧的
扩展模块,你需要更改原来程序中的扩展对象。
很多程序被规于应用程序(utility programs)。应用程序需要操作文件、设置注册表。对此,visual basic.net
也提供了新特性。例如意外句柄可以捕捉文件系统错误,使用注册表类可以勇于操控注册表。需要注意的是,一些
依赖于系统性能特征(performance characteristics)的程序,例如游戏需要做改进,因为visual basic.net提
供了新的系统性能特征,对于visual basic.net下的游戏开发,你可以使用微软directx7,或者使用新的gdi:gdi+,
gdi+包含了很多新特性,对简单的2-d游戏提供了alpha混合、反锯齿支持以及更多的图像文件格式的支持。
数据库操作
visual basic 6.0提供了以下类型的数据库访问方式:
activex data objects (ado)
remote data objects (rdo)
data access objects (dao)
visual basic.net包含了增强版的ado,称之为ado.net。ado.net的目标是操作离线数据。同时对于ado的分布
应用提供了更强大的支持。ado.net提供了绑定数据库到windows窗体控件和web窗体。
通过做一些小的更改,dao,rdo,ado仍然可以在visual basic.net中使用。然而,visual basic.net不支持dao
和rdo数据库到控件、数据库控件或者rdo用户连接的绑定。我们建议在应用中包含dao和rdo的应用或者仍然使用
visual basic 6.0开发或者再升级到visual basic.net前将它们更改为ado数据绑定。
语言方面的改进
我们在很多的编程论坛或者新闻组中可以看到c++的拥护者将vb称为一个玩具语言(toy language)。其中vb最
被人诟病的是它不真正支持面向对象编程(oop)。
在新的visual basic中,这些都将成为过去。visual basic.net将真正支持oop。继承(inheritance)、多态
(polymorphism)以及重载(overloading)。当然还不止这些。包括一些新的数据结构、结构性的错误控制(error
handing)以及线程。这些都将被新的vb所支持。
继承
假设你编写了一个只包含一个函数的名称为baseclass的基本类:
function getcustomername()
' do some stuff
end function
如果你想建立一个新类,并使用baseclass中的getcustomername函数。但有不想重写一编代码。那么通过继承,
你可以这样编写新类:
inherits baseclass
function getcustomerid()
' do some stuff
end function
重载
重载就是建立两个具有同样你名称但是参数属性不同的函数的过程。假设有getcustomid函数根据输入输出用
户的id号码。那么该函数可能有以下两种类型:
function getcustomerid(custname as string) as integer
' 通过用户名获得用户id
end function
function getcustomerid(purch as long) as integer
' 根据购物单号码获得用户id
end function
通过重载,你就可以根据不同类型的输入调用同一个函数。
实际上现在的vb在某种程度上提供了重载的功能,考虑下面的函数:
function getcustomid(vin as variant) as long
getcustomid = vin
end function
你可以以下面两种方式调用
id = getcustomid("123")
或者
id = getcustomid(123)
那么为什么还要在新版本中引进重载呢?这是因为新的visual basic引进了新的特性:类型安全(default