浅谈VB.NET语言与.NET开发语言关系

开发 后端
这里介绍VB.NET语言与.NET开发语言关系,将核心VB语言建造到.NET框架的方式同C#一样,主要的区别是微软为VB的开发者将两个附加的库增加到.NET中。

VB.NET还是比较常用的,于是我研究了一下VB.NET语言与.NET开发语言关系,在这里拿出来和大家分享一下,希望对大家有用。

VB.NET语言与.NET开发语言关系

我工作过的许多公司在选择VB.NET作为他们的核心开发工具时都经历了一个长时间的抉择,他们所关心的最主要的问题之一是如果他们不使用C#语言就不能开发出纯.NET框架代码。主要有两个原因使他们得出这样的结论:首先,由于VB(6.0或早期版本)运行时的限制,VB在开发COM构件的能力方面不如C语言功能强大,他们关心这些限制是否在.NET中依旧存在;再者,由于微软提倡将C#作为在.NET平台上的主要开发工具,很多VB开发者怀疑微软是否已经在VB.NET改进了VB先前版本的功能。

有个客户曾经跟我提起过这个问题,还特意请求我帮助他的公司在不依赖VB6中的任何功能时如何使用VB.NET语言作为纯.NET开发语言。当我问他为什么他认为VB.NET语言不是纯.NET开发语言时,他告诉我他最近将一个项目从VB6升级到VB.NET时,他在VB.NET中看到有很多象Imports Microsoft.VisualBasic和Imports Microsoft.VisualBasic.Compatibilit的输入语句,这些语句表明了VB.NET依旧在使用早期VB版本的一些功能;他说 “如果VB.NET是.NET环境中一流的开发语言,为什幺还要用到早先VB版本中的功能呢?”。为了回答他的这个问题,并且给VB.NET的开发者提供一个如何使用这些包的建议,我将在此文章中解释为什么微软还在.NET平台中实现VB早期版本的中的一些功能的原因。
VB中的核心动态链接库(DLL)

将核心VB语言建造到.NET框架的方式同C#一样,主要的区别是微软为VB的开发者将两个附加的库增加到.NET中。首先,Microsoft.VisualBasic是.NET中可重新分发包的一个重要组成部分,它是VB早期版本的功能在.NET中的一个实现,同时两者也有一些细微的差别。实际上,有些VB函数(尤其是类型转换部分的函数)比.NET的通用语言运行时(CLR)所提供的对象有着更好的性能。例如,使用 CInt()就比使用Convert对象要好;另外,有些VB函数替你做了一些额外的工作,例如,函数CStr()在转换字符串时也自动进行了区域性方面的处理,如果你用Convert对象就必须自己做这些额外的工作。

同时.NET中的库也提供了VB开发者原来经常使用的一些通用环境常量,例如,vbCrLf回车换行符。其实如果你不想使用原来的老式常量,你能使用System.Environment.Newline方法或 System.Convert.ToChar(13)&System.Convert.ToChar(10)来得到同样的常量。象vbCrLf这样的常量引用在.NET中直接被映像到框架底层的调用,所以在性能方面应该没有什么影响。像上面这种情况,编译器将它优化成单个字符串,如果它是一个变量,它就直接被映像到rn,将它翻译成一个回车换行符。VB早期版本的函数也直接被映像到.NET框架底层的调用,象msgbox语句直接映像成.NET 框架中的MessageBox,这种情况由于两者编译完了以后生成的中间语言(IL)基本上是相

【编辑推荐】

  1. 讨论VB.NET简单数据类型
  2. 概括VB.NET获取网卡地址的步骤
  3. VB.NET字符串数组全面分析
  4. 浅谈VB.NET使用FileVersionInfo类
  5. 详谈VB自定义类型参数的传递
责任编辑:佚名 来源: 比特网
相关推荐

2009-10-23 12:53:25

VB.NET语言

2009-10-28 17:44:31

VB.NET语言

2009-10-14 12:51:41

VB.NET Data

2010-01-18 18:14:37

VB.NET语言特点

2009-10-20 09:39:04

VB.NET Butt

2009-10-28 10:31:23

VB.NET Impl

2009-10-19 09:16:08

VB.NET语言

2009-10-30 14:21:00

VB.NET开发语言

2009-10-13 11:22:46

VB.NET调用Web

2009-10-12 13:32:58

VB.NET线程构造器

2009-10-16 10:14:26

VB.NET使用Fil

2009-10-19 10:23:32

VB.NET语言

2009-11-02 17:24:57

VB.NET语言

2009-10-29 16:46:32

VB.NET语言

2009-08-28 15:35:31

C#与VB.net

2010-01-22 15:56:03

VB.NET获取当前U

2010-01-13 14:26:39

VB.NET开发

2009-07-28 17:03:55

ASP.NET VB.

2010-01-21 17:23:05

VB.NET Radi

2009-10-27 13:34:32

VB.NET WEB服
点赞
收藏

51CTO技术栈公众号