什么是.NET Framwork

C# 是一种编程语言,用于实现与计算机完成对话,C#编写的程序是需要编译和运行的,.Net Framwork就是程序运行需要的环境

.Net框架主要提供的服务:丰富的类库,内存机制,通用类型系统,开发结构和技术,互操作性

.Net框架的组成部分:公共语言运行时(common language runtime)CLR和.Net Framwork类库(Framwork Class library)FCL

CRL公共语言运行时:作为.Net Framwork 的核心基础,我们可以把它看做在执行时管理代码的代理,他提供了内存管理,线程管理和异常处理等服务,而且负责对代码类型实施严格的安全检查,保证了代码的正确性。我们把受CRL管理的代码称为托管代码。将不受CLR管理的代码成为非托管代码。

CRL包含2个组成部分:通用类型系统(common type system, CTS)和公共语言规范(common language specification, CLS)

CTS用于解决不同语言之间数据类型不同的问题,如C#中整形是int,VB.NET中类型是interger,通过CTS可以把这两个类型编程通用类型Int32.所有.Net语言都共享CTS这一类型系统,从而使他们能够实现无缝互操作

CTS类型主要分为2大类:引用类型和值类型。两种类型之间存在着相互转化,转化方法分别为装箱(box)和拆箱(unbox ).

CLS公共语言规范.Net下的语言不仅仅存在类型不同,语言规范上也有明显的区别,CLS就应运而生了,CLS是一种最低的语言标准,制定了以.Net平台为目标语言所必须支持的最小特征,以及某一语言与其他.Net语言实现互操作所需要的完备特征。想要互操作必须要遵守CLS.

比如C#中,变量名是区分大小写的,但是VB.Net中却不区分大小写。CLS就规定编译后的IL代码除了大小写之外,还有其他的不同。

.NET Framwork类库就是一组DLL程序集的集合,其中包含了大量定义好的类型,这些类型公开了一些功能,我们可以利用这些功能开发出各种程序。

由于FCL中包含了数量极多的类型,因此有必要将相关的一组类型放到一个单独的命名空间中加以区分,因此在使用FCL中某个类时,还必须知道该类所在的命名空间。

 

原文地址:https://www.cnblogs.com/tangpeng97/p/8003718.html