.NET Framework概述

1.NET Framework是为其运行的应用程序提供各种服务的托管执行环境,它包括两个主要组件:(1).公共语言运行时 (CLR),(2)..NET Framework 类库;

2.NET Framework的核心是CLR;
3.CLR的核心CTS,CLS(公共语言规范 );
4.CTS是通用类型系统(Common Type System);
5.CLS是公共语言定义(Common Language Specification);
6.CLR是公共语言运行时(Common language runtime) ;
7.CLR的执行模型: 1、将源代码(vb、cs)编译成 托管代码块。托管代码块由中间语言和元数据组成。
          2、将托管代码合并成程序集,也叫组件(dll)。程序集中包含了一张叫做“清单”的模块,记录了构成程序 集模块构成的信息包括资源文件及需要引用自己的信息。
          3、加载公共语言运行库。
          4、执行程序集的代码。
          5、生成本地代码。

8.CLI:公共语言基础架构,定义了一个语言无关的跨体系结构的运行环境,这使得开发者可以用规范内定义的各种高级语言来开发软件,并且无需修正即可将软件运行在不同的计算机体系结构上;
9.BCL:基础类库
BCL是一个公共编程框架,称为基类库,所有语言的开发者都能利用它。是CLI(Common Language Infrastructure,公共语言基础结构)的规范之一,主要包括:执行网络操作,执行I/O操作,安全管理,文本操作,数据库操作,XML操作,与事件日志交互,跟踪和一些诊断操作,使用非托管代码,创建与调用动态代码等,粒度相对较小,为所有框架提供基础支持。
10:FCL,框架类库(Framework Class Library)
FCL提供了大粒度的编程框架,它是针对不同应用设计的框架 ,FCL大部分实现都引用了BCL,例如我们常说的开发框架:ASP.NET、MVC、WCF和WPF等等,提供了针对不同层面的编程框架 。
11:托管代码与非托管代码的区别:1、托管代码是一种中间语言,运行在CLR上;
                        非托管代码被编译为机器码,运行在机器上。
                   2、托管代码独立于平台和语言,能更好的实现不同语言平台之间的兼容;
                        非托管代码依赖于平台和语言。
                   3、托管代码可享受CLR提供的服务(如安全检测、垃圾回收等),不需要自己完成这些操作;
                                                      非托管代码需要自己提供安全检测、垃圾回收等操作。
                   4、.Net有很多非托管的资源,比如StreamWriter、 Timer、数据库连接。

12:托管代码就是Visual Basic .NET和C#编译器编译出来的代码,托管代码在公共语言运行库(CLR)中运行
13:非托管代码是运行在公共语言运行库环境(CLR)的外部,由操作系统直接执行的代码。非托管代码必须提供自己的垃圾回收、类型检查、安全支持等服务14:元数据:是一种二进制信息,用以对存储在公共语言运行库可移植可执行文件 (PE) 文件或存储在内存中的程序进行描述

15:元数据存储以下信息:(1)程序集的说明,(2)类型的说明,(3)属性
16.NET Framework 框架体系:首先编写的C#源文件hello.cs通过C#编译器进行编译,编译成.NET 的PE文件结构,也就是exe文件格式,当程序运行时,Windows的Loader加载器不会负责该程序的内存分配,线程管理等工作,而是只负责跳转到CLR的执行引擎(EE)中,将控制权交由CLR,由CLR进行分配内存,线程管理,异常处理等


原文地址:https://www.cnblogs.com/zyx13966104797/p/11140466.html