南昌高专学报2008年第6期(总第79期)2008年12月出版 Journal ofⅣdnc College No.6(Sun 79)dec.2008 基于ASP.NET2.0电子商务网站设计与实现 刘克宁 (景德镇陶瓷学院 江西景德镇333001) 摘要:探讨了利用ASP.NET技术构建完整的B2C电子商务网站的方法和技巧.网站采用流行的B/S结 构,并通过搜索功能的开发具体阐述了网站开发的三层结构的实现。ASP.NET节省系统开发时间。为系统开发提 供了全套解决方案,具有良好的可扩展性和易于维护,是系统设计和开发人员的一个良好选择。 关键词:ASP.NET;E—Business:搜索 中图分类号: rP393.o9 文献标识码:A 文章编号:1008—7354(2008)06—0191—03 O引言 ④通过PayPal(贝宝)来处理信用卡,从而完成对订 近年来电子商务发展非常迅速。中国在加人WTO 单的支付。 后,市场更加开放,将成为电子商务在全球发展最快、潜 1.2逻辑结构 力最大的地区之一。电子商务最大的好处是减少中间环 Web应用程序是典型的B/S模式三层分层模型应 节,既为消费者带来更廉价的商品,又为企业加快了资金 用。三层分别为:显示层、事务逻辑层和数据库层如图1。 回笼速度。在一些人看来:“电子商务就是全部,要么实现 ①显示层:处理与用户的交互、交流。完成界面和与 电子商务,要么从竞争中出局。”这句话看起来有些夸张, 最终用户交互的功能。在应用程序里是一些ASPX的页 但实际上却凸显出电子商务的重要性。电子商务网站当 面和页面相关代码。 然也具有现实的一些风险。比如黑客、信用卡欺诈、计算 ②事务逻辑(Business Logic)层:处理用户所需要的信 机硬件问题、不可靠的递送服务、软件Bug等等。解决其 息。用于分装商业逻辑和规则,在应用程序里面被封装为 风险一个重要的方法是要及时备份数据库信息,编码时 NET组件。 候也要考虑到对于安全的保障。 ③数据库层:存储系统处理的所有数据。通过中间层 1 系统设计 的数据访问组件与SQL Server Provider交互.所有的数据 1.1网站模块 获取依靠存储过程来进行。 阶段一:构建一个基本成型的网站 ①设计数据库,用其来存储商品。多层目录结构,方 显襁 便分类,检索。 蔗卧日网 碟 艚誊日 ②编写SQL代码和c#代码,用其来实现存取商品数 腭卧日主炳 据。 ③实现吸引客户眼球的用户界面,方便客户对商品 图1 B/S模式三分层模型 的浏览。 1.3数据库设计 ④实现有效的错误报告系统。当网站运行出现问题 包括商品数据表,商品一级目录数据表,商品二级目 时。会立刻提交报告给管理员。 录表,购物车表,订单状态表和订单购物信息表,如图2。 ⑤基于数据库信息,提供对商品的搜索功能。 ⑥为网站管理员提供对商品进行管理的功能。主要 功能有:添加、删除商品和修改商品属性等。 阶段二:实现购物车,并集成信用卡处理服务。 ①实现购物车功能。 ②创建订单管理页面。 ③实现产品推荐系统。例如:“购买该产品的顾客还 购买了XXX。” 图2商品数据表 收稿日期:20o8—08一l6 作者简介:刘克宁(1980一)男,江西南昌人,硕士,助教,主要研究方向:网络技术应用及网络安全。 192 南昌高专学报 2008年 2系统实现 在Visual Studio.NET集成开发环境中创建ASP. NETWEB应用程序BizShop.按照关系数据库的原则,定 义好每个数据表的字段,及其各个表之间的关系设计,然 后完成各个功能模块的实现,主要实现的模块有:商品管 理、商品种类管理、用户管理、购物车实现、商品搜索实 现、系统Et志管理。在这里详细介绍重要的商品搜索功能 的实现过程。而其它的功能模块实现的原理与其类似,就 不一一列举。 商品搜索的实现 2.1实现SQL的SearchCatalog存储过程 搜索功能的两种类型,一种是全关键词搜索,按空格 把输人的每一个词分离,只要包含这些词语,而不管出现 的顺序。另一种是任意关键词搜索,对输人的词只要有一 个出现就为匹配。 任意关键词搜索存储过程实现:对输人的词只要有 一个出现就为匹配。把用户输入的各个关键词按空格分 离,根据每个关键词其在商品名称中出现的次数乘以权 值3加上在商品描述中出现的次数乘以权值l。最后把各 个关键词的计算出的数值加起来。作为搜索排名的依据。 权值可以根据实际的商务状况进行调整。 3 dbo.WordCount(@Word1.Name)+dbo.WordCount f@W0rdI。Description)+ 3 dbo.WordCount(@Word2.Name)+dbo.W0rdCount (@Word2,Description)+ 3:It dbo.WordCount(@Word3.Name1+dbo.WordCount (@Word3,Description)+ 3}dbo.WordCount(@Word4.Name)+dbo.WordCount (@Word4,Description)+ 3 dbo.W0rdCount(@W_0rd5.Name)+dbo.Wl0rdCount (@Word5,Description)+ 3¥dbo.WordCount(@Word6.Name)+dbo.WordCount (@W0rd6,Description) ASRank 全关键词搜索存储过程实现:把用户输入的各个关 键词按空格分离。只要包含这些词语。而不管出现的顺序。 根据每个关键词其在商品名称中出现的次数乘以权值3 加上在商品描述中出现的次数乘以权值l。最后把各个关 键词的计算出的数值相乘。作为搜索排名的依据。只要有 一个关键词搜素不到,搜索排名的值就为零。权值可以根 据实际的商务状况进行调整。 (3}dbo.WodrCount(@Wordl,Name)+dbo.WordCount (@WordI,Description)) CASE WHEN@Word2 IS NUI工THEN 1 ELSE 3 dbo.WordCount(@Word2,Name)+dbo. WordCount(@Word2,Description) END丰 CASE W。HEN@Word3 IS NULLTHE l ElSE 3 dbo.WordCount(@Word3,Name)+dbo. WordCount(@Word3,Descirption) END木 CASE WHEN@Wo 4 IS NULL 删EN 1 ElSE 3}dbo.WordCount(@Word4.Name)+dbo. WordCount(@Word4,Description) END幸 CASE WHEN@W0rd5 lS NULL THEN l ELsE 3}dbo.WordCount(@Word5,Name)+dbo. WordCount(@Word5,Description) END木 CASE WHEN@Word6 IS NUU THEN l ELSE 3 dbo.WordCount(@Word6,Name)+dbo. WordCount(@Word6,Description) END AS Rank 2.2实现事务逻辑层 事务层包含了SearehCatlaog函数,其调用了 SearchCatlaog存储过程,在这里我们只需要把用户输入的 各个关键词按空格分离开。因为数据层需要处理的是单 个关键词。 (1)定义最大关键词数目■ , ; , ■ ! 々 , ,'~这 些字符忽略。 int howManyWords=6: chad wordSeparators=New char[]{ , ,,. , . , ! ,,? , }; stirng口words=searchString.Split(wordSeparators, StirngSphtOptions.RemoveEmptyEntries); int index=1: (2)分隔关键词并把各个关键词设置为存储过程的 参数。 for(int i=O;i<=words.GetUpperBound(0)&&index<= howManyWords;i++1 if(wodrs[i].Length>=1) {param=comm.CreateParameter0; par'am.ParameterName=”@word”+index.ToString0; param.Value=words脚; param.DbType=DbType.String; eomm.Pammetem.Add(pal砌); index++;} 2.3实现显示层 首先是需要一个用户输入搜索关键词的地方,这里 可以通过TextbOX控件SearehBox.aBex实现。另外一个是 需要显示搜索结果的地方。用Search.aspx实现。 (1)打开SearchBoxascx.cs, ̄成其goButton_Cliek函数。 protected void goButton_Click(object sender,EventArgs e) [if(searchTextBo x 哪!=.t.'(下转第195页) 第6期 顾勤:基于XML技术与sQL数据库的网络积件系统 5结束语 195 数据表是一一对应关系。再根据资源名称、关键字、时间 组合成查询条件,通过Select命令的FOR XML子句,将 数据传递给XML文件。最后应用XSL样式表或根据需 要。以合适的方式呈现给用户。 本文介绍的基于XML和SQL数据库的网络教学积 件系统,可移植性好,扩展性强,可以不作修改地应用于 不同课程中,系统不仅可以提供各种类型的课件.还可提 供可重组的教学素材,大大方便了师生工作和学习。系统 的自扩充功能和审核功能保证了数据库信息的全面性、 先进性和准确性。 【参考文献1 [1]沈兆阳,李劲编著.SQL Server 2000与XML整合应用 [M】.北京:清华大学出版社,P287—311. [2]基于XML的Web查询功能的实现【J】.沈阳工程学院学 报(自然科学版),2005(3):120-121. [3】XML和SQL erSver 2000数据交换的实现【J].湖南工程 学院学报,2oo6,vo1.16.nol:64—66. 图2信息查询条件 (上接第192页) Response.Redirect(Request.ApplicafionPath+”/Search. aspx?Search:”+searchTextBox.Text+”&AllWords=”+ (2)锁定或者失效默认用户,对于数据库系统来说, 安装的时候会有一系列的默认用户生成,应该在数据库 安装完毕之后,经过功能筛选,锁定或者失效这些用户。 (3)修改可用用户的默认密码,不能锁定或者失效 alIWordsCheckBox.Checked.ToString0);1 (2)新建Search.aspx文件,在Search.aspx中完成其后 台Page_Load函数 protected void PageLoad(object sende ̄EventArgs e) _的用户,必须修改默认密码。4.操作系统存取权限。 (5)定期更新厂家推出的安全性补丁,随着时间的推 移,厂家通常会推出一系列的安全性补丁来弥补现有系 统的安全隐患。 4结语 fstring searchString Request.QueryString[”Search”】; tiflel_abe1.Text=”Product Search”: tllis.Title=BaUoonShopConfigumfion.SiteName+”: Product Search:”+searchString;l 一本文利用了微软最新的N】 技术开发电子商务网 站。网站的设计采用流行的B/S模式的三层结构.通过分 析网站的功能模块,用ASP.NET分布式多层系统架构,将 旦搜索词汇被加载。立即执行事务层搜索操作 if(searchString!=num {string allWordS=Request.QueryString[”AnWords”】; list.DataSource=CatalogAceess.earSch(searchString. 网站分为不同的逻辑层次。大大降低了应用程序系统开 发和维护的成本,提高了系统模块的可复用性。使系统的 可扩展性和通用性得到明显增强。ASP.NET为我们提供 al1.Words,page,out howManyPages); list.DataBindO;) 其它的功能模块还有:商品管理、商品种类管理、用 户管理、购物车实现、系统日志管理。它们实现的原理与 商品搜索类似,实现难度还略小,在此就不一一列举。 3数据库安全性控制 了一个全新而强大的服务器控件结构。ASP.NET几乎全 是基于组件和模块化。每一个页、对象和HTML元素都是 个运行的组件对象。因此网站的访问效率和可靠性也 一得到明显增强。ASP.NET的整套解决方案是系统设计和 开发人员的一个良好选择。 [参考文献] 数据库安全性是数据库系统的一个重要方面,它是 指保护数据库防止被不合法地使用。包括恶意的破坏和 非法的存取等。由于本系统的数据涉及到个人资料和商 业数据。所以要采取比较妥当的安全措施。 控制物理接触是系统安全性建设的第一步,也是最 有成效.最应该优先执行的一步。授权人员才可以进入 机房,管理人员的密码不要记录在显眼的地方,离开个人 终端锁定屏幕,等等。 [1]Marco Bellinaso.ASP.NET 2.0网站开发全程解析[M】. 北京:清华大学出版社。2oo8. [2]JesseLiberty;DanHurwltz.ProgrammingASP.NET,3Edition [M].北京:电子工业出版社,2007. [3]Cfisifan Dariel;Karli Watson.ASP.NET 2.0电子商务开 发实战[M].北京:人民邮电出版社,2007. [4]Erie Freeman;Elisabeth Freeman.Head First Design Pattern.0"Reilly Press,2006. 第二步普遍性的安全性措施: (1)只安装需要的软件,每个软件都有缺陷,对于数 据库软件来说。自定义安装,只选取需要的组件。