共享对象类别库
ASP.NET 是共享对象类别库中的一员,ASP.NET 提供了一个Web 应用程序模型。这模型提供了一些窗体、控件及基础架构,让程序设计师简单的建立Web 应用程序。ASP.NET 提供了一些对应HTML 元素(例如按钮、清单盒等)的HTML 控件(HTML Controls,第四章会提到)以及功能更强的Web 控件(Web Controls,第六章会提到);这些控件在伺服端执行,然后在客户端的浏览器以HTML 元素的方式显示。这种HTML 控件在伺服端以对象导向的方式被程控,让程序设计师享受到对象导向程序写作的优点,简化程序的复杂性。
使用者接口感应
ASP.NET 另外一个重要的功能,是这些控件被设计成可以适应客户端,同样的一页可以被广大的客户端平台浏览。换句话说,Web 网页会侦测客户端所需的格式提供适合的网页:提供给行动电话WML,能力较差的浏览器提供HTML3.2,而IE5.5 则提供DHTML。
Web Services
ASP.NET 也可让程序设计师把软件做成服务(Service Software,在服务器中以提供服务的方式所存在的应用程序)的方式执行。Web Services 是一种可以使用在因特网的程序逻辑,和传统的应用程序可以使用操作系统提供的功能一样,以因特网为基础的应用程序也可以利用WebServices 来增强本身的功能。要解决应用程序间的整合,以及把程序做成服务程序的方法,就是使用Web Services(网站服务,在网站中提供服务)。Web Services 提供简单、弹性,并以标准模块的方法来建立透过因特网工作的应用软件。因特网应用程序可以将Web Services 在不管是否不同平台、不同程序语言所开发,以及不管新旧的情形下轻松的做整合。利用ASP.NET的新功能可以简单的将企业法则写成Web 服务组件,这时ASP.NET 所提供的一些基础架构就负责透过SOAP 或是XML 等标准通讯协议来使用这些服务组件。
Web Services。
了解CLR 实际的运作
对.NET Framework 有个概念之后,我们再来了解CLR 实际的动作:
CLR 的执行。
首先程序代码先由编译器编译成IL,同时相关联数据会由相关数据引擎(MetadataEngine)产生。
这时候如果有不同的语言所编译成的IL 或机器码,连结器(Linker)就可以将它连结进来,并产生包含IL 的EXE 或DLL,编译器的功能在这里就算完成了。
这时当程序在执行的时候,就是CLR 执行工作的时候。程序中如果有任何使用到.NETFramework 共享对象类别库的程序代码时,会被对象类别加载器(Class Loader)载入并合并。这时候被合并的程序代码在JIT 编译器执行之前可以透过查验器(Verifier)来检查型别安全。
最后由JIT 编译器把程序代码编译成可以被CLR 所管理的机器码便可执行。