首页 > 编程 > .NET > 正文

全面剖析VB.NET(5)

2024-07-10 13:05:18
字体:
来源:转载
供稿:网友
五、公共运行时环境
    迄今为止,业界对vb.net讨论得最多的特色或许就是clr。vb.net运行在clr之上,正是clr为vb.net带来了许多关键的新特色(包括缺点在内)。例如,clr使得vb.net支持跨语言的继承以及自由线程。
  
    在vb6中,分布式vb程序要求有vb运行时库msvbvm60.dll支持,即该运行时库必须随同应用一起分发。其他许多语言,比如c++和java,也有类似的要求。在.net中,所有visual studio语言共享同样的运行时环境clr。改用clr带来了几个重要的结果:现在所有visual studio语言都共用同样的ide、同样的窗体引擎、同样的异常处理机制,等等。它意味着visual basic在很大程度上已经可以和.net的其他语言相提并论,如c#等。然而,对于clr的异议仍旧存在,vb业界仍在激励地争辩它地价值。
  
    不管应用是用vb、c#还是其他.net语言编写,所有vs.net代码都是编译成中间语言(intermediate language,il)。当应用运行时,一个实时编译器(just-in-time compiler,或称为jit)就把il代码编译成机器语言。在理论上,它意味着为非windows的平台构造.net运行环境是可能的,但目前还没有出现有关这类系统的正式消息。il有一个缺点:正如vb在5.0以前的版本,il代码对于类似的反向编译工程很敏感。由于存在这种可能性,许多开发者对于.net框架的整体安全性抱有怀疑。
  
    对clr进行优化影响il层次上的代码,它使得所有使用clr的语言受益。然而,对于特定语言的优化涉及到如何把代码编译成il代码,它根据特定语言的语法进行。因此,.net各种语言之间存在一定的性能差异是必然的。但不管如何,从整体上来看这仍旧是好事,例如clr为vb带来了和c#一样的调试和分析工具——之所以能够如此,是因为它们都使用一样的工具。
  
    clr提供了前所未有的跨语言集成能力,其中包括跨语言继承代码的能力。所有使用clr的语言都使用一个公共类型系统(common type system),它使得开发那些运用多种语言的应用变得更为容易。
  
    在clr之内运行的代码称为“受管理的代码”(managed code),受管理代码所使用的内存由clr全面控制。受管理的代码有着许多优点,包括交叉语言集成、跨语言异常控制以及一个组件交互的简化模型。visual basic.net只能以受管理代码方式运行,与此相对应,c#却具有将代码转入非受管理方式运行的能力(运行在clr之外),比如执行指针处理之类的操作。这是vb.net不能与c#相提并论的地方之一。然而,这种能力的是否重要,对于不同的人、不同的用途来说都有所不同。
  • 网站运营seo文章大全
  • 提供全面的站长运营经验及seo技术!
  • 发表评论 共有条评论
    用户名: 密码:
    验证码: 匿名发表