将你的Visual Basic 6.0移植到Visual Basic.NET[1]

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 technofantasy 的 blog


将你的visual basic 6.0移植到visual basic.net

摘要:本文推荐给那些准备将自己的应用移植到visual basic.net中的visual basic开发者。文章中包括
visual basic.net的新特性、升级工具的信息的介绍以及将visual basic 6结构平滑升级到visual basic.net
的指导


标题
什么是visual basic.net?
为什么visual basic.net 没有提供100%的兼容?
升级到visual basic.net
同时在visual basic 6.0和visual basic.net中工作

基本结构介绍
    基于浏览器的程序
    服务器/客户工程
    单层一应用程序
    数据
    语言方面的改进

升级
    variant到object
    integer到short
    property语法
    visual basic窗体到windows窗体
    界面

升级报告既注释
    编程方面介绍
    使用事先绑定(early-binding)
    数据的存储
    无参数的缺省属性
    boolean数据类型
    避免null传播
    使用0下界数组
    使用常量而不使用常量代表的值
    用户自定义类型中的数组以及定长字符串
    避免遗传作用
    windows api调用
    对窗体以及控件的考虑


总览:
    本文推荐给那些准备将自己的应用移植到visual basic.net中的visual basic开发者。文章中包括
visual basic.net升级工具的信息的介绍以及将visual basic 6结构平滑升级到visual basic.net 的指导
    在打开visual basic 6.0工程时visual basic.net会自动升级,但是在绝大多数情况下你需要对在visual
basic.net下打开的visual basic 6.0程序做一些改动。这篇文章的用途就是时你对原来的程序的改动尽可能的
少以及有效。
注:visual basic.net仍然处于开发中,所以下面的一些细节可能还会有改动,下面的指导不保证在最终的产品出
来后代码不需要改动。


什么是visual basic.net?
    visual basic.net是下一代的visual basic。而并不是简单的在visual basic 6.0上在添加一些新特性而已,
微软重新设计了产品以便使开发者能够更加容易的开发分布式应用,例如基于web的程序以及多层系统。
    visual basic.net中有两种窗体包,windows窗体以及web窗体;一个新版的ado用于接受离线数据源;新的语
言,移走了原来的关键字,提高type数据的安全性以及提供低级别结构以满足高级别开发者的需求。
    这些新的特性为visual basic开发者提供了新的开发窗口:通过web窗体以及ado.net,你可以快速开发可扩展
的web站点;通过继承,该语言实现了真正的支持面向对象编程(object-oriented programming);windows窗体
本身支持可视继承;现在展开程序就象拷贝可执行文件和控件到另一个目录那样简单。
    visual basic.net现在完全集成在其它的microsoft visual studio .net语言中,不仅可以通过不同的语言
开发组件,而且通过交叉语言继承,你可以从用一种语言编写的类中派生用另一种语言编写的类。

为什么visual basic.net不提供100%的继承性?
    当在设计visual basic.net时有两个方向:翻新以及完全新建。为了体供给用户尽可能多的新特性(例如继
承以及线程),为了提供对新平台的完全访问,以及为了使visual basic能够完全转移到下一代的web应用中。正
确的选择是完全新建。

    例如,很多在windows窗体中的新特性可以通过在现有的代码中添加新控件以及属性来实现。但是这样就会牺
牲新的windows窗体的很多内在特性,例如安全以及可视继承性。

    一个重要的目标是使visual basic代码可以完全集成到用其它语言编写的代码中,例如microsft c#(读c sharp)
或者visual c++。以及让visual basic开发者可以完全而且简单利用.net框架的功能,而不需要象原来那样使用
windows api调用。所有的visual语言将与其它面向通用运行时语言(common language runtime)的语言使用相同
的数据定义类型、数组、用户自定义数组、类以及界面。不过这样就要做一些牺牲,例如固定长度字符串以及以非
0数为下界的数组将不再被支持。

    visual basic现在已经成为一个真正面向对象语言,一些不一致的特性,例如 gosub/return语句以及defint
已经从新语言中移走了。
    这样的结果是使visual basic更加具有活力,使其成为一种开发基于windows应用的最有效的工具之一,同时
也是开发下一代的web站点的最佳工具。

升级到visual basic.net
    visual basic.net原则上可以使传统的windows开发者转移到建立下一代web以及多层应用中。所以,你的代码
需要升级以适应visual basic.net
    在你使用visual basic.net打开visual basic 6.0工程后,通过自动升级工具可以一步步的升级并建立一个新
的基于visual basic.net的工程。这个升级是单向的,既新的visual basic.net工程无法再在visual basic 6.0中
打开。
    当工程升级后,visual basic.net会修改语法的改变以及将visual basic 6.0窗体转换为windows窗体。在通
常情况下,你还需要手工做一些修改,因为自动升级工具不可能替你做所有的事情。
    为帮助改变原来代码,当你的工程升级以后,visual basic.net会在工程中添加“升级报告”列出所有的问题,
同时在代码中添加注释提示你需要做的改动,这些注释会以“to do”列表形式列出在任务列表窗口中,所以你可
以很容易的需要改变的部分,要想浏览相关的代码只需要双击任务列表中的相关项就可以了。每一个任务以及升级
报告中的列表项都有相关的在线帮助标题以给你更多的帮助。

让visual basic 6.0和visual basic.net同时工作
    visual basic.net支持升级visual basic 6.0生成的工程,如果你的工程是在vb 1-5下编写的,你需要首先升
级道visual basic 6.0工程,编译、保存后再升级到visual basic.net。
    visual basic.net和visual basic 6.0可以安装在同一系统下并可以同时运行。同样的,利用较早版本或者其
它语言编写的com组件也可以集成到visual basic.net中。例如你可以拖-放一个visual basic 6.0编写的activex
控件到visual basic.net的windows窗体中,在visual basic.net的类中使用visual basic 6.0的com组件。
    visual basic.net编译的组件同visual basic 6.0编译的组件有一点点的不同,visual basic.net对象是通过
垃圾收集方式释放的,所以在对象被删除到对象真正被从内存中释放之间或许会有一定的延迟。
    另外,visual basic.net提供了visual basic.net组件同visual basic 6.0之间的二进制兼容性。现在展开一
个组件变的比以往更加容易,配置一个组件文件只需要简单的拷贝文件到目录就可以了(不需要regsvr32)。将组
件升级到新版本之需要以新文件覆盖就文件就可以了。你所要做的只是确定新组件的类同方法同旧组件兼容。


结构介绍
    .net平台提升了上一个版本平台的结构,对于应用的可伸缩性和分布特性提供了更好的支持。例如离线数据访
问、基于http的消息传递文件配置。要获得以上特性,你需要使用visual basic.net。


基于浏览器的应用
visual basic 6.0和visual studio 6提供了以下的技术用于建立基于浏览器的internet和intranet应用:
webclasses
dhtml projects
activex documents
active server pages (asp)

    visual basic.net中引入了asp.net,asp.net是增强版的asp,并加入到了web窗体(web forms)结构中,web
窗体是.net架构中非常重要的一个组成部分。一个web窗体包含两个部分:html文件和源程序文件。html文件用于
描述页面;源程序文件用于响应、控制页面事件。建立一个web窗体同现在建立一个visualbasic窗体一样简单。

本文关键:将你的Visual Basic 6.0移植到Visual Basic.NET
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top