.NET框架

        最近学习.NET理解起来比较费劲,视频看得云里雾里。不怕不知道,就怕不知道。通过查资料,搜集到一些有助于理解.NET框架的资料,在此和大家分享一下。先有个大致的了解,今后我们会慢慢领会。

       .NET框架(.NETFramework) 是由微软开发,一个致力于敏捷软件开发、快速应用开发、平台无关性和网络透明化的软件开发平台。它是一个多语言组件开发和执行环境,提供了一个跨语言的统一编程环境。.NET框架的目的是便于开发人员更容易地建立Web应用程序和Web服务,使得Internet上的各应用程序之间,可以使用Web服务进行沟通。从层次结构来看,.NET框架主要由两部分组成:公共语言运行时(CLR)和.NET框架类库(BCL,下图中蓝色部分).

.NET框架

一、CLR

       CLR.NET框架的运行期间环境。CLR向与其兼容的语言提供了一套通用服务,如异常处理、安全性、调试等。

在程序的执行过程中,CLR控制代码与操作系统的交互,由CLR执行的代码称为可控代码。相反,不是由CLR执行的代码称为不可控代码。可控代码通过向CLR提供元数据而与CLR“协作”。CLR向代码提供服务,如垃圾收集和内存管理。与可控代码不同,不可控代码可以绕过.NET框架API函数,直接调用操作系统的API函数。

       在编译过程中,CLR把代码转换为MSIL(微软中间语言)。MSIL是一套独立于CPU的指令。MSIL包括用于载人、存储、初始化和调用方法的指令,还包括有关算术和逻辑操作以及异常处理的指令。编译除MSIL之外的任何代码时,元数据与被编译代码一起创建和存储。元数据包含有关代码中成员、类型和引用的信息。CLR使用元数据定位并载入类,创建机器码,对代码进行安全检查,并执行代码。这样,编译代码后,已编译文件中便包含MSIL和元数据。包含MSIL和元数据的文件称为PE(可移植执行体)文件。在程序执行前,CLR的JIT编译器调用元数据,并将PE文件中的MSIL转换为机器码。因为机器码依赖于CPU,MSIL不依赖CPU,所以CLR提供了不同的JIT编译器,并且每个编译器都在不同的体系结构中使用。这意味着,根据用于编译MSIL的JIT编译器,同一MSIL可以在不同的体系结构中被执行。

       在管理代码期间,CLR也执行各种任务,如内存管理、代码安全性检查、线程、校验和编译代码。例如,应用程序运行期间,CLR分配内存,管理线程和进程,并实施安全策略。

       CLR定义了通用类型库(CTS),CTS是支持CLR的所有语言使用的标准类型库。CTS列出了CLR支持的类型,有类、接口、数值类型和委托。因为数据类型在所有语言中会被同样的处理,所以我们可以把变量从一种CLR兼容的语言创建的类传递给另一个类,而不用理会定义变量时所使用的是哪种编程语言。

二、.NET框架类库

       .NET框架类库包括多个重用的、面向对象的、可扩展的类。它与CLR集成在一起,对于Visual Studio.NET中的所有编程语言都是通用的。

      .NET框架中的类按层次进行组织,system命名空间在层次的顶端,并包含所有其他类。主要有:转换数据类型,处理参数,调用本地和远程程序,管理应用程序环境。

三、.NET框架的基本特征

       .NET框架具有跨语言使用的基本功能,提供了一个集成的调试器,可以调试多种语言一块编写的程序。不仅可以在程序运行期间调试,还可以执行远程调试。通过代码访问安全性和基于角色的安全性,.net框架为应用程序引入了新的安全机制。


       我们现在已经学了好几种编程语言了,也能够做出一个小系统来,这些只是浅层的东西。我们编写的代码到底是如何在系统中运转的,这些深层的东西就需要今后的不懈努力了,书山有路,学海无涯。。




.NET框架,布布扣,bubuko.com

.NET框架

上一篇:html网页编码问题


下一篇:(转)PHP zval内存回收机制和refcount_gc和is_ref_gc