博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
.NET框架
阅读量:1869 次
发布时间:2019-04-26

本文共 1231 字,大约阅读时间需要 4 分钟。

.NET 框架

什么是.NET 框架?.NET 框架都包含了哪些内容?大家应该都见过 CIL、BCL、FCL、CTS、CLS、CLR、CLI等术语,可是这些都是什么意思呢?

.NET框架对编程所提供的支持,可以分为三个部分:

  • 开发阶段,.NET提供了一个庞大的类库,支持开发者快速开发各种应用程序,也支持设计者自行开发语言编译器。
  • 程序执行阶段,.NET提供了一个程序运行时的环境,这个运行环境帮助我们管理内存、实时编译程序、进行安全检查、执行垃圾回收等。
  • 编译完成后,符合.NET规范的语言也叫面向.NET的语言,用这些语言编译完成后生成的文件和内容,都可以在.NET运行环境下执行,这就是.NET的语言支持。

  CIL(公共中间语言):如同它的名字一样,它只是一种语言。是经过编译之后形成的一种介于高级语言和机器语言之间的一种语言,只要是在.NET平台下运行的高级语言经过编译之后所生成的程序集都是由CIL语言描述的,它经过二次编译才能在机器上运行。

  BCL(基类库):mscorlib.dll程序集所包含的类库,提供了一些基本类型来支持开发者编写程序。
  FCL(框架类库):主要分为三层:①BCL的大部分,主要是对.NET框架、.NET运行时的支持 ②包含了对操作系统的封装,例如文件系统、网络连接、XML操作等 ③包含各种类型的应用程序,例如windows forms、ASP.NET、WPF、WCF、WF等。
  CTS(公共类型系统):对CIL的定义、规则或标准,这套规则定义了语言可以做什么,不可以做什么,有哪些特性,这套规则就叫作CTS,任何满足这套规则的高级语言就可以称为面向.NET的语言。CTS规定了可以在语言中定义的类型、规范了类型可以包含字段属性等、还规定了各种访问修饰符以及一些约束(比如:c#只能继承一个类)。但是符合CTS规范的语言不一定要实现它定义的全部功能,c#就只是实现了CTS的部分功能。
  CLS(公共语言规范):定义了一些常见的、大多数语言都共有的语言特性,以使得各个语言的程序集可以相互引用,比如 c# 引用 VB.NET 的程序集,这个规范就叫作CLS。CLS是CTS的一个子集,而显然FCL框架类库都符合CLS,有极个别不符合,这样所有面向.NET的语言都可以使用框架类库。

这里写图片描述
  CLR(公共语言运行时):CIL的代码不能被直接运行,还需要CLR的支持。概括来说,CLR是一个软件层或代理,管理了程序集的执行,主要包括:管理应用程序域、加载和运行程序集、安全检查、将CIL代码编译成机器语言、异常处理、对象析构和垃圾回收等。这样保证了.NET程序集可以运行在任何系统上,只要这个系统装有.NET框架就可以。
  CLI(公共语言基础):是一个国际标准,只是一个概念和总和,CLI包括:CIL、CTS、CLS、VES、基础框架等。而.NET框架就是这个标准的具体实现,从而.NET框架才包含了上述内容。

你可能感兴趣的文章
2021年6月全国程序员薪资出炉,大佬您上榜了吗?
查看>>
零基础自学Python,你也可以实现经济独立!
查看>>
ElasticSearch与Mysql对比(ElasticSearch常用方法大全,持续更新)
查看>>
数字化转型的主干道上,华为云以“三大关键”成企业智能化推手
查看>>
数字化为何不走“捷”“径”?
查看>>
和总裁、专家交朋友,华为云助推政企智能化升级又做到前面去了
查看>>
BCOP章鱼船长,6月22日晚上8点上线薄饼
查看>>
为战疫助力,半导体功不可没
查看>>
了解这些操作,Python中99%的文件操作都将变得游刃有余!
查看>>
知道如何操作还不够!深入了解4大热门机器学习算法
查看>>
只有经历过,才能深刻理解的9个编程道理
查看>>
发现超能力:这些数据科学技能助你更高效专业
查看>>
AI当道,人工智能将如何改变金融业?
查看>>
消除性别成见,技术领域需要更多“乘风破浪的姐姐”
查看>>
7行代码击败整个金融业,这对20多岁的爱尔兰兄弟是如何做到的?
查看>>
2020十大编程博客:私藏的宝藏编程语言博客大放送!
查看>>
编程中的角色选择:哪类工作角色最适合你?
查看>>
10种算法一文打尽!基本图表算法的视觉化阐释
查看>>
未来属于人工智能工程师,但成功转型不容易
查看>>
科技界“挠头”:困扰科技界可持续发展的难题
查看>>