.NET平台构成的三个关键实体是:

1、CLR(公共语言运行库):为我们定位,加载,管理.NET类型,同时负责一些底层细节的工作,如内存管理,应用托管,处理线程,安全检查等,它包含了一个重要名为mscoree.dll(公共对象运行库的执行引擎)的库,当一个程序集引用一个程序集时,要使用它时,首先会加载该库,然后由它负责将需要的导入内存。该库负责很多事儿,如解析程序集的位置,读取其中包含的元数据,在二进制文件中发现所请求的类型。最后由CLR在内存中为类型布局,将相关的CIL编译成特定平台的指令。

2、CTS(公共类型系统):完整描述了运行库所支持的所有可能的数据类型和编程结构 ,指定了实体间如何交互,也规定了他们在.NET元数据格式中的表示

3、CLS(公共语言规范):是一个相关规范,定义了一个让所有NET语言都支持的公共类型和编程结构的子集

除了这三个关键的实体外,还有一个重要的BCL(基础类库):封装了各种基本类型,如线程,文件的操作,图形的绘制,以及与各种外部硬件设备的交互,还支持在实际应用中用到的一些服务。

C#它生成的代码只能在。NET运行库中执行,它称为托管代码(必须在NET运行库下执行的代码)。包含托管代码的二进制单元称为程序集。

IL和MSIL,CIL都是指中间语言。

C#编译先转化为中间语言,然后在通过JIT(及时编译器)转化为有意义的CPU指令。

程序集清单:NET程序集也包含了描述程序集自身的元数据(程序集清单),它记录了所有确保现有的程序集正常工作的外部程序集,程序集的版本号,版权信息等

最新文章

  1. Java程序员从笨鸟到菜鸟之(一百零一)sql注入攻击详解(二)sql注入过程详解
  2. PE556
  3. MYSQL添加新用户 MYSQL为用户创建数据库 MYSQL为新用户分配权限
  4. Hibernate的集合映射与sort、order-by属性
  5. dede文章摘要字数的设置方法
  6. 华为oj 统计字符串不同字符
  7. linux性能优化常用命令
  8. 扩展GridView实现无数据处理
  9. Training little cats poj3735
  10. vConsole--针对手机网页的前端 console 调试面板。
  11. php header设置页面编码
  12. 字符串转json以及获取域名的参数
  13. 利用WSUS部署更新程序
  14. 【SEERC2018A】【XSY3319】Numbers
  15. PowerDesigner设置一对一关系
  16. shell脚本使用技巧3--函数调用
  17. js复制文本内容到剪贴板
  18. java struts2入门学习---中文验证、对错误消息的分离、结果(result)类型细节配置
  19. 通过微信服务号推送Zabbix告警
  20. C# string字节数组转换

热门文章

  1. HDU 4292Food(网络流的最大流量)
  2. TreeMap cannot be cast to java.lang.Comparable
  3. 为代码减负之<二>存储过程(SQL)
  4. 深入了解Libgdx中间Skin分类
  5. NYNU_省赛选拔题(8)
  6. 写手Remoting测试工具
  7. linux_shell_类似sql的orderby 取最大值
  8. 两种计算和输出n内5要么9除尽互惠
  9. DES加密深度优化——随机生成加密字符串
  10. api接口对于客户端的身份认证方式以及安全措施