.NET framwork是一种采用系统虚拟机运行的编程平台。以通用语言库(CLR)为基础,支持多种语言(C#,Python,C++等)的开发。.NET framwork给所有语言都提供了基础类库(BCL)
.NET也为应用程序接口API 提供了新功能和开发工具。
这些革新使得程序员可以同时进行windows应用软件(APP)和网络应用软件(WEB)以及组件和服务的开发。
.net framwork 主要包含两部分:BCL和CLR。
BCL:basic class libraries,基础类库,包括各种基础变量类型,XML类,集合类等等
CLR:公共语言运行时,管理内存,安全机制。主要负责管理用.NET开发的所有应用程序的运行
C# -- 程序集(CIL)-- (JIT)本机代码-系统运行库 -- 管理.NET CLR -- 管理本机代码
编译使用.NET framework的代码库时,先把代码编译成通用公共语言(CIL-common intermediate library)代码,这些代码不用于任何一种操作系统。
然后编译器把CIL编译成专业os和目标机器结构的本级代码(just in time)
组成部分有CIL,元数据,资源集等
由CLR管理的代码
托管代码是.NET框架编写的代码,需要在CLR的环境下运行,也就是需要依赖.NET的framwork 进行内存管理,安全机制,他们只用管理上层(wpf就只处理表示层)代码。
非托管代码不在CLR控制之下,比如Win32 C/C++ DLL,COM组件,称为非托管代码,他们自己完成内存释放、内存管理,安全周期等。自己与底层api打交道。
.NET 是.NET framework的升级版本,主要用于跨平台开发(windows,linux,等)应用
.net framword->.net core->.net
所以有些内容,在.NET 上适用,在.NET framework上不一定适用,编译会报错
C#是创建要运行在.NET CLR 上的应用程序的语言之一。
由C++,C演化而来。是microsoft 专门为.NET平台而创建的。