ASP.NET(Active Server Page .NET)又称为
ASP+,不仅仅是ASP的简单升级,而是微软公司推出的新一代脚本语言。ASP.NET基于.NET Framework的Web开发平台,不但吸收了
ASP以前版本的最大优点并参照Java、VB语言的开发优势加入了许多新的特色,同时也修正了以前的ASP版本的运行错误。
发展历程
1996年,ASP 1.0(Active Server Pages)版本出现了,它引起了Web开发的新革命,降低了动态网页开发的难度。以前开发动态网页需要编写大量繁杂的C代码,编程效率非常低下,而且需要
Web网页开发者掌握非常高的编程技巧。而ASP使用简单的脚本语言,能够将代码直接嵌入
HTML,使设计Web页面变得更简单。虽然ASP非常简单,但却能够实现非常强大的功能,这一切得益于其组件。特别是ADO组件,使得在网页中访问数据库易如反掌。这一切推动了动态网页的快速发展与建设,同时使ASP得到迅速流行。
1998年,微软公司发布了ASP 2.0,它是作为Windows NT 4 Option Pack的一部分提供的。ASP 2.0与ASP 1.0的主要区别是外部的组件可以初始化,使所有的组件都有了独立的内存空间,并且可以进行事务处理。内置的Microsoft Transaction Server(MTS)使制作组件变得更容易。
2000年6月,微软公司宣布了自己的.NET框架。.NET框架的基本思想是:把原有的重点从连接到互联网的单一网站或设备转移到计算机、设备和服务群组上,而将互联网本身作为新一代操作系统的基础。这样,用户将能够控制信息的传送方式、时间和内容,从而得到更多的服务。
2001年,ASP.NET浮出水面。它最初的名字为ASP+,后来改为ASP.NET。ASP.NET是
微软公司开发的一种建立在.NET之上的Web运行环境,它不是ASP的简单升级,而是新一代的Active Server Pages。ASP.NET是微软公司新体系结构Microsoft.NET的一部分,其中全新的技术架构使编程变得更加简单。借助于ASP.NET,可以创造出内容丰富的、动态的、个性化的Web站点。ASP.NET简单易学、功能强大、应用灵活、扩展性好,可以使用任何.NET兼容语言。
2002年微软发布.NET正式版本.NET Framework 1.0,其中的ASP版本就是ASP.NET 1.0,在此以前发布了两个.NET测试版本Betal和Beta2。
2003年微软发布了.NET Framework 1.1正式版,其中ASP版本就是ASP.NET 1.1。
2005年微软发布.NET Framework 2.0正式版本,也就是ASP.NET 2.0。
编程开发
硬件环境
.NET平台的的运行对硬件有如下要求:
建议配置:装有450 MHz Pentium Ⅱ级别处理器的PC。
最低配置:装有300 MHz Pentium Ⅱ级别处理器的PC,否则编译过程运行异常缓慢。
②RAM的最小要求。
Windows XP Professional:160 MB RAM。
Windows 2000 Professional:96 MB RAM。
Windows 2000 Server:192 MB RAM。
Windows NT 4.0 Workstation:64 MB RAM。
Windows NT 4.0 Server:160 MB RAM。
③硬盘:标准版在安装驱动器上需要有2.5GB,包括系统驱动器上的500MB。
Professional和Enterprise版在安装驱动器上需要有.5GB,包括系统驱动器上的500MB。如果不需要Microsoft Visual Studio.NET中的参考文档,而且只需要支持C#开发的话,最少需要700M左右的空间。
④驱动器:
CD-ROM或
DVD-ROM驱动器,用以使用光盘,安装开发平台程序。当然,这不是绝对的,完全可以选择网络安装方式。
⑤显示器:SuperVGA(800×600)或更高分辨率的256色显示器,其实建议使用1024×768以上的分辨率,否则开发过程会因为可视范围过小而不方便开发。
⑥输入设备:MjcrosoR鼠标或兼容的指针设备。
当然这里指出的硬件需要也并非绝对的,,如果有条件,应该选择配置更高的机器,这对开发是很有帮助的。
软件环境
①操作系统:MicrosoR Windows NT 4.O或更高版本的操作系统,包括Microsoft windows2000系列,Microsoft windows 2003系列,不支持Microsoft Windows 95,Microsoft windows 98,Microsoft windows Me等操作系统。
注意:对于Microsoft Windows NT 4.0需要升级到SP6以上的版本。对于Windows 2000以上的操作系统,需要将Windows 2000升级到SP3以后的版本。
②Framework:Framework是.NET的支撑基础。它包含.NET平台的运行库与公用语言运行时,所有的.NET平台下的程序都需要基于它的类库来建立程序,而所有的程序也需要先编译为中间语言(IL)然后由公用语言运行时管理执行。可以说没有Framework就没有.NET平台。
针对.NET的开发,微软还为开发人员准备了很多开发工具,它们被集中到Framework SDK中,要进行.NET的开发,这些开发、调试工具是不可少的。因此,要进行,NET开发,最好安装Framework SDK。
不过需要注意的是,Microsoft Windows 2003系列已经集成Framework(但不包含Framework SDK),除非有新的版本,一般不需要再安装。另外在Linux下与Framework对应的是Mono。
③MDAC:有了上面讲述的这些之后,就已经具有最基本的.NET开发平台,可以进行一些简单程序的开发。但是,当要使用数据库、XML等对象时,编写的程序可能无法执行。
因为.NET还有基本的需要——MDAC(Microsoft Data Access CompHDnents),翻译为中文是微软数据访问组件。这是一整套的微软的数据访问组件,几乎所有的windows平台下的数据库访问都是由这些组件来完成的,因此,对于.NET的数据库开发来说,MDAC是不可缺少的部分。
编程工具
语言特点
多语言支持
多语言支持是ASP.NET的重要新特性之一,主要表现在所支持的编程语言种类多和单个语言功能强两个方面。首先,ASP.NET为Web应用提供一种类似于Java编译技术的“二次编译技术”——中间语言MSIL(Microsoft Intermediate Language)执行架构,先将ASP.NET应用编译成MSIL,再将MSIL编译成机器语言执行。这样,只要能被编译成MSIL的编程语言都可以用来编写ASP.NET应用。
其次,ASP.NET所支持的编程语言是指这种语言的功能全集(而不是子集),所以,ASP.NET中每种编程语言的功能要比ASP中使用的VB script和Java Script更为强大。
增强的性能
在ASP.NET中,页面代码是被编译执行的,它利用提前绑定、即时编译、本地优化和缓存服务来提高性能。当第一次请求一个页面时,cLR对页面程序代码和页面自身进行编译,并在高速缓存cache中保存编译结果的副本。当第二次请求该页面时,就直接使用cache中的结果(无需再次编译)。这就大大提高了页面的处理性能。
类和名空间
ASP.NET包含一整套有用的类和名空间(Namespaces)。名空间被用做一种有组织的机制——一种表示可用于其他程序和应用的程序组件的方法。名空间包含类。和类库一样,名空间可以使Web应用程序的编写变得更加容易。HtmlAnchor、HtmlContrl以及HtmlForm是ASP.NET中的几个类,它们被包含System.web.UI.HtmlControl空间中。
服务器控件
ASP.NET提供了许多功能强大的服务器控件,这大大简化了web页面的创建任务。这些服务器控件提供从显示、日历、表格到用户输入验证等通用功能,它们自动维护其选择状态,并允许服务器端代码访问和调用其属性、方法和事件。因此,服务器控件提供了一个清晰的编程模型,使得Web应用的开发变得简单、容易。
支持web服务
ASP.NET提供了强大的、标准化的web服务支持能力,通过使用Internet标准,可以将一个web服务和其他web服务集成在一起。web服务提供了构建分布式web应用的基本模块。ASP.NET允许使用和创建web服务。
更高的安全性
与ASP相比,在支持常规windows身份验证方法的基础上,ASP.NET还提供了Passport和cookie两种不同类型的登录和身份验证方法。同时,ASP.NET还采用了基于角色的安全模式,为不同角色的用户指定不同的安全授权。另一方面,ASP.NET还使得创建基于页面的身份验证工作变得更为简单。
良好的可伸缩性
在ASP.NET中,允许使用跨服务器会话(Cross - Server Sessions),其会话状态可以被另一台机器或另一个数据库上的其他的进程所维护。随着信息处理和传输流量的增加,可以为系统添加更多的Web服务器。
无Cookie会话
即使在浏览器不允许使用cookie的情况下,ASP.NET仍然能够使用户使用会话状态。与带cookie的会话不同,无cookie会话是通过URL将会话标识(SessionID)传递到ASP.NET页面的。
工作原理
从使用的角度看,ASP.NET的运行过程包含页面请求、分析、编译、组装、页面缓冲五大环节。当客户端通过浏览器请求(Request)页面时,服务器端首先由页面分析器(Parser)对被请求的页面进行分析;再将通过分析的页面内容传递给编译器(Compiler);经过编译器编译的页面内容被传输给组装缓存(Assembly Cache),同时,一些需要较高资源代价的元素可以创建一次后存入内存(Memory);将组装缓存和内存中的内容有机结合后形成一个完整页面(包括数据、编译代码、HTML代码等),完整页面最后被送往输出缓存(Output Cache)。输出缓存中的内容将作为客户端的页面请求结果被送回浏览器。当同一页面被第二次请求时,服务器端将跳过所有中间环节,直接从输出缓存中送出页面请求结果。
语言基础
Response
Response对象是属于Page对象的成员。不用声明便可以直接使用。它的主要功能是将HTTP的信息封装后,从ASP.NET的服务器端响应到用户浏览的网页上,以供用户浏览,其类名称为HttpResponse。Response将用于回应客户浏览器,告诉浏览器回应内容的报头、服务器端的状态信息以及输出指定的内容。
它的主要属性如下
BufferOutput:设定HTTP输出是否要做缓冲处理,预设为True。
Cache:传回目前网页快取的设定。
Charset :设定或取得HTTP的输出字符编码。
Cookies:传回目前请求的Httpcookieco}lection对象的集合。该对象将在本章第二节使用cookie小节中进行详细介绍。
IsCIientconnected:传回客户端是否仍然和服务器连接。
Statuscode:传回或设定输出至客户端浏览器的HTTP状态码,预设是200。
StatusDescription:传回或设定输出至客户端浏览器的HTTP状态说明字符串.预设是OK。
SuppressContent:设定是否将HTTP的内容送至客户端浏览器,若为True则网页将不会传至客户端。
它常用的方法如下
AppendToLog:将自定义的记录信息加到IIs的记录文件中。
AppendHeader:将自定义的标头信息加入到所输出的网页。
BinaryWrite:将一个二进制的字符串写入HTTP输出串流。
Clear:将缓冲区中的内容清除。
CIearHeaders:将缓冲区中所有的页面标头清除。
CIose:关闭客户端的联机。
End:将缓冲区中所有的内容送到客户端然后关闭联机。
Flush:将缓冲区中所有的数据送到客户端。
Redirect:将网页重新导向另一个地址。
Write:将数据输出至客户端。
WriteFile:将一个文件直接输出至客户端。
Request
Request对象也是Page对象的成员之一,在程序中不需声明便可以直接使用。它主要是让服务器取得客户端浏览器的一些数据。Request对象实际上操作system.web名字空间中的HttpRequest类。当用户发出请求执行ASP.NET程序时,CLR会将客户端的请求信息包装在Request对象中。这些请求信息包括请求报头、客户端的请求信息、请求方法、参数名、参数值等。
它的主要属性如下:
AppIicationPath:传回目前正在执行的服务器端的虚拟目录。
Browser:传回有关客户端浏览器的功能信息。
Clientcertificate:传回目前客户端所发出的网页浏览请求的联机ID。
ContentEncoding:传回客户端所支持的字段设定。中文Intemet ExpIorer预设ChineseTraditional(Big5)。
ContentType:传回目前需求的MIME内容类型。
Cookies:传回一个HttpcOOkiecoIIection对象的集合。
FiIes:传回客户端上传的文件集合。
Form:传回有关窗体变量的集合。
HttpMethod:传回目前客户端HTTP数据传输的方式是Get或Post。
IsAuthenticated:传回目前HTTP联机是否有效。
Cookie
Cookie对象是在浏览者访问某些网站时,Web服务器在客户端所写入的一些小文件。这些小文件存放在客户端的内存或磁盘中。
Cookie对象可以记录浏览者的个人信息、浏览器类型、访问该网站的时间、从事过哪些活动等等。在浏览者下次访问该网站时.通过查询Cookie对象中记录的信息.就可以辨认浏览者了。这样,就可以实现状态的管理了。
Response对象和Request对象都包含了一个Cookies属性,该属性继承了HttpCookieColIection。
技术应用
高校教育网站管理具体包括人力资源管理、技术管理和组织管理,而Asp.net技术在管理革新方面更多地反映在技术管理层面。技术管理中的技术可以被定义为高校教育网站开放、生产、传递和服务的一整套理论知识、水平能力、实践诀窍和策略。高校教育网站技术管理过程具体表现在正确地识别哪些技术对网站建设有用并有效,积极地选择相关适用的网站技术,并获取和吸收所选择的网站技术,同时不断开发新技术来获取网站收益和保护网站自有知识和产权,并最后进行相关的技术管理评估以利不断革新。Asp.net技术的出现要求高校教育网站建立符合中国国情的技术管理规范体系,实现技术管理的标准化。
学习指南
《ASPNET2.0入门经典(第4版)》:这本书是“Wrox红皮书”系列之一,旨在帮助初学者了解ASP.NET2.0技术。作者在详细介绍ASP.NET技术的基础之上,自然融合了ASP.NET2.0的新特性,使得读者在学习基础的同时也能够了解新特性。
《圣殿祭司的ASP.NET2.0开发详解》:这本书主要针对具有一定ASP.NET1.x开发经验和数据库基础知识,希望获得技术升级的读者群。全书内容紧紧围绕AS.PNET.20的新特性展开讲解,结合大量实例娓娓道来,能够帮助读者快速掌握这种新技术。
《ASP.NET 2.0高级编程(第4版)》:这本一千多页的书介绍了关于ASP.NET 2.0的所有主题,并配有准确易懂的例子。该书翻译质量不错,语言通俗易懂,没有太多晦涩的词语。
书中包含了大量的截图和代码示例,专门针对每一章节所讲授的知识设计,简单易懂。相对来说,直接看截图和代码要比看枯燥的文字有趣得多。并且示例代码同时使用V.BNET和C#代码编写,充分照顾到了VB.NET程序员和C#程序员。本书的每一节内容,一步一步地讲解该节所要阐述的知识要点,结合代码示例、理论和实际环环相扣。
语言评价
ASP.NET是微软提出的用于创建动态Web内容的一种强大的服务器端技术。ASP技术仅仅是微软在IIS的框架结构上进行的一个扩展,而ASP.NET与ASP相比可以说是一个质的飞跃。
ASP.NET与其底层框架.NET紧密结合,为动态的Web开发技术提供了丰富而强大的类库资源。.NET是微软推出的一个跨操作系统、跨平台的应用体系框架,.NET通过一组标准化的类库抽象了操作系统提供的进程、文件、网络等功能,并附加了丰富的文本处理、加密解密、调试跟踪等功能。由于.NET提供了跨平台的机制,因此随着.NET架构移植到其他操作系统中,在.NET框架上开发的所有应用程序,包括应用ASP.NET技术的Web应用程序,也将一并移植过去而不需要做任何改动。
这对于一贯把程序员封闭在Windows平台上的微软来说,不亚于一场巨大的变革,而程序员也会从微软的这次转变中得到很多益处。另外.NET平台提供了先进的装配件结构和类型系统,并且完全集成了Web Service服务,由于从ASP.NET的页面生成的临时对象也属于.NET的类型系统,因此ASP.NET在性能、安全性、可扩展性方面可以借用.NET平台提供的良好框架。