内 容 简 介本书主要介绍了在Windows 2000操作系统上使用ASP.NET创建动态Web网页的相关技术,内容涵盖了ASP.NET程序的运行环境需求、C#语法基础、ASP.NET扩展的HTML控件和Web内部控件的使用、ASP.NET的常用内置对象、.NET的命名空间、在ASP.NET中实现事件驱动、在ASP.NET程序中使用Web增强控件和自定义控件、ADO.NET和使用ADO.NET进行数据库访问、在ASP.NET中应用XML、对ASP. NET进行配置和优化,以及在ASP.NET中实现安全和Web服务的方法。本书附录部分还为学习网络程序设计课程的读者提供了一个课程设计题目—— 设计和实现一个完整网站与后台管理系统。本书适合作为高等院校计算机与信息技术及相关专业的教材,也可供在.NET框架下开发Web应用程序的程序员参考。本书所有代码可从http://www.tupwk.com.cn/downpage免费下载。
前 言 ASP.NET作为.NET Framework的一部分,具有.NET Framework所拥有的一切优势。首先,在.NET Framework中使用高级语言(例如Visual Basic.NET,C#)编写程序时,并不是把这些语言所写的代码直接编译成机器代码,而是把程序编译成为中间语言(例如MS中间语言)。注意,中间语言并不是一种可以直接执行的机器代码,与高级语言编写的代码相比,它的可读性很差,但是进行了一系列的优化。为了执行中间语言,就需要一个执行环境CLR。CLR在.NET Framework中的位置十分重要,可以说是.NET Framework的基础。CLR用JIT(Just-In-Time)编译器把中间语言代码编译成可以执行的代码,并对程序进行最后的、与机器相匹配的优化,使得程序可以在宿主计算机上尽可能高效率地运行。这些经过优化的二进制代码会保存在缓存中,直到源代码改变为止。 从名字上看,ASP.NET好像是ASP的一个新版本,但是从本质上讲,ASP.NET革命性地改变了Web程序设计的设计方式。首先,ASP使得网站的各种代码难于管理,因此面对大量的HTML代码和VBScript,JavaScript代码混合在一起的程序,程序员往往是一筹莫展,当需要改动程序时,宁愿写新的代码,也不愿意去改原来的程序,因为原来程序的模块化和可重用性都太低;而ASP.NET则可以使用C#这样的面向对象的语言编写程序,并可以做到代码分离。第二,由于ASP只能使用VBScript,JavaScript这样的脚本语言,使很多功能都不可能轻松地实现;而ASP.NET则提供了很多功能强大的Web控件,使用事件驱动的方式进行程序设计。第三,ASP程序是解释执行的,而ASP.NET程序是编译执行的,这导致ASP程序在执行效率上要大大低于实现同样功能的ASP.NET程序。为了改善网络应用程序的效率,随着.NET的发布,学习如何在.NET框架中使用ASP.NET成为很多Web程序设计人员的首选。 1. 本书内容介绍 第1章首先介绍了HTTP协议、静态网页和动态网页等Web基础知识,并简单介绍了什么是ASP.NET,ASP.NET的发展历史、ASP.NET与ASP的比较,以及ASP.NET的工作原理;然后讲解了运行ASP.NET的配置需求;最后编写了本书的第一个ASP.NET程序,这是一个常见的Hello World程序,让读者对ASP.NET程序有一个直观的认识,了解如何加入ASP.NET代码到一个HTML网页中去。通过这些讲解,读者可以尽快地掌握一些关键的基础知识,对ASP.NET有一个概念性的了解,为后面进行ASP.NET程序设计打下基础。 第2章主要介绍了C#的语法基础。在进行ASP.NET程序设计之前,首先要选择一种ASP.NET编程语言。C#是基于C和C++创建的一种新的面向对象的语言,对面向对象程序设计提供全方位的支持。因此,使用C#可以完全实现类的创建,并提供封装性、多态性和继承性。本章介绍了C#的初步知识,包括为什么选择C#,常量、变量和表达式,分支和循环,以及过程和函数等基本语法。 第3章讲解了由ASP.NET扩展了的HTML控件和Web内部控件,并着重区分Web表单和一般表单。本章讲述的控件在ASP.NET程序设计过程中发挥了重要作用。针对早期的ASP版本,ASP.NET所使用的控件都是在服务器端运行的,并且在实现上比ASP要方便得多。 第4章介绍了ASP.NET中常用的内置对象,包括Response对象、Request对象、Application对象、Session对象、Server对象,并讲解了环境变量的使用和Cookie的使用。所有的这些对象在ASP中都存在,ASP.NET也保留了这些内置对象。Cookie是在用户机器的硬盘中保存的小文本,用于存储一些需要保存的数据,这样可以节省服务器端的资源。本章中介绍了Cookie的基础知识、设置和检索Cookie、检查用户的浏览器是否禁用了Cookie。读者通过第3章和第4章的学习,可以开始进行基本的ASP.NET程序设计,并可以根据本书配备的例子来深入了解ASP.NET程序设计方法。 第5章介绍了ASP.NET的高级编程方法,重点讲解了命名空间的概念、类库以及.NET中常用类库的使用方法;使用Page类,以及使用事件驱动的方式进行程序设计,同时讲解了ASP.NET中常用的Page事件。 第6章介绍了其他的Web控件,包括Web增强控件和自定义控件。增强的Web控件有日历控件、广告控件以及6个验证控件,这些控件是ASP.NET新增加的控件,为程序设计提供了极大的方便。另外,使用自定义控件可以获得最大的程序设计自由,并且可以把代码隐藏在dll文件中。 第7章介绍了使用ADO.NET进行数据库访问的方法。主要讲解了ADO.NET相对于ADO的优势、ADO.NET的使用方法,以及在数据库应用中常用的Web控件(DataGrid,DataList,Repeater)。与ADO相比,它更容易实现数据共享,提高了标准化程度并使可编程性大大增强。同时,从效率上讲,使用ADO.NET将大大提高程序性能。 第8章介绍了如何在ASP.NET中使用XML。XML是Extensible Markup Language(可扩展标记语言)的缩写,它提供了一种独立于应用程序的格式来保存数据,并可以通过这种格式很容易地在不同应用程序之间实现数据共享。现在,.NET也把XML作为.NET应用程序传递数据的一种主要的方法。本章主要讲解了什么是XML,XML的格式以及如何在ASP.NET中使用XML存储和管理数据。 第9章介绍了ASP.NET的配置和优化方法。ASP.NET的所有配置文件都是XML格式的文件,因此采用这种方式进行ASP.NET配置有方便和灵活的优点。另外,所有的ASP.NET配置都是可以随时更改的。也就是说,在一个应用程序的运行期间,可以随时增加和删除ASP.NET配置文件中的项目,在修改成功后,可以立即激活使用,并不会影响服务器的效率。这与有些系统当配置发生变化时需要服务器重新启动才能使新配置生效相比较有非常大的优势。本章主要讲解了两个config文件(machine.config和web.config)的编写方法以及作用,并讲解了如何使用global.asax。另外,为了能够让ASP.NET应用程序以更快更优的方式运行,除了使用一定的程序设计技巧,还可以采用一些选项来提高应用程序的执行速度。本章重点讲解了使用缓存、跟踪和监视ASP.NET进程的方法。 第10章介绍了ASP.NET中如何实现安全性。安全性是对用户的身份进行验证,并对通过验证的用户按照对其授予的访问权限,来确定此用户是否可以访问某种资源的一个过程。本章重点讲解了实现身份验证和授权的几种方法,尤其是基于Forms的身份验证方法具有界面美观、实现方便的特点。除此之外,还简单介绍了如何使用SSL进行加密。 第11章介绍了如何在ASP.NET环境中实现Web Service。其中包括创建Web Service的方法、使用Web Service的方法和在网上寻找Web Service的方法。 附录为使用本书作为教材的网络程序设计课程提供了一个完整的课程设计题目。此课程设计要求学生分组并分工合作完成一个完整的网站。题目中除了包含网站的各个栏目的设计实现之外,还包括后台管理功能的设计和实现。 2. 本书适用读者 本书适合作为高等院校计算机与信息技术及相关专业的教材,也适用于在.NET框架下开发Web程序的设计人员参考使用。对于希望从基本概念开始学习的Web程序爱好者来说,本书也有详细的例子可以边学习边实践。 3. 使用本书的要求 运行本书中的所有例子需要建立下面的环境: (1) Windows NT/2000/XP操作系统。 (2) IIS 5.0或者5.0以上的版本。 (3) Internet Explorer 6.0或者更高版本。 (4) Microsoft SQL Server 2000数据库。 (5) 在服务器中创建一个文件夹,原样建立本书示例程序。 (6) 设置IIS中默认Web站点的主目录属性页,将它的本地路径设置为刚刚建立的保存了所有例子程序的目录。 (7) 启动Web浏览器,在“地址”栏中输入http://localhost/后面加入要运行的例子程序的路径和文件名。 本书由金雪云编写。在编写过程中受到来自各方面人士的帮助和支持,在这里表示衷心的感谢。由于时间仓促,本书不足之处敬请各位读者批评指正。 金雪云