1、第1章 绪 论1.1 编程体系简编程体系简1.2 ASP.NET 2.0概述概述1.3 校园在线超市系统描述校园在线超市系统描述【本章提要本章提要】随着Internet及其相关技术的发展,Web应用已经成为目前企业应用最广泛的一种形式。ASP.NET自发布以来,已成为Web应用开发的主流技术。ASP.NET是Web应用程序的开发平台,是微软所打造的.NET开发平台的重要重要组成部分。2002年,微软发布了ASP.NET 1.0,2003年,将之升级为1.1版本,2005年,微软又发布了.NET Framework 2.0正式版本,ASP.NET也升级为2.0版本。ASP.NET 2.0技术的推
2、出使.NET技术增加了更多方便、实用的新特性,使Web应用开发人员可以更加快捷方便地实现动态网站的开发与维护。本章首先介绍了软件编程体系结构C/S和B/S;然后介绍了ASP.NET技术的发展历史及.NET框架体系,讨论了ASP.NET 2.0的优势;最后重点介绍了本书使用的案例“校园在线超市”系统,通过系统演示与分析使读者对ASP.NET技术产生一种直观、形象的印象,为下一步学习作好铺垫。【学习目标学习目标】理解C/S和B/S的编程模式。了解.NET系统框架。理解案例系统的基本需求和功能组成。目前,在应用开发领域,软件开发体系一般可以分成基于浏览器的B/S(Brower/Server)架构和基
3、于客户端的C/S(Client/Server)架构,如图1-1所示。1.1 编程体系简介编程体系简介图1-1 编程体系架构1.1.1 客户端客户端/服务器服务器(Client/Server,C/S)C/S体系结构是基于资源不对等,为实现共享而提出的,是20世纪90年代成熟起来的技术。C/S体系结构定义了客户端如何与服务器相连,以实现数据和应用分布到多个处理机上。C/S体系结构由服务器和客户端应用程序两个主要部分组成。(1)服务器负责有效地管理系统的资源,其任务集中于:服务器数据安全性的要求。服务器访问并发性的控制。服务器前端客户应用程序的全局数据完整性规则。服务器数据的备份与恢复。(2)客户端
4、应用程序的主要任务是:提供用户与数据库交互的界面。向服务器提交用户请求,并接收来自服务器的信息。利用客户端应用程序对存在于客户端的数据执行应用逻辑要求。C/S体系结构将应用一分为二,服务器(后台)负责数据管理,客户机(前台)完成与用户的交互任务。服务器为多个客户应用程序管理数据,而客户程序发送、请求和分析从服务器接收的数据,这是一种“胖客户机(fat client)”、“瘦服务器(thin server)”的体系结构。C/S体系结构具有强大的数据操作和事务处理能力,模型思想简单,易于理解和接受。但随着企业规模的日益扩大,软件的复杂程度不断提高,C/S体系结构逐渐暴露了以下缺点:开发成本较高。C
5、/S体系结构对客户端软/硬件配置要求较高,尤其是随着软件的不断升级,对硬件要求不断提高,增加了整个系统的成本,且客户端变得越来越臃肿。客户端程序设计复杂。采用C/S体系结构进行软件开发,大部分工作量放在客户端的程序设计上,客户端显得十分庞大。信息内容和形式单一。因为传统应用一般为事务处理,界面基本遵循数据库的字段解释,开发之初就已确定,而且不能随时截取办公信息和档案等外部信息,所以用户获得的只是单纯的字符和数字,既枯燥又死板。用户界面风格不一,使用繁杂,不利于推广使用。软件移植困难。采用C/S体系结构的软件要升级,开发人员必须到现场为客户机升级,每个客户机上的软件都需要维护。对软件的一个小小的
6、改动(如只改动一个变量),每一个客户端都必须更新。新技术不能轻易应用。这是因为一个软件平台及开发工具一旦选定,就不可能轻易更改。1.1.2 浏览器浏览器/服务器服务器(Browser/Server,B/S)B/S的具体结构为:浏览器/Web服务器。采用B/S结构的计算机应用系统的基本框架如图1-2所示。图1-2 B/S模式结构B/S体系结构主要是利用不断成熟的WWW浏览器技术,结合浏览器的多种脚本语言,用通用浏览器实现原来需要复杂的专用软件才能实现的强大功能,并节约了开发成本。从某种程度上来说,B/S结构是一种全新的软件体系结构。在B/S结构中,除了数据库服务器外,应用程序以网页形式存放于We
7、b服务器上,用户运行某个应用程序时,只需在客户端上的浏览器中键入相应的网址(URL)即可。系统会自动调用Web服务器上的应用程序,并对数据库进行操作,以完成相应的数据处理工作,最后将结果通过浏览器显示给用户。可以说,在B/S模式的计算机应用系统中,应用(程序)在一定程度上具有集中特征。基于B/S体系结构的软件,系统安装、修改和维护全在服务器端解决。用户在使用系统时,仅仅需要一个浏览器就可运行全部的模块,真正达到了“零客户端”的功能,很容易在运行时自动升级。B/S体系结构还提供了异种机、异种网、异种应用服务的联机、联网、统一服务的最现实的开放性基础。B/S结构出现之前,管理信息系统的功能覆盖范围
8、主要是组织内部。B/S结构的“零客户端”方式使组织的供应商和客户(这些供应商和客户有可能是潜在的,也就是说可能是事先未知的)的计算机方便地成为管理信息系统的客户端,进而在限定的功能范围内查询组织相关信息,完成与组织的各种业务往来的数据交换和处理工作,扩大了组织计算机应用系统的功能覆盖范围,可以更加充分地利用网络上的各种资源,同时应用程序维护的工作量也大大减少。另外,B/S结构的计算机应用系统与Internet的结合也使新近提出的一些新的企业计算机应用(如电子商务、客户关系管理)的实现成为可能。与C/S体系结构相比,B/S体系结构也有许多不足之处,如:B/S体系结构缺乏对动态页面的支持能力,没有
9、集成有效的数据库处理功能。B/S体系结构的系统扩展能力差,安全性难以控制。采用B/S体系结构的应用系统,在数据查询等响应速度上,要远远地低于C/S体系结构。B/S体系结构的数据提交一般以页面为单位,数据的动态交互性不强,不利于在线事务处理应用。综上所述,虽然B/S结构的计算机应用系统具有诸多优越性,但由于C/S结构的成熟性且C/S结构的计算机应用系统网络负载较小,因此,在未来一段时间内,将是B/S结构和C/S结构共存的情况。很显然,计算机应用系统计算模式的发展趋势是向B/S结构逐步转变。ASP.NET 2.0是微软继ASP.NET 1.1之后推出的新一代企业级应用平台,它提供了构建企业级应用所
10、需的服务、编程模型和软件基础结构。虽然ASP.NET的语法基本上与其前辈ASP(Active Server Page)兼容,但是ASP.NET是一个全新的编程框架,旨在用于快速开发Web应用程序。作为Microsoft.Net平台的一部分,ASP.NET提供了一种基于组件的、可扩展的且易于使用的方法,用于扩建、部署和运行供所有在浏览器或移动设备中使用的Web应用。这种全新技术架构使每一个人的网络生活都变得更简单。1.2 ASP.NET 2.0概述1.2.1 .NET平台体系结构平台体系结构微软在.NET框架中使用很多全新的技术,带来许多深层次的创新。框架给Internet构筑了一个理想的工作环
11、境。在这个环境中,用户能够在任何地方、任何时间,使用任何设备从Internet网中获得所需要的信息,而不需要知道这些信息存放在什么地方以及获得这些信息的细节。.NET框架的体系结构包括五大部分,它们是:程序设计语言及公共语言规范(CLS)。应用程序平台(ASP.NET和Windows应用程序等)。ADO.NET及类库。公共语言运行库(CLR)。程序开发环境(Visual Studio.NET)。.NET框架的结构如图1-3所示。图1-3 .NET体系结构1.NET框架使用的语言框架使用的语言.NET的一大优点是在.NET框架上可以运行多种语言。.NET框架中的CLS实际上是一种语言规范。由于.
12、NET框架支持多种语言,并且要在不同的语言对象间进行交互,因此就要求这些语言必须遵守一些共同的规则。公共语言规范(Common Language Specification,CLS)定义了这些语言的共同规范,包括数据类型、语言构造等。这是第三方语言和框架集成的基础。凡是符合CLS规范的语言都可以在.NET框架上运行,目前支持C#、VB.NET、C+.NET、J#.NET、Jscript.NET等。预计还将有20多种语言可以运行在.NET框架上。由于多种语言都运行在.NET框架上,因此它们的功能都基本相同,只存在语法上的区别。程序开发者可以选择自己习惯和喜好的语言进行开发。VB.NET和VC.N
13、ET与原来的VB、VC相比已经有很多地方不兼容。VB.NET和VB相比变化更大,VB.NET是一种完全面向对象的语言,而VB只是基于面向对象的语言。Visual J#是.NET框架2.0新增加的语言,供原来使用Java语言的程序员转向使用.NET框架编写应用程序。Visual C#是为.Net框架“量体裁衣”开发出来的语言,非常简练和安全,最适合于在.NET框架中使用。本书中所有的示例都是采用C#编写的。各种语言经过编译后,并不直接产生CPU可执行的代码,而是先转变成一种中间语言(Intermediate Language,简称IL或MSIL),执行时再由公共语言运行库载入内存,通过实时解释将
14、其转化为CPU可执行代码。为什么要设置中间语言呢?设置中间语言是为了跨平台的需要。源程序经过编译转换成中间语言,各类平台只要装上不同的转换引擎,就可以将其转换为本CPU所需的代码。由于中间语言类似于汇编语言,与二进制代码非常接近,因此转换的速度也很快。2基础类库基础类库.NET框架的另一个主要组成部分是基础类库,它提供了一个统一的面向对象的、层次化的、可扩展的编程接口。在基础类库中有数千个可以重用的类,各种不同的开发语言都可以用它来开发传统的命令行程序或图形用户界面应用程序。.NET框架中的类被拆分为命名空间(NameSpace)。命名空间是类库的逻辑分区,它所采用的命名空间呈层次结构,即命名
15、空间下面又可以再分成子命名空间。每个命名空间都包含一组按功能划分的相关的类。这样,一个大型的.NET库就变得易于理解和易于使用,如:所有微软公司提供的类都以System或Microsoft命名空间开头。有关网络协议和简单的编程接口的类放在System.Net命名空间中。有关文件I/O和内存I/O的类放在System.IO命名空间中。基于Windows应用程序的用户界面的类放在System.Windows.Forms命名空间中。有关Web服务器与浏览器交互以及Web服务的类都放入System.Web命名空间中。所有用于处理XML、XML架构、XSL/T转换、Xpath表达式的类都放入System
16、.Xml及其子命名空间中。使用时,开发者只需在自己的应用中添加所需的基础类库的引用,就可以使用这个类库中的所有方法和属性了。3公共语言运行时公共语言运行时Microsoft.NET给开发人员带来了一种全新的开发框架。公共语言运行时(Common Language Runtime,CLR)处于这个框架的最低层,是.NET框架的核心,它为多种语言提供了一种统一的运行环境,包括程序运行时的内存管理、垃圾自动回收、线程管理和远程处理以及其他系统服务。同时,它还能监视程序的运行,进行严格的安全检查工作,以确保程序运行的安全、可靠以及其他形式的代码的准确性。在ASP.NET 2.0中,CLR又增加了用户认
17、证、角色授权以及个性化服务。它不仅提供了多种软件服务,同时也为以往的软件提供了支持。托管和非托管代码之间的互操作性使开发人员能够继续使用原来开发的COM、ActiveX控件和DLL动态链接库等。1.2.2 ASP.NET的优势的优势ASP.NET是建立在公共语言运行时(CLR)上的应用程序框架。它是.NET框架的一部分,可以使用任何.NET兼容的语言来编写ASP.NET应用程序。使用VB.NET、C#、J#等语言编写ASP.NET页面并进行编译可以提供比脚本语言更为出色的性能表现。建立页面时,使用ASP.NET服务端控件来建立常用的UI元素,并对它们编程来完成一定的任务。这些控件允许用户使用内
18、置可重用的组件和自定义组件来快速建立Web页面,使代码简单化。自Microsoft推出.NET开发平台以来,ASP.NET在Web应用程序开发方面迅速得到了广泛的应用。ASP.NET与微软以往的服务端开发技术相比较,其优越性主要表现在以下几个方面:更高的开发效率。2002年2月,微软发布了VS.NET集成开发环境,这是微软极力推荐的创建.NET应用程序的软件开发工具集,其设计目标的核心就是将应用程序代码量减少70%左右。VS.NET让开发者体会到微软在开发语言上进行的革命性的改变,它将开发者所需的工具紧密集成到了一个单一的环境上,这些都使得VS.NET提高了Web应用程序的开发效率。更强的应用
19、功能。ASP.NET不同于以往的ASP,ASP.NET可以使用的语言有很大的选择余地,且功能完善,可以充分利用有巨大潜力的.NET Framework。ASP.NET可以帮助用户利用由.NET Framework支持的任何一种编程语言创建运行速度更快、功能更强大的Web应用程序。更快的执行速度。ASP.NET比传统ASP的运行速度快,ASP是解释执行的,ASP.NET是编译执行的。ASP.NET可以自动检测变化,根据需要动态编译文件,并且保存编译结果,以便后续请求的再次使用。动态编译保证了应用程序总是最新的,编译后执行的操作会使其运行速度更快。更容易配置管理。ASP.NET提供了一个分层配置结
20、构,该结构使其能够在整个应用程序、站点或计算机中定义和使用可扩展的配置数据。利用文本格式的配置文件,可以随意更改服务器配置,而不需要进入IIS的管理页。更高的安全性。ASP.NET应用程序借助内置的Windows身份验证和基于每个应用程序的配置,保证了ASP.NET应用程序的安全性。1.3.1 系统概述系统概述校园在线超市是为在校学生提供在线商品交易的平台。随着电子商务的蓬勃发展,人们消费观念的转变,网上交易已逐渐为广大消费者所接受,校园在线超市是电子商务网站的典型应用。我们将这个项目解决方案命名为SuperMarket。1.3 校园在线超市系统描述校园在线超市系统描述1.3.2 系统功能系统
21、功能校园在线超市电子商务站点的最终用户分为匿名用户、注册会员和管理员,因此,站点的设计必须围绕着他们进行开发,以满足各类用户的需求。该站点主要实现如下功能:匿名用户可以通过本站点了解到各类商品的信息,并可通过在线注册成为会员。注册会员可以进行商品信息发布和在线购物,并享受相应折扣。管理员可以管理和维护站点的运行情况,并进行会员管理等。图1-4 校园在线超市系统功能1.3.3 开发环境开发环境校园在线超市是在Microsoft Visual Studio 2005环境下开发的,采用Visual C#.NET语言,后台数据库采用Microsoft SQL Server 2005。1.3.4 数据字典数据字典SuperMarket项目使用的数据库名为SuperMarketDB,主要用于存储业务数据。表1-1表1-9给出了该数据库的表定义。表1-1 T_Admin(管理员信息表)表1-2 T_VipType(会员类别表)表1-3 T_Vip(会员信息表)表1-4 T_WareType(商品类别表)表1-5 T_Ware(商品信息表)表1-6 T_ShoppingCar(购物车信息表)表1-7 T_ShoppingInfo(购物信息表)表1-8 T_Order(定单信息表)续表表1-9 T_WareAdjust(商品评价表)