.Net Framework简介

IDE就是浏览器的意思
CLR是.net framework的核心
.NET Framework:闭源 是为其运行应用程序提供各种服务的托管执行环境  公共语言运行时(CLR):把中间语言变为计算机语言
CLR的核心是CTS和CLS。
CTS是通用类型系统(common type system)
CLS是公共语言定义(common language specification)
CLR是公共语言运行时(common language runtime)
Language complier:语言编译器
IS:中间语言
JIT:即时编译器
将源代码(vb cs)编译成 托管代码。托管代码由中间语言和元数据组成。
将托管代码合并成程序集,也叫组件(dll)。程序集中包含了一张叫做“清单”的模块。
CLR执行模型
1.将源代码(VB、cs)编译成托管代码块。托管代码块有中间语言和元数据组成
2.将托管代码合并成程序集,也叫组件(dll)。程序集中包含了一张叫做“清单”的模块
,记录了构成程序集模块构成的信息包括资源文件及需要引用自己的信息。
3.假造公共语言运行库
4.执行程序集的代码
5.生成本地代码
CLI公共语言基础架构(common language infrastructure)
BCL基础类库(base class library)
BCL是一个公共编程框架,成为基类库,所有语言的开发者都能利用它。
FCL框架类库(framework class library)

托管代码:是Visual Basic.Net和C#编译出来的代码在CLR中运行。
非托管代码:运行在CLR外部,操作系统直接运行。
unsafe可以用来修饰类 类成员函数,类的全局变量,但不能用来修饰类成员函数内的局部变量
托管代码就是Visual Base.Net和C#编译器编译出来的代码,托管代码在公共语言运行库(CLR)中运行
非托管代码是运行在公共语言运行库(CLR)的外部,由操作系统直接执行的代码。非托管代码必须提供自己的垃圾回收、类型检查、安全支持等服务
区别:1、托管代码是一种中间语言,运行在CLR上
 非托管代码被编译为机器码,运行在机器上。
          2、托管代码独立与平台和语言,能更好的实现不同瓶套之间的兼容
 非托管代码依赖于平台和代码
          3、托管代码可享受CLR提供的服务(如安全检测、垃圾回收等),不需要自己完成这 些操作
 非托管代码需要自己提供安全检测、垃圾回收等操作
          4、.Net有很多非托管的资源,比如StreamWrite、Timer、数据库连接。

GC(Garbage Collector):垃圾收集,仅内存而言。
GC并不是能释放所有的资源
GC并不是实时性的
GC.Collect():作用:强制进行垃圾回收。
.Net的Gc几只两个问题:
 首先,Gc并不是能释放所有的资源。他不能自动释放非托管资源。
 第二,Gc并不是实时性的,这将会造成系统性能上的瓶颈和不确定性
元数据:是一种二进制数据。
IL:中间语言。
IL/MSIL/CIL:微软中间语言。
BCL:基础类库(网络操作 io操作 安全管理 文本操作 数据库操作 xml操作
原文地址:https://www.cnblogs.com/wxj2/p/11140474.html