到底什么是.NET?

​.NET 概念比较庞大,本文只讨论基础知识,只用简单语言描述。程序员

咱们是NET程序员,可是咱们有没有思考过到底什么是.NET ?web

官方定义 .NET是微软推出来的一个致力于敏捷开发的软件框架。安全

 大概2000年年左右,微软推出了.NET 标准规范,既然有了标准就等于开发时候定义接口同样,须要东西去实现它。.NET Framework  就是 .NET 的具体实现。app

能够这么认为 .NET一种优秀的设计规范和平台标准。框架

 

下面咱们来讲说什么是 .NET Framework?工具

官方定义 .NET Framework  是 Windows 的托管执行环境,可为其运行的应用提供各类服务。学习

.NET Framework 有两个主要组件:  线程

1. .NET 公共语言运行时 (Common Language Runtime,CLR)设计

CLR核心功能:内存管理,程序集加载,安全性,异常处理,和线程同步,CLR像一个管家同样,管理着程序代码的执行,为程序提供一个运行环境。被CLR托管的代码就叫托管代码。orm

       要想了解CLR机制,就要知道咱们写的C#代码通过VS 编译以后变成了什么?       

左边的图是将咱们编写的C#源代码编译成托管模块,右边图是托管模块的组成部分,这里咱们只关注IL代码,其余的不用关注。C#代码通过编译器生成的并非最终的CUP指令,而是一个中间语言IL代码,也就是托管代码,CLR操做的就是IL代码,最终由CLR将IL编译成计算机能够认识的Cpu指令。咱们应该知道程序运行时候须要占用计算机的内存,C++时代的的程序员是须要本身手动操做管理内存的,须要本身分配和释放内存。可是咱们.NET程序员是不须要进行这个操做的。这是由于CLR帮咱们自动作分配内存和释放内存的这个操做了。这个操做对于NET开发者来讲是透明的,这就是文章的前面所说CLR的主要功能内存管理。由CLR管理释放的内存空间叫作托管堆。在托管堆上的代码称之为安全代码也叫托管代码,反之不在托管堆上的代码就叫非托管代码,非托管代码有可能形成内存泄漏。

CLR是很复杂的一个东西。本文不作过多的讨论,只是对其概念进行简单的讲解。

2.  Framework 类库 

.NET Framework类库应该比较好理解,相似咱们本身封装工具类同样的概念。Framework 类库 (Framework Class Library) 简称 FCL,FCL 里面定义了数千个类型供咱们用。利用这些类型咱们能够开发各类类型的应用程序 webService,MVC,Windows Forms ,WPF,Windows 服务等。因此要想学好NET的,虽然不须要你都掌握整个NET类库。这也不现实,可是也要尽量掌握经常使用的类型。

总结

.NET Framework是.NET平台标准的主要的实现,实现的不单单有.NET Framework还有.NET Core和mono。

.NET Framework包含CLR和 FCL。

CLR为NET程序提供一个运行环境并对其进行托管。

FCL Framework类库为NET程序员提供了大量丰富的基础类型供其使用。封装了一些基础的操做,为了NET程序员的开发提供了便利。

 ps:文章乃我的学习笔记。大神勿喷。

相关文章
相关标签/搜索