WPF学习 - .NET相关知识

一、.NET framwork - windows上的多语言的编程平台

.NET framwork是一种采用系统虚拟机运行的编程平台。以通用语言库(CLR)为基础,支持多种语言(C#,Python,C++等)的开发。.NET framwork给所有语言都提供了基础类库(BCL)

.NET也为应用程序接口API 提供了新功能和开发工具。

这些革新使得程序员可以同时进行windows应用软件(APP)和网络应用软件(WEB)以及组件和服务的开发。

.NET framework:

WPF学习 - .NET相关知识_第1张图片 .NET 框架

.net framwork 主要包含两部分:BCL和CLR。

BCL:basic class libraries,基础类库,包括各种基础变量类型,XML类,集合类等等

CLR:公共语言运行时,管理内存,安全机制。主要负责管理用.NET开发的所有应用程序的运行

运行过程:

  1. 通过编译器产生程序集
  2. 在CLR(Common Language Runtime公共语言运行库)环境里经过JIT编译器解析
  3. 产生本机代码(所在系统可以直接识别运行的代码)
  4. 与操作系统进行交互
WPF学习 - .NET相关知识_第2张图片 运行过程

整个通路

C# -- 程序集(CIL)-- (JIT)本机代码-系统运行库 -- 管理.NET CLR -- 管理本机代码

1.编译 CIL和JIT

编译使用.NET framework的代码库时,先把代码编译成通用公共语言(CIL-common intermediate library)代码,这些代码不用于任何一种操作系统。

然后编译器把CIL编译成专业os和目标机器结构的本级代码(just in time)

 2.程序集

组成部分有CIL,元数据,资源集等

3.托管代码

由CLR管理的代码

托管代码与非托管代码

托管代码是.NET框架编写的代码,需要在CLR的环境下运行,也就是需要依赖.NET的framwork 进行内存管理,安全机制,他们只用管理上层(wpf就只处理表示层)代码。

非托管代码不在CLR控制之下,比如Win32 C/C++ DLL,COM组件,称为非托管代码,他们自己完成内存释放、内存管理,安全周期等。自己与底层api打交道。

WPF学习 - .NET相关知识_第3张图片

4.垃圾回收

托管代码最重要的一个功能

二、 .NET -跨平台的编程平台

.NET 是.NET framework的升级版本,主要用于跨平台开发(windows,linux,等)应用

.net framword->.net core->.net

所以有些内容,在.NET 上适用,在.NET  framework上不一定适用,编译会报错

 三、C#

C#是创建要运行在.NET CLR 上的应用程序的语言之一。

由C++,C演化而来。是microsoft 专门为.NET平台而创建的。

你可能感兴趣的:(WPF,wpf,.netcore)