因为工作需要使用到.net,也学习了一段时间,但是对于整体的体系不是太清楚,在网上找到2个比较好理解的结构图
这是.net的体系图,从这个图上可以看到,ASP.NET,Windows Forms等等都只是.net平台开发的一部分,用于,net应用程序的展示。而在其上可以使用
各种语言来编写代码。.net的核心是“公共语言运行时”,“基础类库”等。而最下层的是Windows,.net的平台无关性也正在于此,如果将Windows换成Linux或者
其他平台,也是可以的,只要能够实现符合CLS通用语言规范.net语言就可以。在.net中,编译分为2个部分:
1. 第一个是将源代码编译成Microsoft的中间语言(IL),所以不管在上层使用的是c#还是其他什么语言,都能转成IL中间语言,一种低级语言,语法简单,但是
可以快速的转为本地机器码。
2.第2个是CLR将IL编译成平台专用的代码,比如这边是Windows。这也体现了平台的无关性,但这在目前还不是很成熟。(个人感觉,虽然微软的想法很好,是为
了更好的适应各种平台,但这个实现起来还是比较困难的,对于其他平台来时候,如果。net没有足够大的优势,其他平台的用户更多会偏向于使用更加熟悉或者常用的
语言)
下图是核心CLR的主要作用图:
从上图可以看到CLR为开发者提供的主要的服务,负责线程同步,类型检查,垃圾回收等等,CLR还提供了很多简化代码开发和应用配置,改善了应用程序的可靠性,
通常将在CLR控制下运行的代码成为托管代码(managed code)。这样的代码是直接运行在CLR之上的,具有平台无关性的特点。CLR实际就是虚拟机技术的一种产品,
架构在操作系统之上,只要能支持他的运行库的系统,都可以在上面运行。
本文介绍了.NET Framework的整体结构,强调了公共语言运行时(CLR)和基础类库的重要性。通过图解展示了ASP.NET、Windows Forms等是.NET平台的一部分,支持多种编程语言如C#。编译过程包括源代码转化为中间语言(IL)和IL编译成平台特定代码。CLR作为.NET的核心,提供线程同步、类型检查和垃圾回收等功能,确保代码的托管执行和平台无关性。
1738

被折叠的 条评论
为什么被折叠?



