采苓
基于ASP.NET的电子商务网站构建技术 【摘 要】ASP.NET是现在最新最热门的电子商务网站构建技术之一,与微软的SQL Server数据库集成有很好的表现。文章主要探讨了ASP.NET和SQL Server的相关技术,及优化网站性能的技巧。 【关键词】电子商务网站;ASP.NET;MS SQL Server;会话;连接池 【作者简介】卢莉,供职于华南师范大学增城学院。 随着计算机网络的普及,计算机网络应用日趋丰富,网络体现出来的作用越来越大,信息产业部副部长奚国华在2005年月28日第六届中国(北京)移动通信国际论坛的开幕式上透露,截至目前,中国互联网上网人数已经超过1亿,人数仅次于美国。越来越多的人把上网作为自己获取信息的首要途径。利用Internet足不出户就可以获取所需要的信息,实现购物、炒股、旅游和学习等。目前在网上进行贸易的企业和个人日益增多,除了网上购物,还有网上商品销售、网上拍卖、网上货币支付等。面对这么大的市场,中国的公司和企业要更好的展示企业形象,宣传企业,推介产品,就要建立电子商务网站,开展电子商务活动。利用网站可以提高知名度,带来无限商机。 一、电子商务网站的基本模块 电子商务缩写为EC(Electronic-Commerce),也有人称为电子贸易,它是指采用网络技术实现数据的交换,从而完成整个的商业交易过程。现在随着INTERNET技术的日益成熟,人们所探讨的电子商务主要是以INTERNET来完成。这里所指的电子商务网站是基于INTERNET的交易类网站。国内这类网站中最著名的有淘宝、当当网等。电子商务网站基于业务流程及客户服务考虑,可由以下五个基本模块组成:会员管理模块、商品管理模块、订单处理模块、新闻发布模块、客户服务模块。 根据上面提到的五个基本模块,网站可以设置如下栏目:会员登陆、会员注册、商品展示、购物车、结算中心、客服中心、留言簿(或交流区)等。 二、构建电子商务网站的技术方案 (一)使用ASP.NET工具 1.ASP.NET简介 ASP.NET 是微软公司推出的一种Internet编程技术,它采用效率较高的、面向对象的方法来创建动态Web应用程序。在原来的ASP技术中,服务器端代码和客户端HTML混合在一起,常常导致页面的代码冗长而复杂,程序的逻辑难以理解。ASP.NET是一种独立于浏览器的编程模型,可以在最新版本的IE、NetscapeNavigator以及诸如Opera等被广泛使用的浏览器上运行。 ASP.NET是一种建立在通用语言上的程序构架。一个已编译的、基于 .NET 的环境,把基于通用语言的程序在服务器上运行。将程序在服务器端首次运行时进行编译,比ASP即时解释程序速度上要快很多。微软公司发布了4种与 .NET 兼容的语言(包括 Visual Basic .NET、C#.NET、Visual C++.NET和 JScript .NET.)创作应用程序。 2.常用到的ASP.NET内置对象 Application对象:对整个ASP.NET执行环境而言,一个虚拟目录下的所有ASP.NET程序构成了一个Web应用程序。在多任务执行的情况下,来自四面八方的众多用户可能执行同一个Web应用程序,这变依赖Application对象。常用到的场合:聊天室、网页计数器等。 Request对象:获取从客户浏览器传给服务器端的数据,如接收来自表单的数据。 Response对象:Request对象与Response对象就像一般程序语言里的Input及Output命令,若要让服务器端的ASP.NET程序能够接收来自客户端的信息,须用Request对象;若想将服务器端的信息传递给客户端,须用Response对象。 Session对象:Session对象和Application对象极为类似,但Session对象的信息只适用于同一位用户,换句话说,一个Session对象只属于一位用户。常用到的场合:虚拟购物车、用户登陆网站时用户名的临时存储等。 (二)使用MS SQL Server 2000数据库 大多企业、组织以及政府部门的电子数据都保存在各种数据库中,他们用这些数据库保存一些个人资料,比如员工薪水、个人资料等等。有些数据库服务器还掌握着敏感的金融数据。包括交易记录、商业事务和账号数据等,应该保护起来防止竞争者和其他非法者获取的资料。因此,防止数据被恶意或非恶意的破坏或一些保密性文件被他人非法窃取及非本企业人员非法使用成为至关重要的问题,使用微软的SQL Server能有效的保障数据的安全性。 (三)对数据库的操作 电子商务网站设计时不可避免对数据库的考虑,因为几乎每一种商用应用程序都依赖于某种数据存储。数据库可以为网站提供不同层次的必要的数据和信息,包括前台网页的访问和后台数据的管理。 创建ASP.NET应用程序时,同样需要连接到数据库以读取或操纵数据。使用ADO.NET可以通过多种方式轻松地访问数据库并操纵数据。ADO.NET为ASP页面提供了一组功能强大的数据处理工具,无论使用何种数据库,首先要与之相连。使用ADO.NET可以以两种方式连接到数据库,本例是连接到数据库Microsoft SQL Server,则使用SQLConnection对象。如果要连接的是其他类型的数据库,如Oracle、Access等,则需要使用OleDbConnection对象。这里只探讨前一种连接的方法。 要使用数据库,还必须配合结构化查询语言(SQL)。SQL是一种标准化查询语言,用于读取和操作存储在数据库中的数据。常通过它对数据库执行四种操作:从表中选择记录(Select)、向表中插入(Insert)、更新(Update)以及删除记录(Delete)。 以下是访问数据库时的一些实例,假设使用的数据库是MS SQL Server中自带的Northwind数据库。 1.数据库的连接 <%@ Import Namespace=“System.Data”%> <%@ Import NameSpace=“System.Data.SqlClient”%> <script laguage=“VB” runat=“server”> sub page_load(source as Object,e as EventArgs) Dim myConnection As SqlConnection Dim myCommand As SqlCommand Dim mySQL as string myConnection = New SqlConnection( “server=localhost;database=Northwind;uid=sa;pwd= ”) mySQL=“select * from Customers” myCommand=New SQLCommand(mySQL,MyConnection) Connection.Open( ) Dim DS As SQLDataReader=MyCommand.ExectuteReader( ) Connection.Close( ) End sub </script> 2.数据的查询 将上述例中mySQL等式右边的查询语句换成相应的语句就行了。 3.数据的添加 假设数据库的为MSSQL中自带的Northwind。 把上述例中mySQL=“select * from Customers”那行开始的语句换成下面的语句就行了。 mySQL=”Insert into Customers (CustomerID,Company?鄄Name,ContactName,Country)”& “ values (‘ACCON’,’Worl?鄄droad’,’Ruby’,’China’)myCommand = New SqlCommand( mySQL, myConnection ) myCommand.ExecuteNonQuery( ) End sub </script> 将上述中mySQL等式右边的查询语句换成相应的SQL语句就可以实现数据的更新和删除了。 三、网站性能优化技巧 (一)页面性能优化———会话(Session)状态的恰当选择 HTTP协议是一种无状态的通信协议,无法记录和识别来自不同客户端的请求,但在实际应用中系统却要维护来自客户端的不同请求之间的会话状态信息。ASP.NET通过将会话状态信息存储在进程、状态服务器或SQL Server数据库中来解决这个问题。 将会话状态信息保存在WEB服务器的内存中具有最佳的性能,速度很快,但是却缺乏会话状态信息跨越多个服务器的能力。若要在多个WEB服务器之间维护会话信息,可以使用状态服务器进行存储,这种方式由于可以将应用程序部署到多台服务器上而提高了系统的伸缩性和可靠性,但是以降低性能为代价。对于极其重要的会话信息,需要使用SQL Server存储方式,从而避免丢失重要的会话信息,但由此产生的工作负载比前两者大得多。 若不考虑状态信息的保留和多个服务器共享,应尽量选择保存在服务器的进程中,从而得到最佳的性能。 会话状态信息的存储方式通过web.config文件选择,相关代码如下: <sessionState Mode=”InProc/StateServer/SqlServer” //存储方式由此行选择 StateConnectionString=”tcpip=127.0.0.1:42424” …… timeout=”20”/> (二)数据库访问性能优化———连接池 用TCP来连接应用程序与数据库是一件很费时的事情。访问数据库资源需要创建连接、打开连接和关闭连接几个操作,这些过程需要多次与数据库交换信息以通过身份验证,比较耗费服务器资源。微软的开发者可以通过用连接池(Con?鄄nection Pool)来反复的使用数据库的连接。比起每次请求都用TCP来连一次数据库,连接池只有在不存在有效的连接时才新建一个TCP连接。原理如下:当第一个连接请求到来时创建连接池;连接池的建立由数据库连接的连接字符串来决定。每一个连接池都与一个不同的连接字符串相关。当一个新的连接请求到来时如果连接字符串和连接池使用的字符串相同,就从连接池取出一个连接;如果不相同,就新建一个连接池。 当关闭一个连接的时候,它会被放到池中,它仍然会保持与数据库的连接,这样就可以减少与数据库的TCP连接次数。当连接池已经达到它的最大连接数目时,有新的连接请求到来时,新的连接请求将放置到连接队列中。当有连接释放给连接池时,连接池将新释放的连接分配给在队列中排队的连接请求。你可以调用close和dispose将连接归还给连接池。 1.允许连接池 对于.NET应用程序而言,默认为允许连接池。当然,你可以在SQLConnection对象的连接字符串中加进Pooling=true;确保你的应用程序允许连接池的使用。 2.禁止连接池 ADO.NET默认为允许数据库连接池,如果你希望禁止连接池,可以使用如下的方式: 使用SQLConnection对象时,在连接字符串中加入:Pool?鄄ing=False。 优化网站性能的还有很多,比如对数据进行分页、使用ASP.NET缓存API等。作一次小的性能优化,也许每次请求只能提高一微秒,但是如果每天的请求量很大的话,那么应用程序就有很显著的性能提升。要构建一个性能良好的应用程序,需要程序员花时间去研究和改进。而非一朝一夕之功。 四、结语 要构建完整的一个电子商务网站涉及到的技术很多,比如网上支付的安全技术。在设计过程还需要考虑企业或公司的业务需要和内部信息化程度等等。总之电子商务网站的构建,只有通过自己的实践,才能找到最有帮助的技巧。软件需求说明书(GB856T——88)1引言 21.1编写目的 21.2背景 21.3定义 21.4参考资料 22任务概述 22.1目标 22.2用户的特点 32.3假定和约束 33需求规定 33.1对功能的规定 33.2对性能的规定 33.2.1精度 33.2.2时间特性要求 33.2.3灵活性 43.3输人输出要求 43.4数据管理能力要求 43.5故障处理要求 43.6其他专门要求 54运行环境规定 54.1设备 54.2支持软件 54.3接口 54.4控制 5 软件需求说明书的编写提示1引言1.1编写目的说明编写这份软件需求说明书的目的,指出预期的读者。1.2背景说明:a. 待开发的软件系统的名称;b. 本项目的任务提出者、开发者、用户及实现该软件的计算中心或计算机网络;c. 该软件系统同其他系统或其他机构的基本的相互来往关系。 1.3定义列出本文件中用到的专门术语的定义和外文首字母组词的原词组。1.4参考资料列出用得着的参考资料,如:a. 本项目的经核准的计划任务书或合同、上级机关的批文;b. 属于本项目的其他已发表的文件;c. 本文件中各处引用的文件、资料、包括所要用到的软件开发标准。 列出这些文件资料的标题、文件编号、发表日期和出版单位,说明能够得到这些文件资料的来源。2任务概述2.1目标叙述该项软件开发的意图、应用目标、作用范围以及其他应向读者说明的有关该软件开发的背景材料。解释被开发软件与其他有关软件之间的关系。如果本软件产品是一项独立的软件,而且全部内容自含,则说明这一点。如果所定义的产品是一个更大的系统的一个组成部分,则应说明本产品与该系统中其他各组成部分之间的关系,为此可使用一张方框图来说明该系统的组成和本产品同其他各部分的联系和接口。|2.2用户的特点列出本软件的最终用户的特点,充分说明操作人员、维护人员的教育水平和技术专长,以及本软件的预期使甩频度。这些是软件设计工作的重要约束2.3假定和约束列出进行本软件开发工作的假定和约束,例如经费限制、开发期限等。3需求规定 3.1对功能的规定用列表的方式(例如IPO表即输入、处理、输出表的形式),逐项定量和定性地叙述对软件所提出的功能要求,说明输入什么量、经怎样的处理、得到什么输出,说明软件应支持的终端数和应支持的并行操作的用户数。3.2对性能的规定3.2.1精度说明对该软件的输入、输出数据精度的要求,可能包括传输过程中的精度。3.2.2时间特性要求说明对于该软件的时间特性要求,如对:a. 响应时间;b. 更新处理时间;c. 数据的转换和传送时间;d. 解题时间;等的要求。3.2.3灵活性说明对该软件的灵活性的要求,即当需求发生某些变化时,该软件对这些变化的适应能力,如:a. 操作方式上的变化;b. 运行环境的变化;c. 同其他软件的接口的变化;d. 精度和有效时限的变化;e. 计划的变化或改进。对于为了提供这些灵活性而进行的专门设计的部分应该加以标明。3.3输人输出要求解释各输入输出数据类型,并逐项说明其媒体、格式、数值范围、精度等。对软件的数据输出及必须标明的控制输出量进行解释并举例,包括对硬拷贝报告(正常结果输出、状态输出及异常输出)以及图形或显示报告的描述。3.4数据管理能力要求说明需要管理的文卷和记录的个数、表和文卷的大小规模,要按可预见的增长对数据及其分量的存储要求作出估算。3.5故障处理要求列出可能的软件、硬件故障以及对各项性能而言所产生的后果和对故障处理的要求。3.6其他专门要求如用户单位对安全保密的要求,对使用方便的要求,对可维护性、可补充性、易读性、可靠性、运行环境可转换性的特殊要求等。4运行环境规定4.1设备列出运行该软件所需要的硬设备。说明其中的新型设备及其专门功能,包括:a. 处理器型号及内存容量;b. 外存容量、联机或脱机、媒体及其存储格式,设备的型号及数量;c. 输入及输出设备的型号和数量,联机或脱机;d. 数据通信设备的型号和数量;e. 功能键及其他专用硬件4.2支持软件列出支持软件,包括要用到的操作系统、编译(或汇编)程序、测试支持软件等。4.3接口说明该软件同其他软件之间的接口、数据通信协议等。4.4控制说明控制该软件的运行的方法和控制信号,并说明这些控制信号的来源。