ASP.NET 3.5教程
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.4 .NET Famework与ASP.NET

随着Internet应用的迅速发展,为了适应用户对Web应用持续增长的需要,微软公司于2002年正式发布.NET Framework和Visual Studio .NET开发环境,使之成为一个支持多语言、通用的运行平台,并在其中引入了全新的ASP.NET Web开发技术。

1.4.1 .NET Famework

从2002年正式发布.NET Framework 1.0后,.NET Framework不断更新,2008年已正式发布.NET Framework 3.5版本,同时也提供了Visual Studio 2008(以下简称VS2008)集成开发环境。

1..NET Framework的结构

.NET Framework是一个多语言组件开发和运行环境,它提供了一个跨语言的统一编程环境。.NET Framework的目的之一是为了让开发人员更容易地建立Web应用程序和Web服务,使Internet上的各应用程序之间可以使用Web服务进行沟通。开发人员可以将远端应用程序提供的服务和单机应用程序的服务结合在一起,组成一个整体的应用程序。

目前,.NET Framework主要包括如下内容。

(1).NET语言:五种基本语言的编译器,包括C#、Visual Basic、J#(Java语言的克隆体)、具有托管扩展的C++及Jscript .NET(JavaScript的服务器端版本)。

(2).NET FCL(Framework Class Library,框架类库):包括对Windows和Web应用程序、数据访问、Web服务等方面的支持。

(3)CLR(Common Language Runtime,公共语言运行库):.NET Framework核心的面向对象引擎,可以执行所有的.NET程序,并且为这些程序提供自动服务,如安全检测、内存管理及性能优化等。.NET Framework的结构如图1.9所示。

2..NET应用程序的编译过程

实际上,由于CLR将所有代码先编译成MSIL(MicroSoft Intermediate Languange,微软中间语言),然后再由JIT(Just In Time)编译器编译成本机机器语言代码,因此,理论上.NET可以应用在UNIX、Linux、Mac OS或其他操作系统上。而且由于CLR的存在,使得.NET Framework消除了异类框架之间的差别,所以也可以让开发人员选择其喜好的编程语言。上述处理过程如图1.10所示。

对于ASP.NET应用程序,使用MSIL和JIT技术还能够提高执行效率。当第一次执行ASP.NET程序时,它被先编译为MSIL,再由JIT编译器将MSIL编译为机器码,并将机器码存放在缓存中。以后再执行该程序时,只要程序没有变化,系统将直接从缓存中读取机器码,从而大大提升了执行效率。

图1.9 .NET Framework的结构

图1.10 .NET应用程序的编译过程

1.4.2 ASP.NET

1.ASP.NET与ASP的区别

ASP.NET沿袭了ASP的名称,但是在实质上已经完全超越了ASP,不是ASP的简单升级,而是全新一代的动态网页实现系统。ASP.NET是微软发展的新体系结构.NET的一部分,是ASP和.NET技术的结合;提供基于组件、事件驱动的可编程网络表单,大大简化了编程。ASP.NET还可以用来建立网络服务。

2.ASP.NET 3.5的设计目标

在ASP.NET 3.5的设计过程中,微软公司深入市场,针对大量开发人员和软件公司的需求,进行了卓有成效的研究。这些细致的工作,为ASP.NET 3.5的开发打下了良好的基础。同时,也为ASP.NET 3.5这个产品设定了宏伟目标。ASP.NET 3.5设计目标的核心就是“简化”。围绕这个核心,建立了以下几个主要设计目标。

(1)提高生产效率:设计目标是将应用程序代码减少约70%,以提高开发效率,使开发人员可以将更多的注意力放到如何实现业务逻辑上。对于部分开发工作,尽量做到不写或少写代码就可完成任务。

(2)提高性能和可伸缩性:在ASP.NET 1.x中,应用程序性能和可伸缩性一直是两个饱受争议的话题。ASP.NET 3.5在这两个方面进行了重大改进,主要体现在优化内部处理机制、扩展高速缓存功能及增加对64位服务器的支持等方面。

(3)提高对不同终端设备的支持能力:优化ASP.NET 3.5技术,提高对浏览器、PDA、移动电话等终端设备的支持能力,并且增加对各种未来终端设备的支持。另外,通过扩展控件功能,使得同一控件能够输出支持多种设备的代码。

(4)简化管理和维护工作:在ASP.NET 1.x中,Web应用程序的管理和维护主要通过人工方式,即对XML配置文件进行处理来完成,这种方式容易出错。在ASP.NET 3.5中,目标是创建图形化的管理工具,简化管理和维护工作。

3.ASP.NET 3.5的编译系统

在ASP.NET 1.x中进行编译是一个困难的过程,如果对后台编码文件进行了修改,则这些修改的内容不能反映到应用程序中,除非重新建立整个应用程序,也就是说,在重新编译整个应用程序之前,必须再次逐个地请求每个页面。

ASP.NET 3.5在处理类和编译的方式方面都进行了改进。由于.NET Framework 3.5支持使用局部类(Partial Class)的功能,因此ASP.NET 3.5提供了一个与ASP.NET 1.x不同的后台编码模型。在编译时,各个文件将组合为一个产品,这将生成非常简洁的后台编码页面。类中页面代码和后台编码类是分开的。而在ASP.NET 1.x中与此相反,页面需要从它自己的后台编码文件中派生,以表示一个逻辑页面。

ASP.NET 3.5应用程序中可以包含一个\App Code目录,其中放置类的源代码,这些类都是动态编译的,并且在应用程序中反映出来。在进行修改时,不需要像ASP.NET 1.x那样使用独立的建立过程,这是一个“只要保存了就可以使用”的部署模型。同时VS 2008也为\App Code目录中的对象提供了IntelliSense。

ASP.NET 3.5还提供了一些工具,可以预先编译ASP.NET应用程序,包括.aspx页面和后台编码,这样第一次访问页面时,不会出现延迟现象。如果页面中有错误,则即使不调用每个页面,也可以找出这些错误。还可以预先编译整个应用程序,再将生成的程序集部署到服务器,从而防止代码在部署后被窃取、篡改和损坏。