基于基于MVC架构的网上购物系统的设计与实现.doc
《基于基于MVC架构的网上购物系统的设计与实现.doc》由会员分享,可在线阅读,更多相关《基于基于MVC架构的网上购物系统的设计与实现.doc(31页珍藏版)》请在冰点文库上搜索。
分类号密级
UDC编号
本科毕业论文(设计)
题目基于MVC架构的网上购物系统的设计与实现
所在院系计算机学院
专业名称计算机科学与技术(嵌入式方向)
年级12级
学生姓名李亚茸
学号1250313046
指导教师许庆炜
二○一六年三月
湖北第二师范学院本科毕业论文
湖北第二师范学院毕业论文(设计)原创性声明
本人郑重声明:
所呈交的学位论文,是本人在导师的指导下,独立进行研究工作所取得的成果。
除文中已经注明引用的内容外,本论文不含任何其他个人或集体已经发表或撰写过的作品成果。
对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。
本人完全意识到本声明的法律结果由本人承担。
论文作者签名:
年月日
文献综述
1.ASP.NET
ASP技术之后便衍生为,它第一次是在IIS2.0上和ADO1.0一起推出的,后来在3.0上逐渐变得有名,它在服务器端逐渐变成了相对比较热门的开发工具,微软公司还专门为它私人定制了一套开发工具。
在20世纪末期,微软在windowsNT上推出了一种关键性的技术,那便是ASP技术,从那之后,网络上便开始逐渐涌现出了ASP的网站,而且变的越来越多。
ASP的简易性以及它的可定制性,是它能够发展这么快的其中一个原因。
但是它也逐渐的暴露了一些ASP的问题。
在2000年夏天的时候,微软启动了另一种战略,那便是.NET。
从此时开始,ASP+便更名为ASP.NET,通过长期不懈的努力,第一个版本的ASP.NET便和.NET实体框架一起在2001.01.05日成功的发布了,与此同时,ASP.NET的PM便由SCottGuthrie接任,他在这之前已经开发设计过多个软件产品,比如说ASP.NETAJAX。
迄今为止,我知道的已经发布了.NET5.0以及Framework7.0并且它们已经成功的应用在了VS2015平台上。
2.ASP.NET的优点
1)逐渐强化的性能。
ASP.NET 是一种公共运行库代码。
它能够在服务器上编译打包并且成功运行。
但不同的是,ASP.NET可以运用多种技术,比如说实时打包编译、在本地进行优化、编译前进行绑定等。
这便显著的提高了系统的性能。
2)世界级的工具支持。
ASP.NET Framework在弥补了VS的设计器和工具箱中的很多不足之处。
空间拖动、自动部署项目仅仅是它能够提供的功能中的个别几个,还有很多其他的没有列举出来的。
3)威力和灵活性。
ASP.NET 项目运行时,可以将部分数据存放在cookie中,然后等到下次访问的时候直接从本机的内存中拿数据,这样处理速度会加快很多。
.NET Framework 的Library、处理机制和对数据的控制访问等均可以从 Web无缝访问。
而且ASP.NET 和其他的开发语言毫无关系,因此你可以自由选择最合适的自己并且比较擅长的程序语言进行开发,甚至可以在同一个应用中实现多种语言的交替开发
4)简易性。
ASP.NET很容易的把它们都变得特别简单,从最初的数据提交和用户身份验证再到后期的发布和配置信息。
比如,在ASP.NET的框架中,需要你把前台展示部分和后台逻辑处理分开存放,这使得我们能够非常简单明了的看到项目的整体结构。
5)可管理性。
ASP.NET把配置直接放在服务器和程序中,这样就减少了本地内存占用和管理,因为它的所有信息都是以文本存储起来的,这样就不需要本地的辅助工具进行帮忙,直接可以将所有新配置信息应用到服务器,简化了要重启机器的繁琐步骤。
6)可缩放性和可用性。
ASP.NET 在设计过程中需要考虑它的可缩放性,并且需要要增添专门提高该产品性能的功能。
此外,进程受到ASP.NET运行库的实时控制和管理,以便于当进程有不正常的行为发生时,就可以随时创建新的进程,这样方便处理请求一直保持可用状态。
7)自定义和扩展性。
库中的各类组件都可以被开发人员自己自己开发的东西所替代。
ASP.NET自身也有一个非常完美的整体设计,它可以在正确的时机为程序员提供“插入”代码功能。
但是完成自定义身份验证或状态服务始终不是容易的事。
摘要
本系统主要是用MVC框架编写的,并且利用了B/S的模式,我是参考目前社会上的整体情况,然后分析之后开发的这个系统。
网上购物是现在信息化社会发展的趋势。
如今有越来越多的人,更乐意待在家浏览网页并且购买物品,不用走路就可以得到自己想要的产品。
它减少了商家的经营成本,对于买家来说,不用走很多路就可以看到多种多样的物品。
本论文主要了解了一下市场需求,对现有的市场进行了分析,还介绍了一下网购的开发背景,以及所涉及到的系统相关的设计,包括系统需求、简要描述、详细实现、对系统的测试以及在整个过程中所碰到的一些难题和如何正确的解决它们。
我的网站主要分为:
购物页面展示和后台物品管理。
系统前台主要实现了用户对自身信息的编辑和密码修改、所有物品的总体展示、每个物品的详细描述以及通过关键字对物品进行搜索等功能;而后台则包含了管理员对物品和品牌信息的编辑,包括上传新产品、对现有产品信息进行修改以及删除过期的产品信息等功能。
对于本系统来说,主要运用了ASP.NET的技术,然后再通过SQLSERVER来对后台数据进行连接,但是,在本系统中并没有直接通过数据库的连接对数据库的信息进行访问和修改,而是通过.NET中现有的实体框架通过Model来完成前后台的相互交互。
在我的论文最后面,我还说明了我在开发系统过程中遇到的一些问题,以及说明了一下最后成功解决的方案,最后对我系统设计和论文设计的过程做了最后的总结,以及说明了在整个开发设计过程中参考了哪些书籍,学习了哪些新的东西,还对给过我帮助和建议的老师和同学进行感谢。
关键词:
网上商城、MVC、B/S
II
Abstract
ThissystemismainlyusedMVCframeworkdevelopment,andtheuseoftheB/Smodel,Onlineshoppingisthetrendofthedevelopmentofinformationsociety.Nowtherearemoreandmorepeople,liketostayathomeonline,youcanbuyyourfavoritethingswithoutwalking.Itreducestheoperatingcostsofthebusiness,forbuyers,donottakealotofwaytoseeavarietyofitems.
Thisthesismainlyunderstandthemarketdemand,hascarriedontheanalysistotheexistingmarket,alsointroducethebackgroundofthedevelopmentofonlineshopping,andinvolvedinthesystemdesign,includingsystemrequirements,testingprocessanddevelopmentencounteredsomeproblemsandsolutionsoftheproblem.
Thesystemismainlydividedintotwoparts,includingthefrontpagedisplayandbackgrounditemsmanagement.Infrontofthesystemmainlyrealizestheusereditandpasswordfortheirowninformationmodification,alloftheitemsintheoveralldisplay,adetaileddescriptionofeachitemandbykeywordofgoodsweresearchandotherfunctions;andthebackgroundareincludedintheadministratorofgoodsandbrandinformationediting,includinguploadnewproducts,theexistingproductinformationtomodifyanddeleteexpiredproductsinformation,andotherfunctions.
Forthissystem,themainuseoftheASP.Nettechnology,andthenthroughtheSQLservertothebackgrounddataconnection,however,inthissystemdidnotdirectlythroughthedatabaseconnectioninformationtothedatabasetobeaccessedandmodified,butthroughtheentityframeworkavailableinthe.Netthroughthemodeltocompletethedatainteractionbetweentheforegroundandthedatabase.
Inthebackofmypaper.IalsoshowedsomeoftheproblemsIencounteredinthedevelopmentprocessofthesystem,learningwhatnewthings,togivemehelpandadvicefromteachersandclassmatestothank.
Keywords:
Onlinemall、MVC、B/S
III
目录
文献综述 I
1.ASP.NET I
2.ASP.NET的优点 I
摘要 III
Abstract IV
第1章绪论 -1-
1.1系统开发背景 -1-
1.2系统的开发意义 -1-
第2章网上购物系统 -2-
2.1网站的设计目标 -2-
2.2网站的可行性分析 -2-
2.3系统设计的总体规则 -2-
第3章系统技术及系统架构 -4-
3.1系统的主要架构及开发模式 -4-
3.1.1开发技术的选择 -4-
3.1.2基于MVC的系统架构 -5-
3.2系统的功能和流程 -6-
3.2.1网站的功能分析 -6-
3.2.2系统的功能模块设计分析 -6-
3.3系统流程图 -7-
3.3.1前台购物流程 -7-
3.3.2注册功能流程 -8-
第4章系统详细设计 -9-
4.1数据库分析与设计 -9-
4.1.1数据库表设计 -9-
4.1.2数据库概念设计 -9-
4.1.3数据库逻辑结构设计 -10-
4.1.4数据库关系图 -13-
4.2总体结构和功能模块 -14-
4.2.1目录结构说明 -14-
4.2.2功能页面结构 -14-
4.2.3主要功能流程 -15-
4.2.4前台功能 -15-
4.2.5后台管理 -17-
第5章系统测试及难点分析 -18-
5.1测试 -19-
5.2难点分析 -19-
总结 -20-
致谢 -21-
参考文献 -22-
第1章绪论
1.1系统开发背景
近年来,Internet的发展速度越来越快,它已经成为在线搜集信息的最佳方式。
于是电子商务日益风行,越来越多的商家在网上开了网上商店城,向消费群体提供了另一种比较新奇的购物渠道。
网上购物已经成为一种商业化的信息系统,它有很好的交互性。
它给用户提供了两种资源:
静态和动态。
所谓静态资源是指不经常变化或者更新的资源,比如说公司简介、管理规范和公司制度等等;动态资源则说的是能够随时变化的信息,比如说实时新闻,上新商品和培训信息等。
网上购物系统具有很强大的互动能力,它使得商家和用户之间能够更便捷的传递信息。
像这种网上互动的模式实现了文档和资金的电子化,将纸质档全部变为电子交易模式。
现在在国内PHP与ASP的应用比较普遍。
比如新浪网便是用PHP开发的,但是因为PHP也存在一些缺点,所以并不适用于大型电子网站,而更适合一些小型的商业站点。
ASP和JSP则没有上述所说的缺陷,这两种都各有各的长处,在开发过程中,我们需要依据实际的需求来使用最适合我们系统的技术,本系统则选用了比较新的MVC技术,我希望我能从开发系统的过程中,更深入的了解一下这门编程语言。
1.2系统的开发意义
Internet的逐渐发展,改变了传统的商业运作形式:
运用Internet的技术和协议,创建各种企业内部网络Intranet,企业外部网络Extranet,经过比较廉价的通讯技术,将买家与卖家、商家和合伙人紧密的结合在一起,解除了时间与空间带来的阻碍,因此节约了交易成本,扩大了交易规模。
在我们的生活中,实际的商业活动已经备这种方案合理运用了,这种交易模式被人们称之为:
电子商务。
现在比较流行的网上购物系统是“京东商城()”、“当当网()”。
这些网站都是比较纯熟的电子商务网站。
我们在开发过程中完全可以学习参考这些网站的模式和思想,全面了解和熟悉这个网站的整体开发流程还有比较完整的功能需求和注意事项。
想要设计一个号的商务网站,其中需要解决许多技术层面的难题,比如说:
网页制作,后台数据库连接,通过实际制作这个网站,可以充分的了解并掌握上面所说的技术的使用。
第2章网上购物系统
2.1网站的设计目标
本购物系统采用cshtml+sqlserver的架构与数据库实现连接,本系统分为前台展示和后台管理两个方面。
前台展示是比较简易的操作界面,为用户提供了浏览、查询等功能。
包括:
商品总览、商品详情查询、选购商品、加入购物车、用户信息管理等功能。
2.2网站的可行性分析
可行性研究是为了搞明白系统开发的项目是否可以实现和实现后是否值得的分析,事实上是一次大规模精简系统分析和系统设计的过程,因此,进行可行的分析是非常有必要的,也是非常重要的,经过初步的设计目标和市场调查有了以下四点分析:
(1)经济可行性:
我所做的关于网购的系统仅仅只为了个人实践,再加上我自身能力有限,系统的功能还有很多欠缺的地方,因此没有有价值的经济效益;
(2)技术可行性:
的技术已经较为成熟;
(3)运行可行性:
本系统是在Internet的环境下正常运行的,所以需要正确连接数据库;
(4)法律可行性:
本系统仅仅是为了更好的实践所学过的东西,因此没有什么价值,再加上这是自己开发设计的,所以不会有侵犯著作权,所以满足该条规则;
通过上述所说的可行性分析,网站时通过sqlserver与后台相连,并且采用的技术,对网站进行建设。
2.3系统设计的总体规则
每一个网站都需要有它自己的设计规则。
本系统也一样,以下是它的规则说明:
简单性:
在实现网站功能的同时,应该尽量让它的操作变得比较简单,而且易于理解,这对于一个网站来说是非常重要的。
针对性:
本系统开发了前台展示及后台管理两部分,所以有明显的针对性,而且突出了我们所学的专业。
实用性:
本系统能够同时完成产品显示和后台编辑基本信息两方面,所以具备了非常好的应用性。
第3章系统技术及系统架构
3.1系统的主要架构及开发模式
一个系统的整体架构对于该系统来说尤为重要,而我所做的基于MVC的web开发,传统的C/S不能完全满足许多用户的各种访问和操作,B/S是依赖于web端的一种架构,网络上的主流模式便是B/S,服务端完成了很多处理相关的工作,客户端仅仅作为是普通的IE,这样简简单单的就可以访问开发设计的网站,对于系统的维护和修改非常方便并且迅速。
整个开发过程很简单都是由于MVC框架,它非常利于实现复杂的逻辑,所以在很大程度上节省了整个周期和成本。
3.1.1开发技术的选择
选择适合并且高效的开发技术,对于整个网站的开发来说有着非常重要的影响。
在开发一个网站之前,首先需要要选择一种动态网页开发技术。
现今比较常用并且适合的网页开发技术有以下几种,分别是JSP、ASP、PHP。
它们的特性比较如表3-1所示。
表3-1特性比较
技术名称
ASP
JSP
PHP
对数据库的支持
好
好
好
开发难易度
容易
容易
较难
操作系统
Windows
Windows
LINUX
安全性
不好
好
不好
对组件的支持
支持
支持
不支持
执行方式
解释执行
编译之后执行
解释执行
在最原始的HTML代码中,它们都够利用HTML标签扩展来形成各种各样的页面。
从上图来看,JSP无论是从安全性,还是其他方面,都是最佳的选择,但是为了能够更好的实践ASP的技术,因此我在在本系统中采用ASP作为动态网页开发技术。
3.1.2基于MVC的系统架构
本系统采用了三层架构的MVC模式,MVC有3个主要组件:
Model、View、Controller。
Model:
用于描述外部界面使用的业务逻辑和数据;
View:
主要向用户界面输出;
Controller:
处理用户输入。
本系统是利用MVC+EF模式开发的,利用了EF来实现codefirst,以此来操作数据库的数据,视图页面是运用cshtml实现,controller是用来处理view与model之间的逻辑关系以及数据处理。
MVC的整体流程如图3-1所示。
图3-1MVC工作流程图
3.2系统的功能和流程
3.2.1网站的功能分析
本系统由产品显示和后台编辑构成。
前台页面主要为用户提供了多种多样的商品,以便用户选择最满意的产品。
后台管理主要是信息的整合和以及对前台数据的操作,例如商家上传商品信息等。
该平台主要要实现以下功能:
平台显示:
当进入该网站时,用户能够看到各种商品,并且商品可以根据品牌和类别进行分类查看;
用户管理:
用户购物必须要通过注册、登录本网站,并且允许修改个人信息;
搜索功能:
当用户心目中有需要买的东西时,可以在搜索栏通过关键字进行快速查找;
购物车功能:
当用户想买多件商品时,可以通过加入购物车功能,在购物车中查看用户自己选择的多件商品;
管理员管理:
管理员进入后台系统,能够上传商品信息,并能对商品进行编辑和删除管理。
3.2.2系统的功能模块设计分析
在分析系统的基础上,得到本系统的模块图如图3-2。
图3-2功能模块图
3.3系统流程图
3.3.1前台购物流程
前台购物流程如图3-3所示。
用户在前台页面可以浏览商品,并将自己喜欢的商品加入购物车,然后在提交订单页面选购商品,此需要对用户进行判断,如果用户没有注册,那么系统将会跳转到注册页面,如果用户已经注册但是没有通过账号登录,则跳转到登录页面进行登录,已经注册并且完成登录的用户则可以直接跳转到购物车页面,然后完成订单并结账,则选购成功。
图3-3前台购物流程图
3.3.2注册功能流程
用户登录注册流程如图3-4所示。
当用户点击购物车时,系统需要先判断用户是否已登录,如果未登录则需要先跳转到登录页面。
如果用户有账号,则输入正确的用户名密码,登录成功,如果没有,则点击登录页的注册按钮,先进行注册,注册成功后,系统再跳转回登录页面进行登录验证。
图3-4登录注册流程图
第4章系统详细设计
4.1数据库分析与设计
4.1.1数据库表设计
在建立网站初期,对于系统所用到的数据,我们必须进行大致的分类和具体的结构设计对系统所用到的数据。
数据库设计必须要遵照一定的规则去创建,一个非常完善并且毫无冗余的数据库需要满足一些约束和要求。
尽可能的将各实体分离出来,形成对应的表,一个实体只能对应一个表,只有这样才不至于产生插入异常、删除异常还有数据冗余等。
实体、属性与联系是进行概念设计时要考虑的三个元素,也是一个好的数据库设计的核心。
4.1.2数据库概念设计
本系统共规划出5个实体,分别是品牌分类表、产品类目表、商品详细分类表、商品表、商品图片表,实体关系图如4-1所示。
图4-1实体-关系图
4.1.3数据库逻辑结构设计
根据设计好的E-R图创建数据库的逻辑结构,各表的逻辑结构如下:
(1)品牌分类表:
用来存储各个品牌信息,包括品牌名、是否推广。
该表的逻辑结构如表4-1所示。
表4-1品牌分类表
字段名
数据类型
能否为空
描述
Id
int
否
品牌ID
Name
Nvarchar(50)
否
品牌名
Promoted
bit
是
是否推广
(2)产品类目表:
用来存储产品的种类,最大范围的分类,包括种类名、备注。
该表逻辑结构如表4-2所示。
表4-2产品类目表
字段名
数据类型
能否为空
描述
TypeId
int
否
种类ID
TypeName
Nvarchar(50)
否
种类名
Note
Nvarchar
是
备注
(3)商品详细分类表:
用来存储商品的详细类别,包括类别名、所属产品类、是否推广、备注。
该表逻辑结构如表4-3所示。
表4-3商品详细分类表
字段名
数据类型
能否为空
描述
TypeId
int
否
种类ID
TypeName
Nvarchar(50)
否
种类名
SuperId
int
是
所属类目ID
Promoted
bit
是
是否推广
Note
Nvarchar
是
备注
(4)商品表:
用来存储商品的详细信息,包括所属种类、所属品牌、商品名、详细描述、商品价格等信息。
该表的逻辑结构如表4-4所示。
表4-4商品表
字段名
数据类型
能否为空
描述
Id
int
否
商品ID
TypeId
int
否
所属类目ID
BrandId
int