基于UML建模的在线购物系统设计与实现.doc_第1页
基于UML建模的在线购物系统设计与实现.doc_第2页
基于UML建模的在线购物系统设计与实现.doc_第3页
基于UML建模的在线购物系统设计与实现.doc_第4页
基于UML建模的在线购物系统设计与实现.doc_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

分类号 郑州电力高等专科学校毕 业 设 计(论 文)题 目: 基于UML建模的在线购物系统设计与实现 并列英文题目: The design and realization of internal communication software in large &medium-sized enterprise 系 部: 电子信息系 专业:计算机应用技术 姓 名: 班级: 指导教师:张慧丽 职称:讲师 论文报告提交日期 2010年6月11日 郑州电力高等专科学校摘要随着时代的发展,信息技术、Internet/Intranet技术、数据库技术的不断发展完善,网络化进程的加快,传统的购物方式也越来越不能满足人们快节奏的生活需求,使得企业的IT部门已经认识到Internet的优势,电子商务就开始流行起来,越来越多的商家在网上建起在线商店,向消费者展示出一种新颖的购物理念。本论文主要论述如何开发一个网上购物系统以及介绍了设计本系统所用的相关知识,分别介绍了技术原理 (数据库技术、B/S等)、所用到的技术(三层架构、加密技术等),同时还对本系统的需求分析与设计及其功能实现做了详细的介绍。本论文主要论述了该网上购物系统从需求分析到系统测试一系列具体过程,该系统是结合自己的工作实践来进行设计和实现。关键词:电子商务 网上购物系统 需求分析 系统测试SummaryWith the development, information technology, Internet / Intranet technology, continuous development and improvement database technology, network acceleration of the process, the traditional way to shop more and not be satisfactory for the fast-paced daily life, making corporate IT departments Already Recognizing the advantages of Internet, e-commerce began to pop up more and more businesses set up online stores on the Internet, to consumers shopping demonstrated a novel concept. This paper mainly discusses how to develop an online shopping system and to introduce the design of the system used by the relevant Zhishi, respectively introduced the technical principles (database technology, B / S, etc.), the Yongdao of technology (three Jia Gou, encryption technology, etc.), also the demand of the system analysis and design and function to achieve a detailed introduction. This thesis discusses the online shopping system from requirements analysis to system test a series of specific processes, the system is a combination of their own work practices to the design and implementation.Keywords: e-commerce online shopping system needs analysis system test目 录第一章 前言11.2系统开发的目的与意义11.3国内外研究现状21.4课题总体概括2第2章 系统开发的相关理论基础42.1电子商务理论42.2系统开发技术理论4第三章 所用相关技术63.1 三层架构63.2 Linq to sql 技术103.3 加密技术(SHA1加密算法)13第四章 网上购物系统的需求分析与设计154.1系统的初步调查154.2系统的需求分析154.3系统可行性分析154.4系统详细调查16第五章 网上购物系统的实现225.1系统功能结构设计225.2代码设计235.3数据库设计27第六章 系统测试306.1 对系统性能的测试306.2 对系统业务能力的测试306.3 对系统健壮性的测试316.4 对系统维护以及开发人员工作效率的检测31第七章 结束语32致谢33参考文献34附录34第一章 前言1.1系统开发的背景随着时代的发展,信息技术、Internet/Intranet技术、数据库技术的不断发展完善,网络进程的加快,传统的购物方式也越来越不能满足人们快节奏的生活需求,使得企业的IT部门已经认识到Internet的优势,电子商务就开始流行起来,越来越多的商家在网上建起在线商店,向消费者展示出一种新颖的购物理念。1.2系统开发的目的与意义1.2.1系统开发的目的网上购物系统的开发就是为了提高交易效率,节省开支,拓宽公司和消费者交易的时间和空间。销售网站的建立,超越了传统商务的障碍:抵御障碍、时间障碍、价格信息对比障碍、可使公司真正提供24小时不间断服务和全天候营业,更加吸引顾客。1.2.2系统开发的意义网上购物作为电子商务的一部分,在我国的商业经济中起着举足轻重的作用。网上购物是一种利用现代信息技术的商业购物活动的电子化过程。随着中国加入WTO,国外的产品将涌入中国市场,中国的产品也将走向世界。1.3国内外研究现状1.3.1系统开发的国外研究现状在美国,网上购物兴起不到三四年的时间就已经形成年销售额六七十亿美元的业绩。1.3.2系统开发的国内研究现状目前中国受限于技术创新和应用水平,企业发展电子商务仍处于起步阶段。随着这两方面水平的提高以及其他相关技术的发展,电子商务将向纵深挺进,新一代的电子商务将浮出水面,取代目前简单地信托“网站电子邮件”的方式。电子商务企业将从网上商店和门户的初级形态,过渡到将企业的核心业务流程、客户关系管理等都延伸到Internet上,使产品和服务更贴近用户需求。互动、实时成为企业信息交流的共同特点,网络成为企业资源计划、客户关系管理及供应链管理的中枢神经。企业将创建、形成新的价值链,把新、老、上、下游利益相关都联合起来,形成更高效的战略联盟,共同谋求更大的利益。1.4课题总体概括本课题以电脑配件购物系统为背景,研究下面几个方面的主要问题: 1.4.1 进行面向对象的信息系统的分析与设计的问题 讨论如何将建模语言UML及建模工具Rational Rose应用到从需求分析到编码的各个环节当中。 通过对需求的深入理解使得项目开发从一开始就能按正确的分析和设计方法进行。此后,借助 UML的一些成熟方法开发出可行的软件设计方案,以编写出最佳的软件实现,从而明显提升所开发软件的可扩展性、易维护性以及可重用性。 1.4.2使用三层架构进行信息系统开发的问题在现有的Web应用系统中,普遍存在着程序可重用程度低、维护工作繁琐、应变能力薄弱等不足。随着Web应用需求越来越复杂,开发周期越来越紧迫,对系统的稳定性、扩展性和可维护性要求越来越高。如何进行合理地分层设计,各层的框架如何搭建以及如何选择最合理的技术就变得尤为重要。本系统中利用Struts框架,通过优化Web应用程序开发框架及合理利用设计模式使得开发出的Web系统层次清晰、易于系统扩展和维护。1.4.3利用Ajax技术进行信息动态显示的问题在系统中,适当引入Ajax技术,使web应用的用户得到很好的应用体验。通过 Ajax 引擎,使得应用过程很自然,操作很流畅,因为其只和服务器交换有用的数据,而页面显示等不必要的数据则不再重新加载。第二章 系统开发的相关理论基础2.1电子商务理论21 世纪是网络的时代,是信息的时代,是多媒体的时代。Internet技术的迅猛发展与普及,推动了世界范围的信息传输、信息交流和经济的交流。Internet 从过去主要用于科研和简单信息的发布向商业化大踏步迈进,广大的商家和用户从各自不同的角度都希望Internet能给他们带来更大的实惠,用户对Internet的应用需求也有了根本性的变化。2.2系统开发技术理论2.2.1 ASP 技术电子商务设计中涉及的网络技术及数据库技术已日渐成熟,经过综合比较各类动态网页设计语言后,本设计选用了ASP技术。2.2.2数据库设计理论数据库是以数据(数据就是对客观事物的符号表示,是存储在计算机中的模拟客观事物的一系列信息。对于计算机科学而言,数据的含义极为广泛,凡是可存储的信息,如文本、图像、声音等都可以通过二进制编码而形成数据)为对象,指为了满足某种特定应用的需要,按照一定的数据模型在计算机系统中组织、存储和使用数据的数据集合。数据库系统是管理大量的、持久的、可靠的和共享的数据工具。2.2.3 B/S(浏览器/服务器)理论B/S(Browser/Server)结构即浏览器和服务器结构。它是随着Internet 技术的兴起而对C/S 结构的一种变化或者改进的结构。在这种结构下,用户工作界面通过WWW 浏览器来实现,极少部分事务逻辑在前端(Browser)实现,主要事务逻辑在服务器端(Server)实现。这样就大大简化了客户端电脑载。第三章 相关技术3.1 三层架构3.1.1三层架构的含义三层架构(3-tier application) 通常意义上的三层架构就是将整个业务应用划分为:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。区分层次的目的即为了“高内聚,低耦合”的思想。、表现层(UI):通俗讲就是展现给用户的界面,即用户在使用一个系统的时候他的所见所得。、业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理。、数据访问层(DAL):该层所做事务直接操作数据库,针对数据的增添、删除、修改、更新、查找等。 3.1.2三层架构的原理 三个层次中,系统主要功能和业务逻辑都在业务逻辑层进行处理。所谓三层体系结构,是在客户端与数据库之间加入了一个“中间层”,也叫组件层。这里所说的三层体系,不是指物理上的三层,不是简单地放置三台机器就是三层体系结构,也不仅仅有B/S应用才是三层体系结构,三层是指逻辑上的三层,即使这三个层放置到一台机器上。三层体系的应用程序将业务规则、数据访问、合法性校验等工作放到了中间层进行处理。通常情况下,客户端不直接与数据库进行交互,而是通过COM/DCOM通讯与中间层建立连接,再经由中间层与数据库进行交互。表示层位于最外层(最上层),离用户最近。用于显示数据和接收用户输入的数据,为用户提供一种交互式操作的界面。业务逻辑层业务逻辑层(Business Logic Layer)无疑是系统架构中体现核心价值的部分。它的关注点主要集中在业务规则的制定、业务流程的实现等与业务需求有关的系统设计,也即是说它是与系统所应对的领域(Domain)逻辑有关,很多时候,也将业务逻辑层称为领域层。例如Martin Fowler在Patterns of Enterprise Application Architecture一书中,将整个架构分为三个主要的层:表示层、领域层和数据源层。作为领域驱动设计的先驱Eric Evans,对业务逻辑层作了更细致地划分,细分为应用层与领域层,通过分层进一步将领域逻辑与领域逻辑的解决方案分离。业务逻辑层在体系架构中的位置很关键,它处于数据访问层与表示层中间,起到了数据交换中承上启下的作用。由于层是一种弱耦合结构,层与层之间的依赖是向下的,底层对于上层而言是“无知”的,改变上层的设计对于其调用的底层而言没有任何影响。如果在分层设计时,遵循了面向接口设计的思想,那么这种向下的依赖也应该是一种弱依赖关系。因而在不改变接口定义的前提下,理想的分层式架构,应该是一个支持可抽取、可替换的“抽屉”式架构。正因为如此,业务逻辑层的设计对于一个支持可扩展的架构尤为关键,因为它扮演了两个不同的角色。对于数据访问层而言,它是调用者;对于表示层而言,它却是被调用者。依赖与被依赖的关系都纠结在业务逻辑层上,如何实现依赖关系的解耦,则是除了实现业务逻辑之外留给设计师的任务。数据层数据访问层:有时候也称为是持久层,其功能主要是负责数据库的访问,可以访问数据库系统、二进制文件、文本文档或是XML文档。简单的说法就是实现对数据表的Select,Insert,Update,Delete的操作。如果要加入ORM的元素,那么就会包括对象和数据表之间的mapping,以及对象实体的持久化。 3.1.3三层架构的优缺点优点:1、开发人员可以只关注整个结构中的其中某一层;2、可以很容易的用新的实现来替换原有层次的实现;3、可以降低层与层之间的依赖;4、有利于标准化;5、利于各层逻辑的复用。缺点:1、降低了系统的性能,这是不言而喻的。如果不采用分层式结构,很多业务可以直接造访数据库,以此获取相应的数据,如今却必须通过中间层来完成。2、有时会导致级联的修改。这种修改尤其体现在自上而下的方向。如果在表示层中需要增加一个功能,为保证其设计符合分层式结构,可能需要在相应的业务逻辑层和数据访问层中都增加相应的代码。 3.1.4三层架构的规则三层结构的程序不是说把项目分成DAL, BLL, WebUI三个模块就叫三层了, 下面几个问题在你的项目里面1. UILayer里面只有少量(或者没有)的SQL语句或者存储过程调用, 并且这些语句保证不会修改数据?2. 如果把UILayer拿掉, 你的项目还能在Interface/API的层次上提供所有功能吗?3. 你的DAL可以移植到其他类似环境的项目吗? 4. 三个模块, 可以分别运行于不同的服务器吗? 如果不是所有答案都为YES, 那么你的项目还不能算是严格意义上的三层程序. 三层程序有一些需要约定遵守的规则:1. 最关键的, UI层只能作为一个外壳, 不能包含任何BizLogic的处理过程。2. 设计时应该从BLL出发, 而不是UI出发. BLL层在API上应该实现所有BizLogic, 以面向对象的方式。3. 不管数据层是一个简单的SqlHelper也好, 还是带有Mapping过的Classes也好, 应该在一定的抽象程度上做到系统无关。4. 不管使用COM+(Enterprise Service), 还是Remoting, 还是WebService之类的远程对象技术, 不管部署的时候是不是真的分别部署到不同的服务器上, 最起码在设计的时候要做这样的考虑, 更远的, 还得考虑多台服务器通过负载均衡作集群。所以考虑一个项目是不是应该应用三层/多层设计时, 先得考虑下是不是真的需要? 实际上大部分程序就开个WebApplication就足够了, 完全没必要作的这么复杂. 而多层结构, 是用于解决真正复杂的项目需求的。3.2 Linq to sql 技术 Linq to sql(或者叫DLINQ)是LINQ(.NET语言集成查询)的一部分,全称基于关系数据的 .NET 语言集成查询,用于以对象形式管理关系数据,并提供了丰富的查询功能,它和Linq to xml、Linq to objects、Linq to dataset、Linq to entities等组成了强大的LINQ。3.2.1 LINQ to SQL的优点 在LINQ to SQL推出之前,我们只是把SQL语句形成一个string,然后,通过传给SQLserver,返回结果集.这里的缺陷就是,如果你SQL语句写的有问题,只有到运行时才知道.而且并不所有的人都懂数据库的。LINQ to SQL在一切围绕数据的项目内都可以使用。特别是在项目中缺少SQL Server方面的专家时,LINQ to SQL的强大的功能可以帮我们快速的完成项目。LINQ to SQL的推出,是让大家从烦琐的技术细节中解脱出来,更加关注项目的逻辑。LINQto SQL的出现,大大降低了数据库应用程序开发的门楷,它实质是事先为你构架了数据访问层,势必将加快数据库应用程序的开发进度。LINQ to SQL解放了众多程序员,让他们的把更多的精力放到业务逻辑以及code上,而不是数据库。对于初学者来讲,LINQ to SQL可以让他们迅速进入数据库应用程序开发领域,节约了培训成本。LINQ to SQL的实现,是在和C#2.0的基础上的。它通过自动翻译SQL语句,并把结果集创建成对象并返回。这里我们可以看出,发送到SQLServer端的SQL语句是LINQ to SQL自动生成的。这对不懂SQL的人来说,无疑是个福音。第二,LINQ to SQL语句是在编译期间就做检查的。而不是运行时检查。这样,那里出了问题,可以及时更改,而不是到了运行时才发现问题。第三,LINQ to SQL是针对对象操作的,更符合今天的oo呼声。在LINQ to SQL之前,在Java领域有Hibernate,在net领域有NHibernate技术,来实现object/relational持久和查询服务。那和NHibernate比起来,它又有那些优势呢.第一,影射代码自动生成。VS2008提供了SQLMetal和ORDesigner两个工具来完成此步骤。而在NHibernate中,你不得不自己手工写。第二,影射代码有更多的选择.NHibernate只能把数据库的信息配置在一个xml中,而LINQ to SQL有两种方式,一个是放到XML中,我们称为Externl Mapping,再一种就是以Attribute的形式,存在于各个property中。当然,笔者本人并没有使用过NHibernate,只是从资料上得到这些消息,所以无法给出更多的比较。3.2.2 LINQ to sql 的性能 LINQ的性能已经被好多人提及.LINQ to Object的性能大家讨论的比较多些.它确实比自己实现的查找要慢.但是当数据量特别大时,更多是时间是花在分配虚拟内存上了,那么他们的差别就不是那么明显了。LINQ to SQL是又如何提升性能的?第一,采用延迟加载(deferredloading)技术。语句是声明了,但是并不立即执行,而是在真正需要的时候才执行。第二,采用缓存技术。已经取到内存的数据,再依次提取时,会先从缓存中返回,而不是再次访问数据库。当然,笔者建议,不要对象的时候,没有必要使用LINQ to SQL.比如,只是填充DataView或DataGrid时,返回dataset或datatable要比用LINQ to SQL实现的快很多。本程序所用LINQ to sql 的具体表现如图3.3加密技术(SHA1加密算法) 加密技术是电子商务采取的主要安全保密措施,是最常用的安全保密手段,利用技术手段把重要的数据变为乱码(加密)传送,到达目的地后再用相同或不同的手段还原(解密)。加密技术包括两个元素:算法和密钥。算法是将普通的文本(或者可以理解的信息)与一窜数字(密钥)的结合,产生不可理解的密文的步骤,密钥是用来对数据进行编码和解码的一种算法。在安全保密中,可通过适当的密钥加密技术和管理机制来保证网络的信息通讯安全。3.3.1 SHA-1 加密技术 SHA1的全称是Secure Hash Algorithm(安全哈希算法) ,是由NIST NSA设计为同DSA一起使用的,它对长度小于264的输入,产生长度为160bit的散列值,因此抗穷举(brute-force)性更好。SHA-1 设计时基于和MD4相同原理,并且模仿了该算法。SHA-1是由美国标准技术局(NIST)颁布的国家标准,是一种应用最为广泛的hash函数算法,也是目前最先进的加密技术,被政府部门和私营业主用来处理敏感的信息。而SHA-1基于MD5,MD5又基于MD4。SHA-1比MD5多32位密文,所以更安全。由于同样的原因,MD5比SHA-1的运算速度更快。第四章 网上购物系统的需求分析与设计4.1系统的初步调查电子商务已经成为商家在市场上获得成功和生存的必要条件。仅就中国的情况而言:中国的电子商务正向着良好的发展方向阔步前进,为了追求最大的利润和信息现代化的需要,领导都愿意实施信息化建设。4.2系统的需求分析根据中国互联网络信息中心进行的调查,互联网正在走进人们的日常生活和影响其生活方式,78.1的网民渴望能够进行网上购物,只有21.9的人对此持反对态度。2009年和2010年1月CNNIC的两次调查结果显示,用户选择网上购物的主要原因位居前三位的是:节省时间;操作方便;节约费用。4.3系统可行性分析4.3.1管理可行性随着Internet的发展,现在网络已经深入千家万户,而且中国的电子商务正向着良好的发展方向阔步前进,为了追求最大的利润和信息现代化的需要,领导都愿意实施信息化建设。4.3.2技术可行性技术的发展使整个社会的方方面面处于信息相互关联状态同时也面临降低成本提高管理,服务水平的应用需求。选择合适的开发模式,要充分考虑不断增长的管理及服务需求。从技术层面看出B/S模式开发信息系统是当前业界探索的热点和追求的目标。面向对象的理论和技术是当前较为先进的软件开发理论和技术。4.3.3技术可行性技术的发展使整个社会的方方面面处于信息相互关联状态同时也面临降低成本提高管理,服务水平的应用需求。选择合适的开发模式,要充分考虑不断增长的管理及服务需求。从技术层面看出B/S模式开发信息系统是当前业界探索的热点和追求的目标。面向对象的理论和技术是当前较为先进的软件开发理论和技术。4.4系统详细调查4.4.1系统的业务流程。本网上购物系统的业务流程图如下图所示:网上购物系统商品分类列表模块商品查找模块订单查询模块商品详细信息模块购物车模块最受欢迎的商品模块会员登陆登陆登陆未登陆4.4.2系统的数据流程数据流程图是对系统调研阶段绘制的业务流程图进行分析的基础上,从系统的科学性,管理的合理性,实际运行的可行性角度出发,将信息处理功能和彼此之间的联系自顶向下,逐层分解,在逻辑上精确地描述新系统应具有的功能,数据输入,数据输出,数据存储及数据来源和去向。4.4.3数据字典在结构化分析中,数据字典的作用是给数据流图上每个成分给予定义和说明。数据字典是系统分析阶段的重要部分,也是系统分析阶段的重要文档,它清楚地定义与详细地解释了数据流程图所不能表达的内容,同时它能够帮助分析组织数据,是同用户交谈的极好工具,此外数据字典记载着每个数据项的关键条目,从中可以检查出各数据元素的详细内容或漏掉的数据元素。数据字典中包括:数据流、数据元素、数据存储、加工、外部项。本系统的部分数据字典如下:在结构化分析中,数据字典的作用是给数据流图上每个成分给予定义和说明。数据字典是系统分析阶段的重要部分,也是系统分析阶段的重要文档,它清楚地定义与详细地解释了数据流程图所不能表达的内容,同时它能够帮助分析组织数据,是同用户交谈的极好工具,此外数据字典记载着每个数据项的关键条目,从中可以检查出各数据元素的详细内容或漏掉的数据元素。数据字典中包括:数据流、数据元素、数据存储、加工、外部项。本系统的部分数据字典如下:数据流系统名:提交订单 编号: F1 条目名:订货公司 别名: 来源:客户去处:P1接收订货信息数据流结构:合同编号客户名称签订日期商品型号数量单价总价供货日期付款情况签订人员备注简要说明:营销人员根据客户要求签订订货合同,随时了解合同付款情况。表4.1 数据字典:数据流数据元素系统名:销售订货编号: F2条目名:签订日期 别名: 数据流:F1订货要求存储处:订货客户记录数据元素属性:代码类型:日期型取值范围: 20042010意义:客户签订订货合同的时间简要说明:由营销人员填写订货合同。表4.2 数据字典:数据元素数据存储系统名:销售订货 编号: D2条目名:订货客户记录 别名:存储组织:订货客户记录记录数:数据量:主键:客户编号副键:记录组成:合同编号、客户名称、签订日期、商品型号、数量、单价、总价、供货日期、付款情况、签订人员、备注简要说明:营销人员根据订货客户记录为客户准备商品。表4.3 数据字典:数据存储加工系统名:销售订货 编号: P1条目名:确定价格 别名:输入:客户订货要求输出:价格和订货客户记录表4.4 数据字典:加工外部项系统名:销售订货 编号: P2条目名:客户资料 别名:输入数据流:输出数据流:主要特征:客户编号、客户名称、所在省、电话区号、联系电话、传真、联系人、手机、地址、邮编、跟踪业务员、客户性质、备注简要说明:客户的基本情况。表4.5 数据字典:外部项第五章 网上购物系统的实现5.1系统功能结构设计网上购物系统分为前台和后台管理。5.1.1 前台模块详细功能描述其中,用户信息管理以及订单和购物车是禁止匿名用户访问的内容。(1)商品信息模块:特价专区(价格特别优惠的商品列表)、新品上架(首页显示点击率最高的商品列表)、精品推荐(首页显示最精美的商品列表)、商品分类浏览、商品详细信息。(2)购物车模块:添加商品到购物车、购物车信息修改、结账。(3)用户信息管理模块:注册新用户、登录、用户修改密码、用户个人资料管理。(4)订单模块:查询个人订单列表、查询某笔订单的详细信息。5.1.2 后台模块详细功能描述(1)管理员信息管理:登录;添加新管理员、删除管理员:修改密码;管理员日志(记录管理员的每个操作,由超级管理员进行查询)。(2)商品信息管理:添加、删除商品类别;添加、修改、删除商品信息。(3)用户信息管理:查询用户信息、修改账户金额(未完成)。(4)订单管理:管理订单是否确认,是否发货,是否付款,是否归档。并且对相应信息进行查询(支持多参数查询)。说明如下图5.2代码设计代码设计是代表事物名称、属性、状态等的符号,具有标识作用、统计和检索作用和对象状态的描述作用。为了便于计算机处理,一般用数字字母或他们的组合来表示,代码设计必须符合适应性、合理性、简明性、系统性、稳定性、可扩充性、标准化和便于识别和记忆原则。5.2.1权限问题 建立一个网站,其不同的人登陆你的网站,其功能是不一样的,这就是因为权限的不同而导致了管理的范围的不同,本网站的权限分为四个(系统高级管理员、系统管理员、VIP用户、普通用户),不同的人在各自的领域中做自己本能的事情,设计的实现如下:不同权限的不同登录/ /对不同的角色访问资源控制,基于模块技术实现。通过角色的权限对用户所有请求进行过滤/ public class PermissionModule : IHttpModule, IReadOnlySessionState public void Init(HttpApplication context) context.AcquireRequestState += new EventHandler(context_AcquireRequestState); public void context_AcquireRequestState(object sender, EventArgs e) HttpApplication application = sender as HttpApplication; if (application = null) return; HttpContext context = application.Context; string filePath = context.Request.FilePath; if (!IsPermission(filePath, context) context.Response.Redirect(/Error/NoRole.htm); private bool IsPermission(string filePath, HttpContext context) string fileSuffix = VirtualPathUtility.GetExtension(filePath); string directory = VirtualPathUtility.GetDirectory(filePath); / 对于不是.aspx请求,Web文件夹和Protected文件夹下的资源请求放行,不进行验证,仅进行Forms验证。 if (fileSuffix != .aspx | directory.Trim() = /Web/ | directory.Trim() = /Web/Protected/) return true; int userId = -1; if (context.Session != null & context.SessionCurrentUserId != null) userId = Convert.ToInt32(context.SessionCurrentUserId); SysFunManage sysFunManager = new SysFunManage(); IList sysFuns = sysFunManager.GetRight(userId); if (sysFuns = null) return false; SysFun fileName = sysFuns.Where(sys = sys.NodeURL = filePath).FirstOrDefault(); return fileName != null; /同一用户在同一时刻只能登陆一次。后登陆将挤掉先前登陆的账号public class SecurityModule:IHttpModule,IReadOnlySessionState public void Init(HttpApplication context) context.AcquireRequestState+=new EventHandler(context_AcquireRequestState); public void context_AcquireRequestState(object sender, EventArgs e) HttpApplication application = sender as HttpApplication; if (application = null) return; if (IsPermission(application.Context) application.Response.Redirect(/Error/ReLoad.htm); private bool IsPermission(HttpContext httpContext) if (httpContext.Session = null | httpContext.SessionCurrentUserId = null) return false; string currentUserId = httpContext.SessionCurrentUserId.ToString(); if (httpContext.Application = null | httpContext.ApplicationcurrentUserId = null) return false; if (httpContext.ApplicationcurrentUserId.ToString() != httpContext.Session.SessionID) httpContext.Session.Clear(); / 撕票 System.Web.Security.FormsAuthentication.SignOut(); httpContext.Response.Clear(); return true; return false; 5.2.2管理后台的实现对于一个网站系统来说,后台的管理能力直接关系到这个网站的功能强度,所以在制作后台管理方面,我也是相当的细心,以下为本程序后台部分的关键代码设计部分后台部分/ 根据不同角色,动态生成左侧的权限树 protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e) Repeater repeater = e.Item.FindControl(Repeater2) as Repeater; HiddenField hf = e.Item.FindControl(HiddenField1) as HiddenField; if (repeater = null | hf = null) return; SysFunManage sysManage = new SysFunManage();IListreuslt=sysManage.GetTempRight(Convert.ToInt32(SessionCurrentUserId), Convert.ToInt32(hf.Value);repeater.DataSource = reuslt; repeater.DataBind();5.3数据库设计数据库应用系统的开发过程中,数据库的结构设计是一个非常重要的环节。数据库的好坏将直接对应用系统的效率以及实现的效果产生影响。一个好的数据库结构设计将会减少系统数据库的存储量,并且能够大大提高系统中数据的完整性和一致性,这样一来,使系统具有了较快的响应速度,大大简化了基于此数据库的应用程序的实现等。 5.3.1 实体分析1) 实体集:客户、VIP会员、商品生产、厂商商品、类别、地址2) 实体集之间的联系:客户和商品之间的多对多联系:订单、评论客户和VIP会员之间的多对一联系: VIP会员等级生产厂商和商品之间的多对多联系:供应商品和商品类别之间的多对一联系:商品类别客户和地址之间的一对多联系:客户地址实体间的联系图:商品客户商品类别VIP会员分类n1订单mn属于n1供应生产厂商m评论nnm地址所在n1商品mn属于客户类型113) 实体的属性:客户:客户号、密码、姓名、性别、单位、电子信箱、身份证号VIP会员表:会员等级、会员折扣商品:商品号、商品名称、类别号、商品描述、单位、规格、单价、其他生产厂商表:厂商号,生产厂商名、地址、电话 商品类别:类别号、类别名称 地址:地址号、地址名称4) 联系的属性:订单:订单号、客户号、商品号、收货地址、订货日期、订货数量、单价、发票号码、订单金额、发货日期供应:商品号、厂商号 商品分类:商品类别号、类别名称客户类型:客户号、客户类型 客户地址表:客户号、客户地址评论:评论号、客户号、商品号、客户邮箱、评论内容、评论时间。5.3.2 数据库设计的完整性 对于数据库的完整性设计主要在于主键的设计以及用户自定义的完整性约束。在这方面我们也是尽量做到更加完整、实用。第六章 系统测试为了验证通过采用基于三层架构可以提高企业级应用系统业务效率和开发效率的目的。本人对实现后的系统进行了以下几个方面的测试:6.1 对系统性能的测试采用压力测试方法,通过多台工作站同时并发地对部署了该系统的服务器进行数据访问和业务操作。记录服务器响应各台工作站业务要求的时间,完全符合性能需求,单条数据请求响应时间不超过3秒。测试结果符合要求,同时采用该种模式设计软件的性能远高于传统设计模式的性能。6.2 对系统业务能力的测试同样采用压力测试,通过多台工作站不停访问服务器,可以在一台工作站上打开多个线程来进行不同的业务请求,从而来检测系统最大可承受的业务能力。测试显示,采用分层模式构架应用的业务能力比传统模式构架应用的业务能力要强,尤其是在大型企业级应用中作用表现更为突出。6.3 对系统健壮性的测试采用黑盒测试方法,通过其他非开发人员的使用操作来检测系统bug,开发人员进行修改完善。通过测试分析,该系统目前基本符合用户需求。6.4 对系统维护以及开发人员工作效率的检测通常是工作人员进行的白盒测试方法,通过项目实践验证,采用.NET分层结构可以实现业务功能模块的高聚合,大大减少了开发人员的系统维护工作。提高了开发人员的工作效率。第七章 结束语实践是检验真理的唯一标准,当然也是检验学习成果的标准。在经过一段时间的学习之后,我们需要了解自己的所学应该如何应用在实践中,因为任何知识都源于实践,归于实践,所以要将所学的知识在实践中来检验。实习期间,在讲师张老师的指导下,通过自身的不断努力,无论是思想上,学习上还是工作上,都取得了长足的发展和巨大的收获。现将工作总结如下:思想上,学会了用科学的精神去解决问题。很多事情看起来是很简单的问题,但实际做起来去会发现有许多奥妙!这是因为其中蕴含着许多科学的问题。运用科学的方法去解决问题,这是我这次实训给我带来的思想上的改变。前面我们看到的是网上购物行业其自身的发展。然而,作为社会发展的一个部分,它将和其它的行业有更广泛的结合。21世纪网上购物业的重要性表现在它的全球化,网络化,虚拟化,智能化以及环保协调的绿色制造等。它将使人类不仅要摆脱喧闹的商场购物,而且还是人类利用大量的时间去工作学习。当然这一切还需要我们大家进一步的努力。致谢本系统设计与实现过程中参考了大量的网站及书籍,在同学、老师的帮助下总算完成了设计。在这里特别感谢我的指导教师张慧丽老师和大学三年的所有任课老师,还有我们小组的全体同学,在我做论文的过程中给了我极大的帮助,并提出了宝贵的意见和建议。参考文献1. 戴上平 丁士锋 ASP.NET 3.5完全自学手册 机械工业出版社2. 郑耀东ASP.NET从入门到实践 清华大

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论