0.2 ASP.NET的特点
在了解了.NET的概念之后,现在来看看什么是ASP.NET。
ASP. NET是一个统一的Web开发模型,它提供了为建立和部署企业级Web应用所必需的服务。同时,ASP.NET是Microsoft.NET Framework的一部分,是一种可以在高度分布的Internet环境中简化应用程序开发的计算环境。当编写ASP.NET应用程序的代码时,可以访问.NET Framework中的类。可以使用与公共语言运行库((Cmmon Language Runtime, CLR)兼容的任何语言来编写应用程序的代码,这些语言包括Microsoft Visual Basic、C#、JScript.NET和J#。使用这些语言,可以开发利用公共语言运行库、类型安全、继承等方面的优点的ASP.NET应用。因此,它有如下特点:
1)ASP. NET是同Microsoft.NET Framework集成在一起的,运行在CLR运行库环境之内。ASP.NET建立在.NET Framework的编程类之上,它提供了一个Web应用程序模型,并且包含使生成ASP Web应用程序变得简单的控件集和结构。ASP.NET包含封装公共HTML用户界面元素(如文本框和下拉菜单)的控件集,但这些控件在Web服务器上运行,并以HTML的形式将它们的用户界面推送到浏览器。在服务器上,这些控件公开一个面向对象的编程模型,为Web开发人员提供了面向对象的编程的丰富性。ASP.NET还提供结构服务(如会话状态管理和进程回收),进一步减少了开发人员必须编写的代码量,并提高了应用程序的可靠性。另外,ASP.NET能让开发人员以服务的形式交付软件。使用XML Web Services功能,ASP.NET开发人员可以编写自己的业务逻辑并使用ASP.NET结构,最后通过SOAP交付该服务。
2)ASP. NET是编译执行的,它支持多种编程语言,同时,它也是面向对象的。在ASP.NET应用开发中,可以使用与CLR兼容的任何语言来编写应用程序的代码,如Microsoft Visual Basic、C#、JScript.NET和J#等编程语言。以C#为例,它会经过两个阶段的编译过程:
第一个阶段,编写的C#代码首先被C#编译器编译成.NET的中间语言((Itermediate Language, IL)。实际上,所有.NET语言(包括Microsoft Visual Basic、C#等)都会编译成相同的IL代码,这也是.NET为什么能够做到与语言无关性的关键所在。当页面被第一次请求的时候,第一步的编译过程会自动执行,当然也可以提前执行(我们将此称为预编译),这个编译的IL代码文件称为程序集。
图 0-3 ASP.NET页面代码的编译过程
第二阶段在这个页面实际执行的时候开始。此时,IL代码被编译成本机机器代码,我们将此阶段称为即时编译((Jst-In-Time, JIT)。可以用图0-3来描述这两个阶段的编译过程。
其实,ASP.NET应用程序不必在每次请求网页的时候都进行编译,这些中间语言代码在源文件被修改之前只被编译一次。关于代码究竟什么时候编译成IL代码,这取决于你创建Web项目的方式。在Microsoft Visual Studio 2010中,如果采用新建Web应用程序的方式来创建Web项目,那么在编译项目的时候,代码就会被编译成IL;如果采用新建网站的方式来创建Web项目,那么页面代码在第一次请求的时候才会被编译成IL。无论哪种方式,代码都是在第一次执行时进入编译的第二阶段,即从IL到本机机器代码。
3)ASP. NET是跨浏览器和跨设备的。要做到跨任何浏览器运行是所有Web开发人员所面临的最大挑战,同时,它也是衡量一门Web编程语言的重要指标。但对于今天的ASP.NET程序员来讲,跨浏览器的问题似乎变得不那么重要。如果你在开发中完全使用ASP.NET自带的Web服务器控件,那么这些Web服务器控件将会根据客户端的浏览器来自动生成相应的HTML。这样,你不用编写任何其他的额外代码就能够实现跨浏览器支持。
4)ASP. NET易于配置与部署。说到ASP.NET的易于配置与部署的特性,这是任何一个开发平台所不能够比拟的,微软在这方面一直都做得非常好。尤其是在Windows 7和Windows Server 2008操作系统里面自带了.NET之后,通过复制程序的方式就能够让程序自由运行。