NET Framework 概要

NETFramework 提供了应用程序模型及关键技术,让开发人员容易以原有的技术来产生、布署,并可以继续发展具有高安全、高稳定,并具高延展的Web Services。对于.NET Framework 而言,所有的组件都可以成为Web Services,Web Services 只不过是另一种型态的组件罢了。微软将COM 的优点整合进来,它可以不用像COM 那么严谨的来栓锁两个对象,.NET Framework 以松散的方式来栓锁Web Services 这种型态的组件。
  .NET Framework: 由三个部分组成:
    第一个部分是Common Language Runtime(CLR,所有.NET 程序语言公用的执行时期组件),第二部分是共享对象类别库(提供所有.NET 程序语言所需要的基本对象),第三个部分是重新以组件的方式写成的ASP.NET(旧版本则是以asp.dll提供ASP 网页所需要的对象)

  Common Language Runtime(CLR)架构在操作系统的服务上,它负责应用程序实际的执行,满足所有的应用程序的需求;例如内存管理、处理安全问题、整合不同的程序语言等等.
  .NET Framework 在发展时,设计了让所有.NET 的程序语言共同使用的Runtime 组件,这个组件的名称就叫做Common Language Runtime(CLR)。CLR 是一个高效率的执行引擎,程序代码的执行是由Runtime 所管理,Runtime 负责的工作有产生对象、方法(methods,对象所能执行的动作称之)的呼叫等等,Runtime 也可以提供程序代码一些额外的服务。我们把要透
过CLR 的控制,才能执行的程序代码称为Managed Code.
  不过程序设计师实际上不会被Runtime 所影响,因为他们所面对的是架构在CLR 上面的共享对象类别库,这个共享对象类别库可以被任何程序语言所使用。在这个类别中包含了以建构Web 为基础的应用程序模型,提供以架构Web 服务与Web 应用程序为目标的组件及服务,这个就是我们要讨论的ASP.NET.
   Intermediate Language(IL) 及Just In Time(JIT) 编译器
   ASP.NET 为了改善执行的效率,以及让程序将来可跨平台执行,所以便设计了IL 以及JIT 编译器。IL 这种架构非常接近机器码,可以非常有效率的透过JIT 编译器转换为机器码;而透过JIT 编译器所编译出来的机器码还是被CLR 所管理。IL 含有许多广泛的指令,不但包括对象的加载、排序、初始、以及方法呼叫的指令(关于对象、方法等,第三章有详细的讨论),而且还有算数暨逻辑运算、流程控制、直接内存存取,以及例外处理的指令.只要该种程序语言可以被编译成IL,就可以由JIT 编译器编译执行。所以不管该组件用VB、C#、Java 或其它语言所写成的,都可以被结合在一起使用;这个结合组件的动作称为组装(Assembly).
   组件Assemblies
    组件就是组成.NET 应用程序的任何元素,可能来自于.NET Framework 对象类别库中的基础对象,或是我们自行开发的对象。我们利用这些组件来开发.NET 应用程序,最后将这些组件进行组合的动作,使用这些组件将我们的应用程序制作成执行文件(EXE)或是动态连结函式库(DLL).
  对.NET Framework 有个概念之后,我们再来了解CLR 实际的动作:
  1. 首先程序代码先由编译器编译成IL,同时相关联数据会由相关数据引擎(MetadataEngine)产生。 
  2. 这时候如果有不同的语言所编译成的IL 或机器码,连结器(Linker)就可以将它连结进来,并产生包含IL 的EXE 或DLL,编译器的功能在这里就算完成了。 
  3. 这时当程序在执行的时候,就是CLR 执行工作的时候。程序中如果有任何使用到.NETFramework 共享对象类别库的程序代码时,会被对象类别加载器(Class Loader)载入并合并。这时候被合并的程序代码在JIT 编译器执行之前可以透过查验器(Verifier)来检查型别安全。 
  4. 最后由JIT 编译器把程序代码编译成可以被CLR 所管理的机器码便可执行。

   Understanding .NET Framework at a glance
   ::URL::http://www.c-sharpcorner.com/Code/2004/May/WhitePapers_DotNetFramework.asp

posted on 2006-03-02 21:51  无心三立  阅读(266)  评论(0编辑  收藏  举报

导航