ASP.NET模块化动态电子商务网站的开发

本文对用ASP.NET和ACCESS开发中小型电子商务网站的分析、设计、实施做了详尽的阐述。系统采用模块化设计方法,根据程序的应用与维护的易用性,将系统各个部分分置于不同的模块当中,方便了程序的扩展与维护。

论文首先对当今电子商务网站的应用进行了现状分析,分析了网站开发的目的以及意义。接着详尽的对系统作了可行性分析,需求分析,对网站进行了总体设计,搭好了网站开发框架。然后对网站主页面、商品展示、商品搜索、网站公告等系统子功能模块的详细设计过程进行了重点阐述,给出了设计的效果和相关代码。最后对网站进行了测试和全面的评价,并且对未来扩充提出了建设性意见。

关键词:模块化;电子商务;ASP.NET;展示;搜索

2.1  系统开发技术

本文研究的课题是模块化动态电子商务网站的设计。现在的电子商务网站己经不再是仅向浏览者或用户提供静态网页内容的浏览,而是要求能够和用户进行动态的信息交流的动态Web网站,所以,搭建电子商务网站平台不仅要支持简单的HTML网页浏览,更重要的是使电子商务站点能和用户实现一种动态的交互式操作。这就要求Web服务器在提供标准的HTML网页浏览之外提供一种能和用户交流的技术。这种技术不但要能够收集和反馈用户信息,还要支持数据库操作(把信息存入数据库和从数据库中检索信息)。

2.1.1  ASP.NET简介

ASP.NET是统一的Web应用程序开发平台,用来提供生成企业级Web应用程序所必需的服务。ASP. NET的语法在很大程度上与Active Server Page(ASP)兼容,同时它还提供一种新的编程模型和结构,用于生成功能强大的新型应用程序。

以下列举一些用ASP.NET进行用户界面开发和基础程序结构生成的优势。

    1.ASP.NET提供了创建Web应用程序及电子商务平台所需的基本服务,同时ASP.NET的语法在很大程度上与ASP兼容。

    2.ASP.NET是一个己编译的、基于.NET的环境,可以用任何与.NET兼容的语言生成应用程序。同时,任何ASP.NET应用程序都可以使用整个.NET框架。

    3.ASP.NET可以无缝地与其他流行的WYSIWYG(所见即所得)HTML编辑器和编程工具(包括MicrosoftVisualStudio.NET)一起工作。

    4.在ASP.NET中可以利用.NET框架中的ADO.NET的强大功能,使得对数据库的访问比以往更加方便。

    5.ASP.NET提供一种简单的模型,该模型使开发人员能够编写在应用程序级的运行逻辑。

    6.ASP.NET仍然保留提供对于应用程序和会话状态功能。

    7.所有ASP.NET代码都是编译的,而不是解释的,这就允许对本机代码采用早期绑定,强类型处理,以及实时(JIT)编译。同时,ASP.NET提供了丰富的缓存服务。.NET还提供性能计数器。

    8.ASP.NET提供方便的自定义调试语句。只有对页面或整个应用程序启用跟踪时它们才出现,电子商务方案真正投入实际运行时,可以关闭跟踪以使它们失效。

    9..NET框架和ASP.NET中提供了默认授权和验证方案。可以根据需要方便地移除、添加或者替换这些方案。

    10. ASP.NET配置设置存储在基于XML的文件中,这些文件都是可读和可写的。

2.1.2   ADO.NET简介

为了实现对数据的访问,可以利用.Net框架的ActiveX数据对象(ADO. NET)来实现。ADO. NET是一组提供数据访问服务的类,它提供了对数据库数据、XML中的数据和应用程序数据的访问;而且所有的访问都是按照一个相容的,标准化的设计模型来执行。

ADO是Microsoft现有的、广泛应用的数据访问接口。但是它却有一些自身难以改变的不适应于Web环境的缺陷:

    (1)Web环境要求一定程度的互操作性,因为操作所涉及的各个服务可能运行在不同的软件和硬件平台上。然而,ADO对象天生地定位在Windows平台上。ADO基于COM的本性使得记录集很难在一个分布式、异种平台构成的环境中使用。

    (2)ADO对象模型中的每一个地方都体现了以数据库为中心的思想。ADO把数据看成是一组来自数据源的记录,而不是把数据看成一些独立的信息。在ADO中,如果脱离了数据提供者用来保存和描述数据的结构,数据将不能独立存在。

    ADO.NET从Web的角度对ADO进行检讨和改进。两个功能使得这方面的增强成为可能脱机记录集,以及与生俱来的对XML的支持。这主要是通过其中的DataSet(数据集)对象来实现以上两个功能。

    ADO.NET有效地从数据操作中将数据访问分解为多个可以单独使用或一前一后使用的不连续组件。ADO.NET包含用于连接到数据库、执行命令和检索结果的.NET数据提供程序,它是一组包括Connection、Command、DataReader和DataAdapter对象在内的组件。同时既可以直接处理捡索到的结果,也可以将其放入ADO.NET中的另一核心组件DataSet中。

2.2  系统数据库平台ACCESS简介

Access软件所能完成的功能基本上是一个数据库管理系统所应具有的功能相符的,主要包括以下儿点:

    (1)可以根据需要定制Access数据库系统,对数据进行保存、查阅和计算。

    (2)利用表存储相应的数据信息,为每一种实际对象的信息创建一个表,在表中对不同数据以不同的方式进行保存。

    (3)可以按照十几种对象之间的关系,定义各个表之间的关系,将各个表中相关的数据有机地联系在一起。

    (4)可以检索用户指定条件的数据,创建相应的查询来进行检索,也可以利用查询来更新或删除多条记录,并对表中的数据执行各种操作。

    (5)可以直接输入、查看或更改书库中的数据,利用表格或创建一定的窗体来完成上述功能。

    (6)可以对数据库中的数据进行分析,或者通过特定的方式将数据打印出来,绘制一份相应要求的报表。

    (7)可以利用宏或编码方便地将各种数据库对象连接在一起,形成一个数据库应用系统。

    (8)可以将数据库中的数据传输到其它数据库的服务器上,实现资源共享,通

过Web页功能来制作数据访问页。

5.1  网站的主页面的设计

主页面作为一个网站最总要的推广平台。它在整个网站中起着重要作用。本电子商务系统的网站主页面如图5.1所示:

图5.1网站首页

国内的电子商务网站很多,竞争是非常激烈。为了能够在激烈的竞争中保持网站的长久生命力。网站主页面设计的重要性尤为突出。基本上每个网民都有自己的喜欢的网站风格,一旦习惯了就不是很愿意去改变接受新的网站风格。所以好的主页面能够让客户耳目一新,从而起到吸引新客户,巩固已有的老客户的目的。

本系统的Web页面利用Dreamweaver设计制作,根据网站的前台功能栏目进行相应的Web页面设计。主页面为index.aspx,页面内容包括商品搜索、查看购物车、会员注册、新品推荐、精品推荐、销售排行、服务中心、友情连接等内容。

由于首页部分的代码主要是创建一个首页的网站结构框架。这里代码就不列出了。

5.2  商品管理模块的设计

本系统商品管理模块可以分为商品的添加、修改、分类管理和商品的留言管理几个部分。我主要负责商品管理模块的添加和查看与修改部分的工作。以下分别介绍这两个功能的实现方法。

5.2.1  商品的添加 

该功能的实现效果图如5.2所示:

图5.2 商品的添加

前面所说一个网站的主页面设计很重要。不过一个网站的主页面再好,要是没有内容,网站一样不能吸引客户。所以商品的添加虽然是最基本的操作,但是该过程也是必不可缺少的过程。为了给客户提供最全面的商品信息,在设计商品添加模块时应尽量的详细,以保证能够输入足够的商品信息。所以我设计了以上这个添加商品的模版。

5.2.2  商品的修改与查看

现在介绍商品查看与修改功能的。该部分主要的功能是对网站上现有商品的修改,包括删除、基本信息的修正等功能。当管理员点击某个商品时系统自动连接到相应的修改页面。此时页面中已经自动导入当前状态下的商品信息。调用的文件是ad_changehw.aspx。其页面设置和添加商品时的页面是一样的。代码部分很多是一样的,在此就不详细描写了。

5.3  商品搜索功能的设计

为了给用户提供快速寻找到用户所想了解的商品的信息。我们特意设计了商品搜索这个模块。考虑到一般用户可能对商品的名称和类型并没有像专业管理员那么熟悉了解。我特意把搜索设计成模糊搜索。这样用户就可以根据自己所了解的商品信息进行搜索。用户在首页中就可以使用这个功能。该功能的效果图如所示:

图5.3 商品的搜索

这个功能涉及到几个.aspx文件分别是insearch.aspx、search.aspx、ad_searchuser.aspx、ad_searchuser.aspx这里只介绍实现该功能的部分代码:

<%@ control Inherits="eshop.insearch" EnableViewState="false" %>

 <TD align=middle bgColor=#fff7ee height=19>

<div align="center"><table height="28" width="174" align="center"

 background="img/background.gif">

<tr><td align="center" valign="top"><font color=#FF9518 size="3"

face="幼圆"><b>商城搜索</b></font></td></tr></table><BR>

    <TABLE cellSpacing=0 cellPadding=0 width="98%" border=0>

      <TBODY>

      <FORM action="search.aspx" method=post>

        <TR>

          <TD

             height=30 colspan="2" align=middle

borderColor=#003366 bgColor=#fff7ee><BR>

            <INPUTstyle="FONT-SIZE:12px;WIDTH:140px" name="keyword"></input> <BR>

            <BR>

      <select name="sort_id" size="1"style="font-size: 9pt">

       <option value="">查讯所有分类</option>

 <asp:Repeater id="Repeater1" runat="server">

 <ItemTemplate>

   <option value=<%# DataBinder.Eval(Container.DataItem,"sort_id")%>>

<%# DataBinder.Eval(Container.DataItem,"sort_name")%></option>   

 </ItemTemplate>

 </asp:Repeater>

      </select>

        <INPUT type=image src="img/search.gif"></input>

        <BR> <BR></TD>

        </TR>

      </FORM>

      <tr>

        <td width="168" height="2">

        <td width="3">

      <tr>

        <td height="17" valign="top"></TBODY>

        <td>

    </TABLE>

  </div></TD>

5.4  新闻公告管理

该模块设计的目的在于发布产品的信息,起到宣传产品,增加商品的交易量等的功能。该模块主要包括新闻添加和新闻的修改和删除。这部分涉及到的aspx文件主要有ad_addnews、ad_delnews、ad_editnewssave、ad_newssave、allnews.aspx、news、innews。下面介绍的仅是新闻添加这个部分的内容。具体的效果图如图5.4所示:

图5.4 新闻添加

实现ad_addnews新闻添加这个功能的代码如下:

<%@Pagelanguage="c#"Codebehind="ad_addnews.aspx.cs" AutoEventWireup="false" Inherits="eshop.ad_addnews" %>

<html>

<head>

<link href=img/css.css rel=STYLESHEET type=text/css>

<title>新闻添加</title>

</head>

<body>

<form id="submit" runat="server">

<asp:panel id="Panel2" runat="server">

<br>

      <asp:Label id="showinfo"></asp:Label>

</asp:Panel>

<asp:panel id="Panel1" runat="server">

      <asp:ValidationSummary

              DisplayMode="BulletList"

              EnableClientScript="true"

              ShowSummary="false"

              ShowMessageBox="true"                       

              HeaderText="请正确填写以下内容"

              runat="server"/>

<div class="mframe">

<table width="600" align="center" cellspacing="0" cellpadding="0">

<br>

<tr>

<td class="tl"></td>

<td class="tm" align="center">

      <span class="tt">新闻添加</span>

</td>

<td class="tr"></td>

</tr>

</table>

<table width="600" align="center" cellspacing="0" cellpadding="0">

<tr>

<td class="ml"></td>

<td class="mm">

      <asp:Label width="100%" id="myLabel"

Style="text-align:center" runat="server"/>

      <table cellpadding="3" width="95%" align="center">

      <tr><td width="70" align="right">

             新闻标题:

      </td><td>

           <asp:TextBox Columns="20" MaxLength="50" id="title" runat="server"/>

      </td></tr>

             <tr><td width="70" align="right">

             图片地址:

      </td><td>

             <asp:TextBox Columns="20" MaxLength="50" id="hw_pic" runat="server"/>

      </td></tr>

      <tr>

     </tr>

      <tr><td align="center">

      新闻内容:

             </td><td>

             <asp:TextBox Columns="50" id="content" TextMode="MultiLine"

 rows="10" runat="server"/>

      </td></tr>

      <tr><td align="center" colspan="2">

         <asp:Button id="mybutton" text="添 加" align="center" runat="server"/>

      </td></tr>

      </table>

</td>

<td class="mr"></td>

</tr>

</table>

<table width="600" align="center" cellspacing="0" cellpadding="0" >

<tr>

<td class="bl"></td>

<td class="bm">&nbsp;</td>

<td class="br"></td>

</tr>

</table>

</div>

</asp:Panel>

</form>

</body>                                                                                        

</html>