VB“挑衅”.NET!

从两年前开始接触VB,到现在学习VB.NET,不得不说这两者长得真心是相似(ps:只差三个字母一个点),从语法结构到界面设计等。但他们有又什么不同呢?都说VB.NET高级,比VB到底高级在哪里了?是不是VB.NET能完全代替VB?

本文将带您揭开双方“大战”的结果。

1、背景介绍

VB.NET是微软公司在2002年推出的一种开发基于.Net平台使用程序的开发语言,也是微软公司极力推选的一种开发.Net平台使用程序的开发语言之一。接下来让我们来基本了解一下VB.NET和其前一个版本---VB 6.0的主要区别。

2、到底谁是“嫡传”OOP?

VB与.NET经过多轮的验明正身,发现VB竟然不是完全面向对象的,它不符合OOP三大特性(封装、继承、多态)中的继承性!而VB.NET才流的才是正统的OOP的新鲜血液!VB这着实让活跃在VB界的新手菜鸟们慌乱了一把~~

我们在使用VB6.0的时候,可以建立新的类、新的窗体,把它们看成对象,但是各个类之间无法实现继承,所以只能称VB6.0是“基于OOP”的可视化程序设计语言,这也是它和.NET的最大区别

3、出场形式见“华丽转身”

VB很明显,我们只能在Windows应用窗体中见到他的身影,而VB.NET呢?

不只是WindowsForm! VB.NET还可以创建ASP.net和Web服务应用程序,还允许创建控制台应用程序和作为桌面服务运行的应用程序。

4、数据访问功能的潜力比拼

   二者在数据访问上的实力也有很大差距,主要体现在数据访问技能、具体实现要领和数据绑定三点上的不同

首先,在数据访问技能上,CB6.0是通过ADO来实现对数据库访问的,同时为了保证对早期版本的兼容,也提供了

RDO(远程数据对象)和DAO(数据访问对象)二种数据访问技能。在VB.NET中是运用 ADO.NET来访问数据库的,

ADO.NET是.NET框架的一部分,其对应的类库是.Net
FrameWork SDK的真子集。其实在VB.NET中也可以运用 ADO来访

问数据库,但ADO在VB.NET中是以COM组件的形式出现的,通过添加引用才可以在VB.NET中运用。添加引用的流程

其实就是对COM组件互操作。经过互操作后的COM组件,已经并非先前意义上的COM组件,而是转变成可供VB.NET直接

运用 的.Net类库。

在数据访问的具体实现要领上,VB 6.0实现数据访问主要是两种要领:其一是在程序设计阶段,可通过把数据

源绑定到ADODC控件或运用数据环境;其二在运行时,可以通过编程方式建立记录集RecordSet对象并与记录集对象交

换数据。

同样在VB.NET中实现数据访问的要领主要也是两种:一是在程序设计阶段,通过建立 、配置数据适配器

(DataAdapter)和生成数据集(DataSet);二在运行中,通过编程方式动态建立
、配置数据适配器和建立 、生成数据集。

数据绑定上,VB是通过配置控件的属性来实现,通常是把控件的显示属性绑定到数据源中的相应字段。而.NET中,数据绑定的使用范围广泛的多,可以将任何控件的任何属性绑定到包含数据的任何结构中。

5、Web开发见真知

VB6.0是运用ASP(Active Server Page)建立在Web上的应用程序。在ASP中,编写Web页面并非纯正的VB语言,而是VB脚本语言---VBScript。ASP页面开发对工具要求低,但其是面向流程式开发,所以复杂一点的ASP代码都显得杂乱无章,使得程序设计比较麻烦。

VB.NET是运用ASP.NET来编写Web页面的。但在ASP.net中,运用的不再是脚本语言了,而是真实意义的编程语言。VB.NET完全支持Web编程,且建立在新的框架结构上。它凭借ASP.net的Web应用程序、XML Web Services等基于Web上的功能,使得开发Web页面与开发Windows编程很相似,Web页面代码也显得比较有条理了。


6、组件建立--你是怎么来的?

在运用VB和VB.NET编写应用程序时,虽然都可以通过从工具箱中选择组件,但二者在实现机理上却存在根本不同。在VB 6.0中,应用程序中建立的组件全部是COM组件,即可在COM应用程序中运用的ActiveX控件、ActiveX
类型的DLL 和 ActiveX类型的EXE。

而在VB.NET中,向窗体中拖入的组件,都是基于继承,从.Net框架提供的SDK中相应的类继承,经过实例化后,通过添加功能才把组件加入到设计窗体中。


7、单线程?多线程!

VB6.0只支持单线程而不支持多线程,.NET则完全支持多线程。

在并发问题和多任务管理方面,VB6.0支持多个单线程单元,不过它并不支持一个自由线程的模型。而VB.NET则通过使用CLR拥有了创建自由线程的功能。它通过系统的System.Threading类直接创建多线程应用程序。


8、异常处理怎么看?

关于VB的异常处理,我们以前常用的解决方法有如下几种:On Error GOTO语句的使用,即直接跳转到某命令行;Exit Sub,直接退出过程,以避免进入错误程序;On Error Resume Next,改变错误陷阱等等。

但在VB.net中,错误的捕获、处理和后续进行工作(错误关闭)则变得更加完善和流畅了。体现在Try …… Catch …… Finally程序段的使用。

9、与其他语言的“交流”

在讲到这里的时候,不得不介绍一下MSIL,即Microsoft Intermediate Language,译为微软中间语言。

MSIL是将.NET转化为机器语言的一个中间过程。它是一种介于高级语言和基于Intel的汇编语言的伪汇编语言。当用户编译一个.NET程序时,编译器将源代码翻译成一组可以有效地转换为本机代码且独立于CPU的指令,当执行这些指令时,实时(JIT)编译器将它们转化为CPU特定的代码。由于公共语言运行库支持多种实时编译器,因此同一段msil代码可以被不同的编译器实时编译并运行在不同的结构上。这给程序员提供了极大的灵活性,程序员可以选择自己熟悉的语言,并且再也不用为学习不断推出的新语言而烦恼了。——百度百科

.NET FrameWork下的高级语言之间支持混合语言编程原理:.NET编译器把源代码编译成MSIL,而不是机器语言,然后把MSIL语言在.NET Framework的环境下解释成机器语言来运行。

总之,VB与.NET之间还是有很大差别的,它们之间的关系不只是版本上的升级,更是VB.NET从OOP机制、数据处理、并发控制等思想方面的超越和Web页面、控制台程序等形式上的更新。

时间: 2024-12-06 02:10:32

VB“挑衅”.NET!的相关文章

VB.NET 自动打包程序

因为每次将编译好的程序提交时都要花费很多时间用来打包,因此我需要有一个让程序自动完成这些琐碎的工作. 首先说一下我的目标.我的C#程序(在本文中暂时称作Example.exe)编译后暂时存放在Debug目录中,该程序有两种形态:平台端和客户端,它们分别给不同的用户使用,这两个客户端的不同之处仅在与App.config(可以被看做一个XML文件)中的配置不同.打包时需要先使用NSIS脚本对Debug目录下的内容制作成安装包,再使用WinRAR将安装包进行压缩.除了两个安装包外,还需要提供一些文件放

VB.NET,C#.NET调用Web Service,利用visual studio 的实现方法

在VB.NET调用Web Service提供的服务 技术qq交流群:JavaDream:251572072 下面是一篇文章比较详细,其实具体操作很简单,把Web Service服务地址,利用工具(VS2010),通过添加引用的形式,添加到项目中来就可以应用了. 大家如果这个地方不会操场的话,可以问问我QQ:1606841559 当Web Service已经处于对外提供服务状态,VB.NET就可以通过HTTP"调用"来使用这些服务了.当然前提是要了解Web Service对外提供服务所对

VB.NET视频总结

VB.NET是我们接触到的另一种应用程序开发平台,这次的视频学习知识了解一些基本的概念,为今后的学习奠定基础. 相对来说,这部分的视频还是不太容易理解的.其主要原因是,讲师是台湾人士,语言上有很大的差异,一开始的时候犹如听天书.但是随着学习的深入,慢慢的也就适应了.然后就大都能够听明白了,他们讲的内容其实大部分是我们已经接触过的. 第一部分都是讲.NET的基础知识,为我们更近一步的学习奠定基础,这部分无非就是它的概念.发展等,还有就是它所包含的一些基本物件,跟Vb的一些知识还是有一定的相似的.然

vb.net总结

看完了vb.net视频,感觉理解的不是很好,很多名词都听不懂,于是自己百度了一下,做了个汇总,然后还有自己画的一张图将它们有机的结合在一起,错误之处还请大家多多指教. 下图是我对vb.net的一个总体知识概括,很多地方他都是和vb相似的. com技术: 所谓COM(ComponentObject Model,组件对象模型),是一种说明如何建立可动态互变组件的规范,此规范提供了为保证能够互操作,客户和组件应遵循的一些二进制和网络标准.通过这种标准将可以在任意两个组件之间进行通信而不用考虑其所处的操

VB.NET-QQ新闻弹窗样式图片制作工具

〇.下载地址 本程序的下载地址(百度网盘):http://pan.baidu.com/s/1qWBGGGG 一.关于本程序 Gnaea是一个QQ新闻弹窗的填字工具,可以在输入新闻标题和新闻内容后生成一张类似QQ新闻弹窗的图片.生成的图片可以被保存为BMP和PNG两种格式,或是直接复制到剪贴板. 效果如下图(注:内容纯属虚构) 二.程序控件 三.程序资源 被用作素材的资源:My.Resources.PopUp,取材于一张PNG格式的图片 四.程序代码 Imports System.Text Pub

游戏“你是XX么”的VB.NET实现

〇.下载地址 本程序可以在 这里 下载到. 一.关于本游戏的玩法 1)刚进程序,会有一个提示性的窗体,单击"开始测试"按钮正式进入游戏 2)正式进入游戏窗体后,当鼠标挪向按钮"不是"后,按钮"不是"上的字样会变成"是",而原来的按钮"是"上面会显示"不是".点击两个按钮的任意一个后,都会被程序"羞辱",然后程序会自动退出. 3)不要试图通过打开右上角的X或是用任务管理

VB 中窗口发现冲突名称,将使用名称...怎么解决?

首先上图: 刚開始敲机房收费系统的时候就出现过这样的情况,当时有八个之多. 解决方法: (1)对窗口进行重命名(比如将frmGongZuoJiLu改成frmGongzuojilu),于是从8个错误降低到了5个. 剩下的3个对于这样的情况不适用. (2)发现我的frm文件里命名为frmXinXiWeiHu,例如以下: 可是我的窗口名字竟然是这种: 将两个名字改成同样的,利用这样的方法又使错误从3个降低到了2个. (3)剩下的两个顽固分子从机房開始到机房项目快结束了一直存留,昨天师傅开会提到了遇到问

vb6转vb.net

一直在用vb6写软件,但最近系统要做web版,但之前的业务规则全在代码中写死了,没用使用存贮过程,如果在web端重写规则,则工作量太大,项目时间也不允许,只好把业务规则转到vb.net中.现在的vb.net版本已不支持从vb6转入,不过可以直接把业务规则复制到新的vb.net中,差异很小,基本改改就行.转换过程中以下几点要特别注意: 1.vb6中过程调用可以不用括号包围参数,如 add a,b这样是合法的,但vb.net中不支持这种写法,必须是add(a,b)这样变动. 2.vb6中支持感叹号(

使用VB创建贪吃蛇

贪吃蛇作为一个经典游戏,在其开发成功后,有很长一段时间令很多人为之振奋,但随着时间的流逝,贪吃蛇也逐渐淡出人们的视野.本次,我利用VB重现贪吃蛇的创建.主要使用到的控件:Label标签,Command按钮,Timer控件. 以下为创建过程: 贪吃蛇作为一个游戏来说,主要分为6个部分: 地图创建部分: 地图坐标初始化部分: 食物创建部分: 贪吃蛇创建部分: 贪吃蛇移动控制部分: 贪吃蛇吃食物身体变化部分. 在创建之前,我们需要为我们需要的变量进行定义: 1 Private MapXy(4900)