电子商务网站开发_第1页
电子商务网站开发_第2页
电子商务网站开发_第3页
电子商务网站开发_第4页
电子商务网站开发_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

电子商务网站开发摘要:电子商务网站是现在和未来的一种购物方式,他将会给人们带来越来越多的方便。本文将首先从结构上对网站的设计有一个总体上的思想,包括网站的前端的会员管理模块和后端的数据维护模块,这是任何一个网站所必备。但我还是把一些内容放在安全技术的论述上,当安全越来越成为当今网站的一个突出主题时,我们不得不在安全上下大功夫,让我们的网站成为您的一方净土。一个电子商务网站,从好处上说它可以带给我们更加快捷的生活方式和提供更加方便的人性化服务,但从坏处上说它将我们的隐私更加暴露无遗,我们需要把我们的真实姓名、身份证号甚至连我们的银行帐户提供给商家。我们不得不怀疑网络上是否安全,别人是否会利用我的帐户在购买商品,我们上网时有没有被别人跟踪。在这一切没有解决之前我们的顾客是不愿意在网上购物时,我们应该怎么办?本文将从电子网站的整体设计的同时来考虑怎样来减少我们网站的安全漏洞。关键字:AspAccess电子商务Web开发设计本文介绍了用ASP和Access数据库建立一个电子商务网站的开发与设计过程。该设计遵循了软件工程中软件生命周期法;按照软件分析、软件设计、软件编码、和软件维护分为定义系统目标、可行性分析、需求分析、概要设计、详细功能设计、软件编码。并将面对用户的WEB界面采用B/S结构和对于后台数据挖掘的管理逻辑采用C/S。在本文数据库的设计过程中,采用了结构化设计方法,采用了数据流程图(DFD)、程序流程图等工具清晰的展示数据存储及调用过程。保证了系统的健壮性,可维护性,可扩充性。建立后的网站是一个动态、交互式、具有网上购物、商品提供、系统管理等功能的BTOC电子商务网站。一制作的关键问题与难点一个网络电子网站可以实现的功能非常强大,例如:全世界鼎鼎有名的亚马逊书店,除了基本的网络电子商店的功能之外,还可分析客户购买行为,列出相关商品,会员的投票评分,还有跟后台服务系统及后台金流物流系统的集成。当然也可以做的功能很简单,例如:现在很多的公司只做到商品目录介绍,连采购车的系统都没有,下订单还要通过电子邮件来完成。当然我觉得做的电子商务网站分为两部分:一是前端的购物系统,二是后端的管理系统。在整个系统中的核心技术为购物和结帐系统,但最为难的技术为安全技术,在整个系统中我们需要进行SSL加密,数据库加密,和网页间数据传递加密以及用户和密码加密。二具体实现ASPNET的前身是ASP(ActiveServerPages),以其简单的语法一嵌入HTML的编辑方法,在很短的时间内获得巨大的成功,成了NT平台上WEB技术的霸主,这种地位至今无人动摇。但随着PHP,JSP等技术的出现,ASP的王者地位受到了严峻的挑战。WEB技术的新贵——JSP,它是有微软公司的竞争对手Sun公司出品,在执行效率、安全性等特性上已经完全超过了ASP,它更有着ASP无法比拟的跨平台性,使得JSP在Window、Unix、Linux主机上均使用。它的诞生,使得越来越多的人选择了能够跨平台使用的JSP。ASP的用户日益减少,ASP面临着前所未有的危机。在这种情况下,微软提出了".NET”构想,2000年6月22日,微软公司首次向外界公布了其宏伟的“Window.Net”计划,同时发布了下一代网络服务器框架(NextGenerationWebServicesFramework简称NGWS)。在NGWS中人们首次看到了ASP+的身影。2000年11月,微软公司推出了VisualStudio.Net7.0beat1,同时扩展了NGWS的功能平将其更名为.NetFramework。此时,ASP+也更名为现在的ASPNet。到此,ASPNet正式推出了,那它到底有哪些先进的特性,现在就将让在下一一介绍。ASPNet作为Web设计技术的一种,它的主要功能还是产生动态网页,以满足不同用户的需要。在网上见得最多的是HTML页面(文件的后缀名为.htm或.html),它只是将别人编辑好的WEB页面展现给大家,这种页面如果不动手去修改,是不会发生任何变化的。如果想在网页中访问数据库,这种纯HTML页面就无能为力了。这时就得依赖各种WEB技术。而ASPNet作为一种新的WEB技术,它给了设计者一种全新的WEB设计概念。它将软件设计和Web设计融为一体。由于它和VB.Net,C#这些程序设计语言使用同一个.NetFramework对象开发库,可以想象ASPNet所能实现的功能是多么强大。ASPNet是一种建立在CLR(CommonLanguageRuntime通用语言运行机)基础之上的程序开发框架,它主要用于在服务器上开发功能强大的WEB应用,ASPNET提供了下面一些超越以前的重要特性:优良的性能:ASPNET在服务器上运行的是经过编译的CLR代码。与以前的技术相比,ASPNET能够充分利用Binding(绑定),及时编译,本地优化,缓冲服务来提高程序的性能。大量工具箱的支持:在VisualS的开发环境中,ASPNET因其丰富的工具箱和设计器而受到很高的赞扬。比如所见即所得的编辑方式,支持托放的服务器控件,以及动态的配置管理,这些都是被大受赞扬的。而这一些还只是其提供的强大特性的冰山一角,还有很多值得在实践中发掘。强大的功能以及良好的机动性:因为ASPNET是建立在CLR基础上的,所以整个平台的功能和适用性更加适合网络应用程序的开发。CLR中基本的类库、消息、数据访问解决方案几乎来源于WEB思想。ASPNET可以使用很多种编程语言来编写,可以选择最合适的那一种,甚至可以选用多种语言来编写。次外,CLR的协同工作能力保证以前开发的基于COM的程序,在移植到ASPNET后,依然能够正常使用。这就意味着,以前的ASP程序依然可以正常运行。易用性:使用ASPNET来完成一些普通的任务是很简单的事情。比如,ASPNET页面构架允许建立用户接口,这样就能把代码与程序结构分离。写程序只需要考虑程序的结构,而不需要考虑怎样去书写代码,因为它们都事先已经写好了。崭新的配置管理方式:ASPNET使用的是一种基于文本格式,等级式的配制系统,这种方式使得应用服务器环境和WEB应用的设置更加简单,因为配制信息是以文本格式储存的,新设置将不需要本地管理工具的帮助,也可使之生效。一个ASPNET应用程序只需要将必须的程序拷贝到服务器上就可以使用了。甚至是替换其本身,而不是需要重启服务器。一个明显的例子就是服务器上的控件的替换和修改再也不需要重启服务器了。这个本是写DLL控件最烦人的事情,现在这种烦恼已不存在。可移植性和良好的适用:ASPNET对多线程有着自己独特的一套操作方法,当一条线程出现异常情况后,一个新的进程会在它的地方重新建立,继续负担原进程所处理的任务。这就使得应用程序能够不中断地处理客户请求。超强的扩展性:ASPNET崭新的结构体系允许开发者开发自己的插件。实际上,ASPNET下任何一贯组件都能够被用户自己开发的组件扩展或替换。使用一种新的WEB技术,除了考虑效率外,最重要的是关心它到底提供了多少新功能使编写程序更加方便。下面我做一些简单的说明:ADO.NETASP之所以成功,在很大程度上是得益于微软提供的ADO(ActiveXDataObject)数据对象控件。ADO提供了很大的便利去存取数据库、XML数据。但是ADO也有局限性,比如一个RecordSet只能存放一个数据表的内容,如果需要同时操纵多个数据表,那就不得不打开多个RecordSet,这显得有些麻烦,其他WEB技术同样存在这样的烦恼。而这个问题在ASPNET中可以获得很好的解决。在ADO.NET中,微软提供了一个新的操纵对象DataSet,这是一个功能非常强大的对象,在一个DataSet可以同时存放多个数据表。DataGrid微软其实提供三个数据显示控件:DataGrid、DataList、Repeater。但这三个控件数DataGrid功能最强,其次为DataList,最弱为Repeater,而DataGrid也有一个缺点它的字段长度很难控制,而另外两个可以用<Table></Table:标记符加以控制。DataGrid的定义为:<Asp:DtaGridrunat="server"id="MyDataGrid”/>在其控件内部集成了很多方法,比如:分页技术,数据修改、删除等都以非常完善。丰富的WEB控件ASPNET区别与其他的WEB技术的最明显特征是提供了丰富的WEB控件。在VB.NET中,可以使用很多控件来完成程序。很多年来人们都向往着在WEB技术上也能使用这些控件,现在这些梦想已经成真。现在也能在ASPNET中使用这些与VB.NET控件拥有相同功能的各种WEB控件。从这里也可以看出微软公司试图将WEB设计与软件设计融为一体整体的设想。WEB控件的出现给编写程序提供了极大的便利。当熟悉WEB控件以后,程序只是对各种控件的属性进行修改,可以将精力集中在程序的逻辑结构上。支持事件处理(EventHandle)在ASPNET中,会有两个最基本的事件Page_Load与Page_UnLoad,它们分别在页面被调用与页面释放时发生(当然这些都发生在服务器上)。可以在Page_Load事件中初始化一些数据,比如部分控件的属性、对数据库的访问等,在Page_UnLoad事件中关闭在程序中打开的数据库或者释放所占的内存空间。程序结构与代码的分离ASPNET程序可以通过Code-Behind、用户控件、自定义控件以及组件这四种方法将程序结构与执行代码相分离,将面向对象的思维扩展到了一定的高度。当程序的逻辑结构一目了然,便可以将更多的时间放在代码的编写之上。当然本文介绍到这里已经将一些基本的网页技术都作了一番介绍,最后向大家介绍网页设计者的必修课 SQL语言。SQL的全称是StructuredQueryLanguage,译为“结构化查询语言”。它利用简单的语句来完成对数据库的存取操作。由于SQL的用法简单,所以它已经成为数据系统中使用最广泛的一种语言了。SQL虽然是一种语言,但同平常看到的C、C++、C#语言是不同的。它不能独立存在,必须依托于数据库系统,当然也就不可能像C、C++、C#一样建立应用程序。使用SQL语言,并不能直接操作数据库,它只是告诉数据库需要进行哪些操作,然后再由数据库系统去完成这些操作。SQL语言定义可以分为三大类:一、数据定义语言(DDL:DataDefinitionLanguage);二、数据操作语言(DML:DataManipulationLanguage);三、数据控制语言(DCL:DataControlLanguage)。好了本文不可能将网页设计技术作详细的介绍,其实现在HTML技术已经正趋向XHTML和XML技术转化,XHTML和XML将比HTML有着更严格的语法限制(区分大小写),但XML语言不在受标记语言的范畴,并可以对数据进行描述。所以有着更好的发展前景。ASPNET是一门综合的艺术,它需要我们将网页设计中各种技术加以融合,而最后形成精美的网页。二案例解析ASPNET提供一种强大的方法从数据包或XML文件中取得数据字段信息。然而,有时候你必须要将一部分的数据字段从数据源中绑定出来去完成某些任务。或许你需要数据源中的一些特定的数据格式或二次数据,因此你需要一些出色的能力去控制数据字段的显示。.在以下的例子中,你将经典处理onItemDataBound事件,直到你自如的控制onItemDataBound事件。这将带给你许多方便,但不幸的是源代码有点长。期望这个例子会有所帮助!首先,让我来解释一下这个来自现实的应用程序:一个我的网站ASPS上的有一般表达书库中ASPNET的练习题,你可以单击这里来查看它的演示。你将在一会儿后看到它的演示效果。至于我的有一般表达式书库中,我曾经用的几个字段刚好超出我的默认字段,所以我的DataGrid提供一个叫做“超出封装”。首先,我用一个用户名字段使它转向去连接用户的电子邮件。接着,我想限制每一个结果描述的字数显示在每一张搜索的网页上,为了防止页面由于显示的字数过多而使页面过长。(因为这个描述的信息在我的数据包中是以文本的形式存在,因此那会导致数据有几兆的大小)最后,我将做一个编辑连接,这将允许书库的管理者来编辑它,但我不想让它显示除非是当前的用户是书库的所有者。让我们看看这是如何实现的,首先我们看一看我的(相当冗长)的DataGrid报告,重要的部分在红色中被列出。default.aspx的摘录<asp:DataGridid="gRegexp"runat="server”AutoGenerateColumns="False”BorderColor="Black"BorderWidth="1”Style="margin-left:20px;”PageSize="5”AllowPaging="True"AllowCustomPaging="True”OnPageIndexChanged="gRegexp_PageIndexChanged”onItemDataBound="gRegexp_ItemDataBound”GridLines="Horizontal”PagerStyle-Mode="NumericPages”PagerStyle-HorizontalAlign="Center”PagerStyle-Position="TopAndBottom”PagerStyle-Width="100%”HeaderStyle-BackColor="#CC0000”HeaderStyle-Font-Bold="True”HeaderStyle-Font-Name="Verdana"HeaderStyle-Font-Size="9pt”HeaderStyle-ForeColor="White”ItemStyle-Font-Name="Arial"ItemStyle-Font-Size="8pt”AlternatingItemStyle-BackColor="#DDDDDD">在这个事件中,onItemDataBound的事件将对任何数据字段进行控制。你可以把这个事件用在DataGrid、DataList和Repeater等控件中。在上面的例子中,我把这个事件映射到我的dgRegexp_ItemDataBound事件中去处理。我们现在来看一看:default.aspx中的摘录protectedvoiddgRegexp_ItemDataBound(ObjectSender,DataGridItemEventArgse){//ForItemsandAlternatingItems,//convertuseridtoemaillink//truncatedescription//hideeditlinkifnotownerif(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem){Trace.Write("ItemDataBound”,e.Item.DataItem.GetType().ToString());intuser_id=Int32.Parse(((System.Data.Common.DbDataRecord)e.Item.DataItem)["user_id"].ToString());Trace.Write("ItemDataBound”,"user_id:"+user_id.ToString());ASPAlliance.DAL.UserDetailsobjUser=ASPAlliance.DAL.User.getUserDetails(user_id);((System.Web.UI.WebControls.HyperLink)e.Item.FindControl("myuser")).Text=objUser.first_name+""+objUser.last_name+"("+objUser.email+")";((System.Web.UI.WebControls.HyperLink)e.Item.FindControl("myuser")).NavigateUrl="mailto:"+objUser.email;Trace.Write("ItemDataBound","myuser.Text:"+((System.Web.UI.WebControls.HyperLink)e.Item.FindControl("myuser")).Text);Stringdesc=((System.Data.Common.DbDataRecord)e.Item.DataItem)["description"].ToString();if(desc.Length>100){desc=desc.Substring(0,99);desc+="...";}((System.Web.UI.WebControls.Label)e.Item.FindControl("description")).Text=desc;ASPAlliance.DAL.Securitysec=newASPAlliance.DAL.Security(this.Request);if((sec.user_id==0)||(sec.user_id!=user_id)||(!sec.isAuthenticated)){((System.Web.UI.HtmlControls.HtmlTableCell)e.Item.FindControl("editTD")).Visible=false;}}}}好,这就是我所举的一个例子,一点点少的“仅仅为了示范”的三行解释代码无法让我们明白。现在,我们将彻底的解释并展现在你眼前一些强大和难看的的东西,而这些东西实际上处在一个具有研究成果的位置上。但是不要害怕,你将在片刻之后完全明白它的含义。如果你还没有准备好(甚至你只懂VB),让我们打破常规。例子开始的6行只是声明我们的方法和抛出了一些注释。正如我所说的,我想在这儿做三件事情:使用户名转向电子邮件连接;截去描述字数的长度;当前用户不是管理员时隐藏编辑连接。这里唯一你真正需要去看的是确保你的第二个参数的类型转变成你所需要控制的。这是相当明显的,但是如果你不能理解它,你总是能在你所用的分类浏览器中考虑其特别的控制定义。对于VB.NET的使用者来说,正好需要转变对双斜杠到单斜杠的理解,除去大括号而且转变将类型参数跟随变量名的后面并在类型名之前加“AS”。接下来,我们需要确定我们所处理的字段类型是正确的。既然这个事件已经上升到控制每一个字段,包括有项目、隔行项目、分隔线项目、开头项目和结尾项目等。(完整的列表),我们需要叙述那一类我们所关心的项目。在这个例子中,我们只需要处理主要的控制片段,因此我们检查确定在这个问题中的项目不是所有的项目的就是隔行项目的。如果上面声明它将被处理,我们将从输入框中取得当前项目和。并且与我们所关心的项目的类型进行比较,对于使用VB的家伙,“||”意味着“或”的逻辑。注意:当我第一次写这个应用程序时我忽略了隔行项目的使用,因此用户显示的电子邮件显示成了其它项目。但是用户的帐号却被另一个所显示。好,我现在在程序中得到一些追踪帮我解决错误。这些追踪列出了当前项目的数据类型,好让我校正它实际上不是项目就是隔行项目的。在你执行这个程序时你可以不管这些。接着,我将取得用户的帐号。这是复杂的代码片段。让我在这里重复并从头到尾一端一端的加以解释。Intuser_id=Int32.Parse(((System.Data.Common.DbDataRecord)e.Item.Dataltem)["user_id"].ToString());让我们开始并将核心插入语以红色显示。这是C#类型控件的方法,并且必须要将当前数据字段类型转化到DbDataRecord类型。橙色的插入语完成这项操作。对于所有的目的和意图,橙色的插入语内容被考虑是一个DbDataRecord。移动到绿色,这将允许我们涉及到这条记录中“user_id-元素,并使用C#的数组或集合语法(在VB将使用小括号带代替中括号),并且将内容转化到字符串,因为这是Int32.Parse所期望的。最后转移到黑色,Int32.Parse将字符型转化到整形。转变的结果被放在我的user_id的整形变量中。在下一行我有更多的诊断代码输出的user_id到追踪日志。好的,我们现在有了user_id,接下来的一大块代码使用了我写的一些自定义操作去处理我的用户。当任何人建立了IBuySpy应用程序后操作就被做成模型。在这个例子中,我的UserDetails类通过getUserDetails方法包含了用户名和用户的邮件地址。下一行是另一个复杂的块,虽然:((System.Web.UI.WebControls.HyperLink)e.Item.FindControl("myuser")).Text=objUser.first_name+""+objUser.last_name+"("+objUser.email+")";再一次,从中央的大多数的parens开始,我们有另一个配合其型而决定的角色操作被完成。这个红色的代码被转化成橙色的代码是一个超级连接。这个橙色的代码被用来查找操作当前的项目中谁的ID是“我的用户”在我的DataGrid的列的模板中,我做了一个<asp:HyperLinkid="myuser"/>的标记符让这段代码加以引用。在这块代码的其他部分放置了超级连接的用户名和邮件地址的文本。这个超级连接在我的DataGrid中看起来象<asp:hyperlinkID="myuser"Runat="server"><%#DataBinder.Eval(Container.DataItem,"user_id")%></asp:hyperlink>这样。在现在之前配合其型而决定的角色正变得越来越落伍,下一行如同前一行所做的事情一样,但是在这个例子中我们将设置超级连接的NavigateUrl属性到U“mailto:”和我们用户的电子邮件地址。此外它们还被一些比较诊断的追踪跟随。((System.Web.UI.WebControls.HyperLink)e.Item.FindControl("myuser")).NavigateUrl="mailto:"+objUser.email;这就是为email所写的。任务1已经完成了。现在如果代码太长我们想截去其描述部分。我们做这些使用了相同的技术。首先,我们将在它转换成一个DbDataRecord类型之后截取来自当前字段的“描述”。然后我们将其转化成字符串并把它赋给变量等(

温馨提示

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

评论

0/150

提交评论