VB与VB.NET的区别

     刚刚接触VB.NET时,心中一直有一个问号——VB和VB.NET究竟有什么区别呢?经过初步学习后,我觉得可以通过以下五个VB.NET的主要特点来了解VBVB.NET的区别。


       一、VB.NET有两种新的窗体方式---Windows窗体和Web窗体.

          VB.NET允许创建不同类型的应用程序,例如,可以创建ASP.NETASP.NET Web服务应用程序,还允许创建控制台应用程序和作为桌面服务运行的应用程序。

    而与此不同的VB,只能创建Windows窗体。

             

           

              二、VB.NET可以通过新的ADO.NET访问离线的数据源

        在访问数据库上,两者还是有比较大的区别的。在具体编程中,窗体FORM往往都包含数据库访问控件,VB6.0的是ADO控件,VB.NET的则是ADO.NET控件。那么ADO和ADO.NET区别又有什么区别呢?

       (1)、一些ADO中常见的类型比如RecordSet在ADO.NET中已经没有了,而且在ADO.NET中也新增了许多在传统ADO中找不到的直接对应的新类型(如数据适配器);

       (2)、传统的ADO主要针对紧密连接的客户端/服务器系统,而ADO.NET考虑到了断开式连接应用并且引进了DataSet,它代表任意数量的关联表每个表都包含了行和列的集合的本地副本,使用DataSet的话,在断开数据库连接的情况下调用程序集处理和更细它的内容,然后使用关联的数据适配器将修改后的数据提交回数据库

       (3)、传统的ADO和ADO.NET的一个显著区别是后者全面支持XML数据呈现。其实从数据库中获得的数据默认被序列化为XML,假设XMl通过标准的HTTP在层之间传输,ADO.NET就能突破防火墙的限制。

       (4)、两者之间最根本的区别在于ADO.NET是托管代码库。


         三、VB.NET具备了面向对象的所有特征,包括类、接口、封装、继承和多态性等;

      学习VB6.0时,用户可以象建立一个新的窗体一样建立一个新的类,并把它作为一个新的对象.但还只能称是半面向对象的编程语言。而VB.NET是真正意义上的完全面向对象的编程语言。VB.NET中,几乎处理所有事情都与对象有关,它也充分体现了面向对象的三个特征:封装、继承与多态。


         四、VB.NET支持结构化异常处理和多线程;

      关于错误处理,VB中使用On Error GoTo,而VB.NET则使用了Try...Catch...Finally区块来区别。

               (1)VB错误处理代码展示:

'截获错误
On Error GoTo Err1
 
'A为整型变量赋值40000会溢出
A = 40000  '这时会跳到Err1处执行错误处理
 
'给A重新赋值并消息提示A
A = 30000
MsgBox A

Exit Sub
 
'错误处理
Err1:
MsgBox"出错了!" & vbCrLf & "错误编号:" & Err.Number &" 错误描述:" & Err.Description
 
'返回出错语句的下一句继续执行余下的代码
Resume Next

             (2) VB.NET错误处理代码展示:

Try 
Dim i As Integer =0 
Dim iresult AsInteger 
 
iresult = 1 /i 
 
//把 ex 作为异常捕获 
MessageBox.Show(ex.ToString()) 
 
Finally 
MessageBox.Show("finally区块被执行") 
//Try结束


      在处理并发问题和多任务管理方面,VB6.0支持多个单线程单元,不过它并不支持一个自由线程的模型,多线程模式的工作原理和编程机制对于VB6.0来说完全不适用。而VB.NET通过使用了CLRCommon Language Runtime),从而拥有了许多新特性,其中一个就是创建自由线程的应用。它通过系统的System.Threading类直接创建多线程应用程序。


     五、VB.NET支持与其他.NET Framework语言的集成。

      .NET Framework中设计了一个通用语言系统(Common Language System,CLS),定义了很多标准的数据类型,.NETFramework支持的所有高级语言都必须同时支持该系统对数据类型的定义。

      在编译成MSIL代码的同时,各种高级语言自身的数据类型都被转换成了CLS系统中的标准数据类型,比如,VB.NET中定义的Integer数据类型被转换成了System.Int32数据类型,C#中的int类型也被转换成了System.Int32数据类型。这样不同语言的变量就可以相互交换信息了,这就是.NETFramework支持混合语言编程的基本原理。

     

     以上就是我暂时了解到的,关于VBVB.NET的区别之处,希望读者多多指点补充。

没有更多推荐了,返回首页