.NET 架构学习

来源:互联网 发布:知乎 mac怎么上google 编辑:程序博客网 时间:2024/05/19 16:38
CLR common language runtime 公共语言运行时  和Java虚拟机一样,可由多种编程语言使用的运行环境。
核心功能:内存管理,程序集加载、安全性,异常处理,线程同步
保证了应用和底层操作系统之间必要的分离。
CLR为了提高平台的可靠性,以及为了达到面向事务的电子商务应用所要求的稳定性级别,
CLR还要负责其他一些任务,如监视程序的运行,
根据.net的说法,在CLR监视之下运行的程序属于“托管的”(managed)代码,
而不在CLR之下,直接在裸机上运行的应用或者组件属于“非托管的”(unmanaged)的代码。
CLR将监视形形色色的常见编程错误,许多年来这些错误一直是软件故障的主要根源。
其中包括:访问数据元素越界,访问未分配的内存空间,由于数据体积过大而导致的内存溢出等等。
.NET Framework安全解决方案基于管理代码的概念,以及由通用语言运行时(CLR)加强的安全规则。


NET Framework 具有两个主要组件:公共语言运行库和 .NET Framework 类库

公共语言运行库是 .NET Framework 的基础。您可以将运行库看作一个在执行时管理代码的代理,它提供内存管理、线程管理和远程处理等核心服务,并且还强制实施严格的类型安全以及可提高安全性和可靠性的其他形式的代码准确性。事实上,代码管理的概念是运行库的基本原则。以运行库为目标的代码称为托管代码,而不以运行库为目标的代码称为非托管代码。

.NET Framework 的另一个主要组件是类库,它是一个综合性的面向对象的可重用类型集合,您可以使用它开发多种应用程序,这些应用程序包括传统的命令行或图形用户界面(GUI) 应用程序,也包括基于所提供的最新创新的应用程序(如 Web 窗体和 XML Web services)。


.NET 框架图:

应用     WinForms/Asp.net

数据类 DAO/XML

基类层 System.IO.XXX

公共语言运行时  CLR

操作系统 Windows  


在CLR执行开发的源代码之前,需要编译它们(在C#中或其他语言中)。在.NET中,编译分为两个阶段:
(1) 把源代码编译为Microsoft中间语言(IL)。
(2) CLR把IL编译为平台专用的代码。

这种两阶段的编译过程非常重要,因为Microsoft中间语言(托管代码)是提供.NET的许多优点的关键。

1. 平台无关性

2. 提高性能

0 0