全面剖析VB.NET(5)

2016-01-29 12:06 10 1 收藏

全面剖析VB.NET(5),全面剖析VB.NET(5)

【 tulaoshi.com - vb 】

五、公共运行时环境
迄今为止,业界对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业界仍在激励地争辩它地价值。

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/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#一样的调试和分析工具——之所以能够如此,是因为它们都使用一样的工具。

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/vb/)

CLR提供了前所未有的跨语言集成能力,其中包括跨语言继承代码的能力。所有使用CLR的语言都使用一个公共类型系统(Common Type System),它使得开发那些运用多种语言的应用变得更为容易。

在CLR之内运行的代码称为“受管理的代码”(Managed Code),受管理代码所使用的内存由CLR全面控制。受管理的代码有着许多优点,包括交叉语言集成、跨语言异常控制以及一个组件交互的简化模型。Visual Basic.NET只能以受管理代码方式运行,与此相对应,C#却具有将代码转入非受管理方式运行的能力(运行在CLR之外),比如执行指针处理之类的操作。这是VB.NET不能与C#相提并论的地方之一。然而,这种能力的是否重要,对于不同的人、不同的用途来说都有所不同。

来源:https://www.tulaoshi.com/n/20160129/1484668.html

延伸阅读
标签: vb
概述:这篇文章为计划将他们的应用程序更新到Visual Basic.NET的微软Visual Basic 开发用户提供一些关于XML的建议。主要包括Visual Basic 6和Visual Basic.NET对XML操作的不同之处,以及Visual Basic.NET关于这方面新增工具的应用。 概述:这篇文章为计划将他们的应用程序更新到Visual Basic.NET的微软Visual Basic 开发用户提供一些关于...
今天看到能够进行 C# to VB.Net 代码转换的网址: 发现并不能很完美的转换成VB.Net,毕竟C#的有些特定代码VB.Net是没有的. 不过可以用来学习,也不错! #1: http://www.aspalliance.com/aldotnet/examples/translate.aspx #2: http://www.kamalpatel.net/ConvertCSharp2VB.aspx
Private Sub Form1_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing If MsgBox("請注意看關閉的視窗", MsgBoxStyle.Question + MsgBoxStyle.OKCancel, "關閉") = MsgBoxResult.OK Then Dim d As Double For d = 1 To 0 + 0.2 Step -0.2 System.Threading.Thread.Sleep(50) Applic...
标签: vb
(1).视窗2000服务器版 (2). .Net FrameWork SDK Beta 2 二.初步认识注册表: 首先我们来了解一下注册表的组成。在注册表中,子树是主要节点,包括健、子健和值。健就是打开"注册表编辑器"后,出现在"注册表编辑器"左窗格中的文件夹,健可以包含子健和值健。子健就是健中的健,在注册表中,子健属于树和健。值健...
----------VB.NET 导出数据到EXCEL中------------- 在引用当中引入Microsoft Excel 11.0 Object Library Dim oExcel As New Excel.ApplicationDim obook As Excel.WorkbookDim oSheet As Excel.WorksheetDim DataArray(2000, 2000) As Integerobook = oExcel.Workbooks.Open("c:\1.xls")oSheet = obook.Worksheets(1)...

经验教程

304

收藏

96
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部