dotnet的4个基本概念

本文介绍了虚拟对象系统(VOS)及其组成部分元数据的功能,公共语言规范(CLS)的作用及虚拟执行系统(VES)的主要职责,涵盖了类型管理和内存管理等关键概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、虚拟对象系统---VOS

它既支持过程性语言也支持面向对象的语言,同时提供一个类型丰富的系统来容纳它所支持的各种语言的特性。对于过程性语言,它描述了值的类型并指定了类型的所有值必须遵守的规则;在面向对象的语言方面,它统一了不同编程语言的对象模型。每一个对象在VOS中都被唯一标识以与其他对象相区别。

2、元数据

元数据是对VOS中类型描述代码的一种称呼。在编译程序将源代码转换成为中间代码时,它将自动生成,并与编译后的源代码共同包含在二进制代码文件中。元数据携带了源代码中类型信息的描述,这在一定程度上解决了版本问题;程序使用的类型描述与其自身绑定在一起。在CLR定位与装载类型时,系统通过读取并解析元数据来获得应用程序中的类型信息,JIT编译器获得加载的类型信息后,将中间语言代码翻译成为本地代码,在此基础上根据程序或用户要求建立类型的实例。由于整个过程中,CLR始终根据元数据建立并管理对应特定应用程序的类型,从而保证了类型的安全性。

此外,元数据在解决方法的调用,建立运行期上下文界限等方面都有着自己的作用。而关于元数据的一切都由.net在后台完成。

3、公共语言规范----CLS

CLS是CLR定义的语言特性集合,主要用来解决互操作问题。如果一个类库遵守CLS,那么同样遵守CLS规范的其他变成语言将能够使用它的外部可见项。所有支持CLS并仅使用CLS中的语言特征的组件被称为CLS组件。

在CLS中是用System.CLSCompliantAttribute类来标识一个集合或者类是否是符合CLS规范的;在System.CLSCompliantAttriute的构造器中有一个Boolean型的返回值,代表了与之相关联的项是否符合CLS规范。

4、虚拟执行系统----VES

VES是VOS的实现,它用来驱动运行环境。元数据的生成与使用、公用语言规范的满足性检查以及

应用程序执行过程中的内存管理均由它来完成。具体来说,VES主要完成以下功能:

(1)装入中间代码。

(2)使用JIT将中间代码转换为本地码。

(3)装入元数据。

(4)代码管理服务---包括垃圾收集器和异常处理。

(5)定制与调试服务。

(6)线程和环境管理。

 
.NET 4 dotnet4 Friday, December 08, 2017 .Net4.0°²×°¼ì²â function isDotNet_Installed() -- .Net 4 Reg Key local DotNet_Key = "SOFTWARE\\Microsoft\\NET Framework Setup\\NDP\\v4\\Full"; --Check to see if the registry key exists local DotNet_Registry = Registry.DoesKeyExist(HKEY_LOCAL_MACHINE, DotNet_Key); if (DotNet_Registry == false) then -- The registry key does not exist -- Run the .NET Installation script -- Output to the log file that .NET could not be found, so it will be installed. SetupData.WriteToLogFile("Info\t.NET 4 Module: No version of .NET 4 was found. .NET 4 will be installed.\r\n", true); return false; else -- The key does exist -- Get the .NET install success value from the registry local DotNet_Install_Success = Registry.GetValue(HKEY_LOCAL_MACHINE, DotNet_Key, "Install", true); if (DotNet_Install_Success == "1") then -- Check the version key. local DotNet_Install_Version = Registry.GetValue(HKEY_LOCAL_MACHINE, DotNet_Key, "Version", true); -- Compare the returned value against the needed value Compare = String.CompareFileVersions(DotNet_Install_Version, "4.0.30319"); if (Compare == 0 or Compare == 1) then -- .NET version 4 is installed already SetupData.WriteToLogFile("Info\t.NET 4 Module: .NET version 4 is installed already\r\n", true); return true; else SetupData.WriteToLogFile("Info\t.NET 4 Module: A lesser version of .NET 4 was found on the users system.\r\n", true); return false; end else -- The success value wasn't found -- Run the .NET Installation script -- Output to the log file that .NET could not be found, so it will be installed. SetupData.WriteToLogFile("Info\t.NET 4 Module: No version of .NET 4 was found. .NET 4 will be installed.\r\n", true); return f
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值