科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道.NET Framework概要

.NET Framework概要

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

本文简要介绍微软Web Services的引擎.NET Framework,它的三个组成部分、Common Language Runtime(CLR)、Intermediate Language 及Just In Time编译器和组件Assemblies。

作者:网缘  来源:网缘  2007年9月11日

关键字: .NET Framework

  • 评论
  • 分享微博
  • 分享邮件

.NET Framework:就是微软Web Services 引擎

有许多程序设计师和使用者,非常渴望有一个完善而且透明清楚的基础架构,来建立Web Services(因特网服务)。.NET Framework 就是为了这个需求,而提供的基础架构。.NET Framework 提供了应用程序模型及关键技术,让开发人员容易以原有的技术来产生、布署,并可以继续发展具有高安全、高稳定,并具高延展的Web Services。对于.NET Framework 而言,所有的组件都可以成为Web Services,Web Services 只不过是另一种型态的组件罢了。微软将COM 的优点整合进来,它可以不用像COM 那么严谨的来栓锁两个对象,.NET Framework 以松散的方式来栓锁Web Services 这种型态的组件。这样的结果让开发人员非常容易的发展出强而有力的Web 服务组件,提高了整体的安全及可靠性,并且大大的增加系统的延展性。

.NET Framework:由三个部分组成

NET Framework 的目的就是要让建立Web Services 以及因特网应用程序的工作变的简单,.NET Framework 包括了三大部分:第一个部分是Common Language Runtime(CLR,所有.NET 程序语言公用的执行时期组件),第二部分是共享对象类别库(提供所有.NET 程序语言所需要的基本对象),第三个部分是重新以组件的方式写成的ASP.NET(旧版本则是以asp.dll提供ASP 网页所需要的对象)。

Common Language Runtime(CLR)架构在操作系统的服务上,它负责应用程序实际的执行,满足所有的应用程序的需求;例如内存管理、处理安全问题、整合不同的程序语言等等。Runtime供了许多帮助程序写作的简化,以及应用程序的部署并同时加强程序稳定可靠的一些服务。不过程序设计师实际上不会被Runtime 所影响,因为他们所面对的是架构在CLR 上面的共享对象类别库,这个共享对象类别库可以被任何程序语言所使用。在这个类别中包含了以建构Web 为基础的应用程序模型,提供以架构Web 服务与Web 应用程序为目标的组件及服务,这个就是我们要讨论的ASP.NET。



Common Language Runtime(CLR)

想要执行由某种特定程序语言所开发出来的程序,计算机内部必需装置这种特定程序语言的执行时期(Runtime)组件才可以。例如想要执行以VB 所撰写的程序,计算机内就必须有安装VB的Runtime (msvbvm.dll)才可执行;而其它诸如由Java 或是VC++ 等的程序语言所写成的软件,也是需要Runtime 组件才能执行。为什么Runtime 组件如此重要?这是因为Runtime组件内部有该种程序语言所需要的一些核心功能,例如提供该种语言所需要的基本函式及对象等等;所以当程序在执行时会动态的连结到Runtime 组件,取得所需要的功能。但是不同的程序语言所需要的Runtime 不一样,所以会造成程序设计师在开发时的困难。另外在浏览网页时,如果该网页有包含有类似以VB 这种程序语言所开发的ActiveX 控件时,除该控件会被下载外,如果使用者没有安装VB 的Runtime 组件,那么执行起来会发生些问题。所以为了要解决上述的问题,.NET Framework 在发展时,设计了让所有.NET 的程序语言共同使用的Runtime 组件,这个组件的名称就叫做Common Language Runtime(CLR)。CLR 是一个高效率的执行引擎,程序代码的执行是由Runtime 所管理,Runtime 负责的工作有产生对象、方法(methods,对象所能执行的动作称之)的呼叫等等,Runtime 也可以提供程序代码一些额外的服务。我们把要透过CLR 的控制,才能执行的程序代码称为Managed Code。

Intermediate Language 及Just In Time 编译器



在了解CLR 所扮演的角色后,我们要介绍IL(Intermediate Language)以及JIT(Just In Time)编译器。旧版的ASP 是以直译的方式一行一行的执行程序,所以如果网页程序太复杂或是浏览人数变多,或是服务器负载变重,其执行的效率可想而知。ASP.NET 为了改善执行的效率,以及让程序将来可跨平台执行,所以便设计了IL 以及JIT 编译器。IL 这种架构非常接近机器码,可以非常有效率的透过JIT 编译器转换为机器码;而透过JIT 编译器所编译出来的机器码还是被CLR 所管理。IL 含有许多广泛的指令,不但包括对象的加载、排序、初始、以及方法呼叫的指令(关于对象、方法等,第三章有详细的讨论),而且还有算数暨逻辑运算、流程控制、直接内存存取,以及例外处理的指令。不过因为每个CPU 的架构都不一样,所以IL 不能够直接执行;必需透过JIT 编译器先转换成被CPU 所认识的指令后才可执行。只要有支持该种CPU 架构的JIT 编译器,就可以把IL 编译成可以在该CPU 架构上执行的机器码,这意味着IL 透过各种JIT编译器将可以跨平台。而IL 这种格式又非常接近机器码,直接由这种格式透过JIT 编译器编译成机器码的速度又非常的快,所以第一次执行aspx 网页时需要编译成IL 效率较差外,尔后只要aspx 网页没有异动过,就只要从IL 透过JIT 编译器编译成机器码就可以执行,效率当然比以前的ASP 网页以直译器来执行的效率提升许多。编译成IL 也有另外一个好处,那就是只要该种程序语言可以被编译成IL,就可以由JIT 编译器编译执行。所以不管该组件用VB、C#、Java 或其它语言所写成的,都可以被结合在一起使用;这个结合组件的动作称为组装(Assembly)。

组件Assemblies



组件就是组成.NET 应用程序的任何元素,可能来自于.NET Framework 对象类别库中的基础对象,或是我们自行开发的对象。我们利用这些组件来开发.NET 应用程序,最后将这些组件进行组合的动作,使用这些组件将我们的应用程序制作成执行文件(EXE)或是动态连结函式库(DLL)。

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章