Visual Basic .Net是微软公司在2002年推出的一种开发基于.Net平台应用程序的开发语言,也是微软公司极力推荐的一种开发.Net平台应用程序的开发语言。首先还是让我们来简单了解一下Visual Basic .Net和其前一个版本,也是目前世界上拥有最多使用者的开发语言--Visual Basic 6.0的主要区别。
一. Visual Basic和Visual Basic .Net的主要区别
虽然说Visual Basic .Net是Visual Basic 6.0的后继版本,但在我看来Visual Basic .Net除了在语法上还保留Visual Basic原有的踪影以外,因为二者几乎在90%以上保持相似或相同。但在其他很多方面,Visual Basic .Net都和Visual Basic截然不同。也许正是这些不同点,才使得Visual Basic .Net功能更强大,更有生命力,但同样也为Visual Basic程序员转型为为Visual Basic .Net程序员带来了困难。因为Visual Basic .Net提出了很多新的功能、概念和观点,掌握Visual Basic .Net不仅要掌握语法,还需要理解并运用这些新的功能、概念和观点。当然也需要掌握.Net框架,理解CLR(Common Language Runtime,通用语言进行时)。下面就从数据访问、Web开发和组件创建三个方面来简要谈谈二者的区别:
1. 数据访问
不同点主要表现在:数据访问技术、数据访问具体实现方法和数据绑定上的不同。
在数据访问技术上,Visual Basic 6.0是通过ADO(Active X Data Object,即:Active X数据对象)来实现对数据库访问的。同时为了保证对早期版本的兼容,也提供RDO(远程数据对象)和DAO(数据访问对象)二种数据访问技术。在Visual Basic .Net中是使用ADO.NET来访问数据库,ADO.NET是.NET框架的一部分,其对应的类库是.Net FramWork SDK的真子集。ADO和ADO.NET这两种技术在概念、功能和实现上都有许多差异。由于篇幅所限,这里就不一一介绍了。其实在Visual Basic .Net中也可以使用ADO来访问数据库,但ADO在Visual Basic .Net中是以COM组件的形式出现的,通过添加引用才可以在Visual Basic .Net中使用。添加引用的过程,其实就是对COM组件互操作。经过互操作后的COM组件,已经并非先前意义上的COM组件,而是转变成可供Visual Basic .Net直接使用的.Net类库。
在数据访问的具体实现方法上,Visual Basic 6.0实现数据访问主要是两种方法:其一是在程序设计阶段,可通过把数据源绑定到ADODC控件或使用数据环境;其二在运行时,可以通过编程方式创建记录集RecordSet对象并与记录集对象交换数据。同样在Visual Basic .Net中实现数据访问的方法主要也是二种:其一是在程序设计阶段,通过创建、配置数据适配器DataAdapter和生成数据集DataSet;其二在运行中,通过编程方式动态创建、配置数据适配器和创建、生成数据集。
在数据绑定(Data Bind)上,在Visual Basic 6.0中实现数据绑定通过设置控件的下列属性来实现:DataChanged、DataField、DataFormat、DataMember 和 DataSource。通常是把控件的显示属性绑定到数据源中的相应字段。在Visual Basic .Net中,数据绑定的应用范围可广泛得多,Visual Basic .Net中可以将任何控件的任何属性绑定到包含数据的任何结构中。
2. Web开发
Visual Basic是使用Active Server Page(简称ASP)来创建在 Web应用程序。在ASP中,编写Web页面并非纯正的Visual Basic语言,而是Visual Basic脚本语言--VBScript。在Visual Basic .Net中是使用ASP.NET技术来编写Web页面。在ASP.NET中使用的也不再是脚本语言,而是真正意义编程语言,其中就可以是Visual Basic .Net。开发过ASP页面的朋友都清楚,虽然编写ASP页面对开发工具要求很低,但由于其是面向过程式开发,所以稍微复杂一点的ASP代码都显得杂乱无章,这都给程序设计、调试、修改带来了麻烦。而Visual Basic .Net是建立在新的框架结构上,Visual Basic .Net完全支持Web编程。凭借ASP.NET的Web 应用程序、XML Web services等等基于Web上的功能,使得Visual Basic .Net开发Web 页面与开发Windows编程很相似,Web页面代码也不显得有条有理了。
3. 组件创建
在使用Visual Basic 6.0和Visual Basic .Net编写应用程序时,虽然都可以通过从工具箱中选择组件,通过拖入方式在应用程序中加入组件,但二者在实现机理上却存在根本不同。在Visual Basic 6.0中,应用程序中创建的组件全部是COM组件,即可在COM应用程序中使用的ActiveX控件、ActiveX 类型的DLL 和 ActiveX类型的EXE。而在Visual Basic .Net中,向窗体中拖入的组件,都是基于继承,从.Net框架提供的SDK中相应的类继承,经过实例化后,通过添加功能才把组件加入到设计窗体中。这些过程都可以在Visual Basic .Net的源代码中找到。Visual Basic .Net中使用的每一个组件都是从Component或Control基类派生出来的。
当然Visual Basic和Visual Basic .Net之间还存在很多差别,如:Visual Basic 6.0 只提供单线程模式,并不支持多线程。而在Visual Basic .Net全面支持多线程。并且在Visual Basic .Net中还增加了结构化异常处理等新的功能。所以对于那些Visual Basic的程序员,从Visual Basic程序员转型到Visual Basic .Net就有极强的必要性,下面就简要介绍一下这种必要性。
二.从Visual Basic转型到Visual Basic .Net的必然和必要性
虽然Visual Basic得到了很多人的认可,也有许多配套产品都提供了Visual Basic的接口。但随之时间的延续,其缺点也逐渐暴露了,有些甚至是无法"容忍"的。首先作为一种解释性的语言,不仅程序执行速度慢,并且在分发应用程序时,还需要带上解释库;其次Visual Basic并非完全的面向对象的开发语言,从根本上说,它应该是一种面向过程的开发语言。
而Visual Basic .Net做为下一代的Visual Basic语言,它是一种为开发.Net平台应用程序而度身定做的程序语言。因为Visual Basic .Net中完全集成了.Net FrameWork(.Net框架)和CLR(Common Language Runtime,即:公共语言运行时)。同时.Net 框架和公共语言运行时又共同提供Visual Basic .Net语言互操作性、垃圾资源回收、可靠安全性和版本改进的支持。通过Visual Basic .Net能够简便、快捷地创建.Net平台应用程序、XML Web services 和 ASP.NET Web 应用程序。Visual Basic .Net做为开发.Net平台的程序语言,那它就为开发现跨平台程序创造了可能。因为我们知道,微软推出.Net,其目的之一就是实现跨平台。虽然目前微软只提供了在Windows平台上运行的.Net框架,还无法实现真正意义上的跨平台,但随着MONO的出现(虽然它还存在很多问题,并且目前的MONO只为C#提供支持),但可以预见的是在不久的将来,Visual Basic .Net实现Write Once And Run AnyWhere的时间不会太久。
Visual Basic .Net是一种编译性的语言,但这种编译和以前接触的编译有所区别。因为经过Visual Basic .Net编译器编译后得到文件并不是可以在计算机直接运行的二进制文件。它的性质是一种IL文件(中间语言文件)。在运行IL文件时,首先是通过CLR下的JIT(即时编译器),把这种IL文件再编译成二进制文件。我们看到的程序运行,其实是经过JIT编译后的二进制文件在执行。这时可能有很多朋友会问,这种二次编译是否多此一举,具体实现中是否很麻烦,是否会影响程序的运行速度?二次编译的确是影响了程序运行的速度,但它却为实现跨平台带来了可能。其实这种编译过程犹如Java中的JVM(Java虚拟机)。正是JVM才使得Java能够开发出跨平台的应用程序。二次编译是CLR在.Net框架下自动实现IL文件到二进制文件转变的,它是一种自动完成的,并不需要人员的参与,所以它并不会给程序执行带来麻烦。
| 共4页: 1 [2] [3] [4] 下一页 | ||
|
|
|||
| · 51CTO主编推荐经典专题 · RAID——磁盘阵列基础 · 充电计划之热门IT认证.. · 51CTO技术自测 挑战自.. · CISSP认证成长之路 · AMD Phenom三核处理器.. · 国际文档格式标准开战 · 2007年互联网大会 |
· 我是黑客我怕谁——讲.. · ARP攻击防范与解决方案 · Solaris 10 配置管理 · Solaris基础知识入门 · RIP路由协议专栏 · MPLS路由协议专栏 · OSPF路由协议专栏 · 思科路由器产品 |
||
|
|||
| · Java基础教程 · VPN技术 · ARP攻击防范与解决方案 · SQL Server 2005全解 · SOA 面向服务架构 · SQL Server 2005全解 · Java编程开发手册 · RAID——磁盘阵列基础 |
· 三层交换技术专题 · SQL Server入门到精通 · Windows Server 2003企.. · Windows远程桌面应用 · C#技术开发指南 · VPN技术 · Solaris 10 配置管理 · C#技术开发指南 |
||
|
|||
| · ARP攻击防范与解决方案 · VPN技术 · SQL Server 2005全解 · Java基础教程 · SQL Server入门到精通 · SQL Server 2005全解 · SOA 面向服务架构 · Java编程开发手册 |
· C#技术开发指南 · 三层交换技术专题 · C#技术开发指南 · Windows远程桌面应用 · RAID——磁盘阵列基础 · Windows Server 2003企.. · 邮件服务器专题 · wimax技术与趋势 |
||
| ·DB2 Viper快速入门 ·DB2 9数据库的镜像分割与.. |
·将XML应用程序从DB2 8.x.. ·DB2 9中的pureXML:如何.. |
| ·服务器中的“傻瓜机”在.. ·盖茨也喜欢登录Youtube看.. |
· · |
| ·拯救系统管理员 ·美国选民:我为什么选布什 |
·VMware公司中文命名挑战赛 ·我们真缺乏创新吗? |
| ·J0ker的CISSP之路:复习-.. ·J0ker的CISSP之路:复习-I.. |
·9月第3周安全回顾 内网安.. ·教你几招识别和防御Web网.. |
| · NGN:下一代网络 · 网络访问中断大排查 · FTTx光纤接入 |
· 教你使用Anti ARP Sniff.. · 网络嗅探教程:使用Snif.. · 常见病毒手工清除方法大.. |
| · C++是垃圾语言?! · 2007年IT界七大抄袭事件 · Java实用开发全集 |
· 解析Ajax开发框架 走进A.. · 基于Google Maps与Ajax.. · 基于Google Maps与Ajax.. |
| · 热门 IT 培训认证官方资.. · Ubuntu 中文开源频道 · Solaris基础知识入门 |
· 费力不讨好 数据中心主.. · AMD Phenom三核处理器解.. · 51CTO主编推荐经典专题 |
| · 甲骨文Oracle 11g正式发.. · Oracle数据库开发之PL/S.. · Oracle数据库开发基础教.. |
· 存储2006,一个并购的大.. · IDC宣布浪潮蝉联存储市.. · 双机热备技术 |