文档库 最新最全的文档下载
当前位置:文档库 › 什么是NET_Framework

什么是NET_Framework

什么是NET_Framework
什么是NET_Framework

.NET Framework概要

.NET Framework:就是微软WebServices引擎

有许多程序设计师和使用者,非常渴望有一个完善而且透明清楚的基础架构,来建立WebServices(因特网服务)。.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包括了三大部分:超级兵王www.chaojibingwang.rog,第一个部分量Common Language Runtime(CLR,所有.NET程序语言的基本对象),第三个部分是重新以组件的方式写成的https://www.wendangku.net/doc/8411621976.html,(旧版本则是以asp.dll提供ASP网页所需要的对象)。

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

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是一个高效率的执行引擎,程序代码的执行是由Runtiem所管理,Runtime负责的工作有产生对象、方法(methods,对象所能执行的动作)的呼叫等等,Runtime也可以提供程序代码一些额外的服务。我们把要透过CLR的控制,才能执行的程序代码称为Managed Code。

Intermediate Language 及Just In Time编译器

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

组件Assemblies

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

.NET共享对象类别库

在.NET Framework出现之前,使用VisualC++的程序设计师使用MFC(Microsoft Foundation Classes)对象类别库来写程序,而Visual Basic的程序设计师则使用VBF(VIsual Basic Framework)。现在.NET Framework将这些对象库整合并统一,设计了一个让所有程序语言共享的对象类别库。这样一来程序设计师不需要再学习多种对象模型或是对象类别库,就可以做到跨语言的对象继承、错误处理以及除错。因为不管是https://www.wendangku.net/doc/8411621976.html,或是C#等程序语言所使用的对象类别库都一样,所以程序设计师就可以自由的选择他们所偏好使用的程序语言。

.NET提供了一个让.NET所有程序语言使用的共享对象类别库,这个对象类别库提供了几组统一、对象导向、结构化以及可扩充的对象类别库,协助程序设计师快速的开发软件。共享对象类别库中提供了许多对象,包括集合、IO、数据形态等等,也提供一些对象类别可以存取操作系统服务,例如绘图、讯息、网络、执行绪与数据存取等等。程序设计师可以直接建立.NET共享对象类别库提供的对象,也可以呼叫共享对象类别库的功能,或者藉由继承某个对象的功能来扩充自己建立的对象。

共享对象类别库

https://www.wendangku.net/doc/8411621976.html,是共享对象类别库中的一员,https://www.wendangku.net/doc/8411621976.html,提供了一个Web应用程序模型。这模型提供了一些窗体、控件及基础架构,让程序设计师简单建立Web应用程序。https://www.wendangku.net/doc/8411621976.html,提供了一些对应HTML元素(例如按钮、清单盒等)的HTML控件(HTMLControls)以及功能更强的Web控件(WebControls);这些控件在服务器端执行,然后在客户端的浏览器以HTML元素的方式显示。这种HTML控件在服务器端以对象导向的方式被程控,让程序设计师享受到对象导向程序写作的优点,简化程序的复杂性。

使用者接口感应

https://www.wendangku.net/doc/8411621976.html,另外一个重要的功能,是这些控件被设计成可以适应客户端,同样的一页可以被扩大的客户端平台浏览。换句话说,Web网页会侦测客户端所需的格式提供适合的网页:提供给行动电话WML,能力较差的浏览器提供HTML3.2,而IE5.5则提供DHTML。

Web Services

https://www.wendangku.net/doc/8411621976.html,也可让程序设计师把软件做成服务(Service Software,在服务器中以提供服务的方式所存在的应用程序)的方式执行。Web Services是一种可以使用在因特网的程序逻辑,和传统的应用程序可以使用操作系统提供的功能一样,以因特网为基础的应用程序也可以利用WebServices来增强本身的功能。要解决应用程序间的整合,以及把程序做成服务程序的方法,就是使用Web Services(网站服务,在网站中提供服务)。Web Services提供简单、弹性,并以标准模块的方法来建立透过因特网工作的应用软件。因特网应用程序可以将Web Services在不管是否不同平台、不同程序语言所开发,以及不管新旧的情形下轻松的做整合。利用https://www.wendangku.net/doc/8411621976.html,的新功能可以简单的将企业法则写成Web服务组件,这时https://www.wendangku.net/doc/8411621976.html,所提供的一些基础架构就负责透过SOAP或是XML等标准通讯协议来使用这些服务组件。

了解CLR实际的运作

对.NET Framework有个概念之后,我们在来了解CLR实际的动作:

1.首先程序代码先由编译器编译成IL,同时相关联数据会由相关数据引擎(Metadata Engine)产生。

2.这时候如果有不同的语言所编译成的IL或机器码,连接器(Linker)就可以将它连结进来,并产生包还IL的EXE或DLL,编译器的功能在这里就算完成了。

3.这时当程序在执行的时候,就是CLR执行工作的时候。程序中如果有任何使用到.NET Framework共享对象类别库的程序代码时,会被对象类别加载器(Class Loader)载入并合并。这时候被合并的程序代码在JIT编译器执行之前可以透过查验器(Verifier)来检查型别安全。

4.最有由JIT编译器把程序代码编译成可以被CLR所管理的机器码便可执行。

相关文档