.NET平台一些概念

1.什么是CLR

CLR(Common Language Runtime)公共语言远行时,是一个可由多种编程语言使用的“远行时”。CLR的核心功能(比如内存管理、程序集加载、安全性、异常处理和线程同步)可由面向CLR的所有语言使用。CLR不关心开发人员使用哪种语言进行编程,只要编译器面向CLR就可以了,所有,开发人员应该使用自己最适合和熟悉的语言进行编程。所有的编程语言在面向CLR编译器的编译都生成了一个托管模块。托管模块是一个标准的32位的Microsoft Windows可移植执行体(PE32)文件,或者是一个标准的64位Windows可移植的PE32+文件,他们都需要CLR才能执行。

2.中间语言

MSIL(中间语言)代码 编译器编译源代码时生成的代码。在运行时,CLR将将IL编译成本地的CPU指令

3.元数据

元数据是一个二进制数据块,由几个表构成。这些表分为三个类别:定义表(definiton talbe)、引用表(reference table)和清单表(mainfest table)。

常用元数据定义表(编译器编译源代码时,代码定义的任何一样东西都会导致定义表中的表中创建一个记录项):

ModuleDef 总是包含一个用于标示模块的记录项。

TypeDef 模块中定义的每个类型都在这个定义表中有一个对应的记录项。

MethodDef 模块中定义的每个方法都在这个定义表中有一个对应的记录项。

FieldDef 模块中定义的每个字段都在这个定义表中有一个对应的记录项

ParamDef 模块中定义的每个参数都在这个定义表中有一个对应的记录项

PropertyDef 模块中定义的每个属性都在这个定义表中有一个对应的记录项

EventDef 模块中定义的每个事件都在这个定义表中有一个对应的记录项

常用的引用元数据表:

AssemblyRef 模块中引用的每个程序集在这个表中都有一个对应的记录项

ModuleRef 模块引用的每个类型可能是由别的PE模块实现的,所有那些模块在这个表都有一个记录项

TypeDef 模块引用的每个类型在这个表中都有一个对应的记录项

MemberRef 模块引用的每个成员都在这个表中有一个对应的记录项

清单元数据表:

AssemblyDef 如果该模块标示的是一个程序集,就在这个元数据表中包含单个记录项。该记录项列出了程序集名称(不含路径和扩展名)、版本(major,minor,build和revision)、语言文化(culture)、一些标志(flag)、哈希算法以及发布者的公钥。

FileDef 作为程序集一部分的每个PE文件和资源文件在这个表中都有一个对应的记录项。

MainifestResourceDef 作为程序集一部分的每个资源在这个表中都有一个对应的记录项

ExportedTypesDef 从程序集的所有PE模块中导出的每个public类型中在这个表中都有一个对应的记录项。

4.通用类型系统(Common Type System)

CTS定义了一个类型库,无论时Visual Basic.NET还是c#,他们的类型系统大体类似。因此.NET将各种不同的编程语言的数据类型进行抽象,就有了CTS。虽然每种编程语言都有自己的类型系统,但编译后都会转成CTS类型。不同的语言编写的程序直间可以相互操作。Vb的integer而C#的System.Int32都对应CTS的System.Int32类型。

CTS类型主要分成两大类:引用类型和值类型,这两个类型可以相互转换,方法是装箱和拆箱。CTS类型最终继承自Object。

5.公共语言规范(Common Language Specifiaction,CLS)

为了创建很容易从其他编程语言中访问的类型,只能从自己的编程语言中挑选其他所有语言都确定支持的那些功能,Microsoft定义了一个“公共语言规范”(Common Language Specifiaction,CLS),它详细定义了一个最小功能集。

时间: 2024-07-29 00:23:38

.NET平台一些概念的相关文章

足彩基础知识入门(4)赛事数据库与预测平台基础概念介绍(一)

在足球赛事数据库以及统计分析预测平台中,有很多概念,如果不搞懂,很难进行下一步的工作.所以为了配合团队人员的学习和任务进行,特意编写这篇文章.如果有其他问题和不懂的,请留言,将根据情况进行更新. 本文原文地址:足彩基础知识入门(4)赛事数据库与预测平台基础概念介绍(一) 1.指数1/2/3.... 我在 足彩基础知识入门(3)足彩赔率的本质 一文中介绍了赔率的概念,那么指数的概念和赔率以及结果是相关的.我们举个例子: 如上图的比赛,前面是竞彩非让球的赔率:1.74-3.25-4.15,也就是说

Android平台安全概念篇

一.安全主要用于解决4类需求 1.保密(Security/Confidentiality)信息不泄露给第三方 2.鉴别/认证(Authentication)能够知道与你通信的对方是谁 3.完整性(Integrity) 信息传输存储的过程中保存完整性(不被修改.不被破坏.不被插入.不延迟.不乱序.不丢失) 4.不可否认性(non-repudiation) 轻松知道该消息是有那个用户生成.签发和接受的. 二.密码算法的本质 算法与密钥的分离 三.对称加密 (一)基本概念 密钥:分为加密密钥和解密密钥

企业信息门户平台整体解决方案研究(概述与案例分享)

前言:企业信息门户平台就是指在Internet的环境下,把各种应用系统.数据资源和互联网资源统一集成到企业信息门户之下,根据每个用户使用特点和角色的不同,形成个性化的应用界面,并通过对事件和消息的处理传输把用户有机地联系在一起. 企业信息门户平台的概念定义 Enterprise Information Portal 企业信息门户平台是专门应用于企业的互联网应用概念.企业信息门户平台是因电子商务的发展而兴起的,越来越多的企业正在考虑或建设不同程度的企业信息门户平台来进一步提升企业的核心竞争力. 企

[转]数据中心网络虚拟化 主流平台产品介绍

http://www.sdnlab.com/12076.html SDNLAB 为了对数据中心网络虚拟化有个初步的认识,本文将对当前比较主流的几款商业平台进行介绍,包括VMware公司的网络虚拟化技术,IBM公司的Dove及开源的OpenDove平台, NEC公司的virtual-network-platform和VTN平台,以及Cisco公司的Nexus虚拟化平台. 1.Vmware公司的网络虚拟化技术 VMware在虚拟化领域的领导地位使得我们必须首先介绍一下他们的网络虚拟化技术NSX.然而

多应用统一开发平台的一点想法

几年工作下来,发现有一个问题一直困扰着我们: 随着项目的越来越完善,功能越来越丰富,单一一个应用已经不能够支撑开发人员的需要.于是我们就需要根据业务分拆成几个相对独立的应用来满足多个开发团队的需求.但是这样也造成了一些问题,多个应用需要公用的基础代码维护起来越来越复杂,导致种种问题.也有很多种方式来解决,比如公共代码放置单独的地方,这样有带来的自动化部署方面的困难.在此,鄙人提出一种解决方法,即多应用统一开发平台的概念.在此以rails应用为例. 标准的rails应用结构如下: Gemfile

java设计模式、框架、架构、平台之间的关系

    设计模式<框架<架构<平台,从复用角度讲,设计模式是代码级复用.框架是模块级复用.架构是系统级复用.平台是企业应用级复用. 1.设计模式 为什么要先说设计模式?因为设计模式在这些概念中是最基本的,而且也比较简单.那么什么是设计模式呢?说的直白点,设计模式就是告诉你针对特定问题如何组织类.对象和接口之间的关系,是前人总结的经验.比如我要在代码中实现一个全局唯一的配置类,那么就使用Singleton模式.设计模式在实际编码工作和设计框架时会被使用到,而更高层的架构和平台则不会太关注它

高可用数据采集平台(如何玩转3门语言php+.net+aauto)

同类文章:高并发数据采集的架构应用(Redis的应用) 吐槽下:本人主程是PHP,团队里面也没有精通.net的人才,为了解决这个平台方案,还是费了一部分劲. 新年了,希望有个新的开始.技术+团队管理都有新的突破吧,在新的一年对自己好些,不能再继续搞基下去. 问题出发点: ´随着软件的日益强大,用户的使用需求越来越多,用户也希望众多数据进行整合,来达到资源的合理应用. ´有些数据资源需要抓取网页的形式来采集到数据. ´采集应用不统一,没有良好的管理程序,杂乱无章. ´采集应用经常性无响应,无相应的

设计模式&lt;框架&lt;架构&lt;平台

设计模式<框架<架构<平台,从复用角度讲,设计模式是代码级复用.框架是模块级复用.架构是系统级复用.平台是企业应用级复用. 1.设计模式 为什么要先说设计模式?因为设计模式在这些概念中是最基本的,而且也比较简单.那么什么是设计模式呢?说的直白点,设计模式就是告诉你针对特定问题如何组织类.对象和接口之间的关系,是前人总结的经验.比如我要在代码中实现一个全局唯一的配置类,那么就使用Singleton模式.设计模式在实际编码工作和设计框架时会被使用到,而更高层的架构和平台则不会太关注它. 2.

BL平台的价值在于什么?

企业花了那么多钱买了BL平台,但是究竟BL平台能给我们带来什么价值? BL平台在本质上是一个概念的引入,结合先进的管理思想,以软件产品为载体,融入企业业务行为和特征,从而形成其在企业内部独特的价值体系,最后通过量化手段,在财务和管理绩效指标上通过数字形式来反映. 为什么说BL平台是概念的引入?BL平台涵盖了从供应链.生产制造.内部管理和过程控制.销售和客户关系管理等一系列企业业务范畴和行为概念.所以企业引入BL平台就是遵从一种概念,一种更为优化的方式方法,来帮助企业实现精细化管理. BL平台不仅