在WEB开发中处理复杂结构的实例

来源 :硅谷 | 被引量 : 0次 | 上传用户:rossifish
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  [摘要]传统的交互式开发在处理复杂的数据结构时采用了相当复杂的机制,并且给后期的维护工作带来极大的不便。探讨基于微软的VS.NET提供的全新WEB开发架构(framework),以实现电子商务网站的购物车的各种功能(包括购物车商品的添加,修改,删除,价格统计)为例,介绍通过自定义结构进行映射的方法,使得WEB开发更简洁高效。测试的结果表明此方法确实可行并能达到预期的目标,值得在WEB项目的开发过程中推广。
  [关键词]NET 购物车 结构 数据库
  中图分类号:TP3 文献标识码:A 文章编号:1671-7597(2008)0820105-01
  
  一、引言
  
  自从微软推出.NET架构,使得WEB开发和桌面开发的界限更加模糊,WEB开发在更高层次上获得更大的灵活性,越来越多的WEB开发人员正向此架构靠拢,.NET显示了其强大的优越性。
  在.NET出现以前,处理复杂数据结构往往伴随复杂的算法,从而使WEB应用的健壮性和可读性难以保证。以下通过.NET框架(使用VB.NET为前台开发工具,SQL2000作为后台存储,三层结构)实现电子商务(BtoC)应用的购物车的实例,充分领略.NET在这方面不可比拟的优势。
  
  二、实例分析
  
  购物车往往是电子商务网站开发的重要部分,通常客户除了浏览商品以外的绝大多数操作都和购物车有关。虽然可以用二维的关系型结构表示,但却不方便使用数据库实现,因为客户在提交前可能会多次修改购物车内容,这样会频繁访问和操作远程数据库,增加服务器负担。以下方法显示在内存中建立二维结构来实现购物车,当客户确认后生成订单,然后再一次性提交到数据库存储。
  
  三、数据结构映射
  
  首先,需要在Global.asax.vb中声明购物车数据结构。
  Public Shared lsb AsNew DataTable()
  这是一个全局成员,原因是客户可能在不同的页面填充(或删除)他的购物车,必须让任何对象都可以访问此成员。此外,购物车存储了客户选择了什么商品,多少数量以及这种商品的单价等信息,因此用表能简单映射这种复杂的关系模式。
  在商品浏览页面初始过程中使用类似以下代码:(省略与主题无关代码)
  Imports hzg.Global‘引用Global.asax.vb声明
  If Not Page.IsPostBack Then'定义购物车结构
  lsb.Columns.Add("编号",GetType(Int32))
  lsb.Columns.Add("名称",GetType(String))
  lsb.Columns.Add("单价",GetType(Single))
  lsb.Columns.Add("数量",GetType(Int32))
  lsb.Columns.Add("总价",GetType(Single))
  lsb.Columns(0).Unique=True'声明索引列
  Dim key(1) As DataColumn
  key(0)=lsb.Columns(0)
  lsb.PrimaryKey=key‘声明关键字
  
  四、在相应的触发事件中实现各种功能
  
  (一)实现向购物车添加选购商品
  现在lsb是一个结构复杂的全局成员,可以被各个页面调用。假设在商品浏览页面在商品列表中对每样商品都提供了触发链接或按钮,在触发事件中使用类似以下代码(省略与主题无关代码),这样使得用户每单击一次,就有一件商品填充进他的购物车,当然默认的数量是1。Dim sj As DataRow=lsb.NewRow()'声明一行
  Dim nr As Label=e.Item.FindControl("label3")
  sj(0)=nr.Text'添加编号
  nr=e.Item.FindControl("label6")
  sj(1)=nr.Text'添加品名
  nr=e.Item.FindControl("label8")
  sj(2)=nr.Text'添加单价
  sj(3)=1'设置缺省购买数量
  sj(4)=sj(2)*sj(3)'添加每样商品总价
  lsb.Rows.Add(sj)'加入购物车
  (二)实现对购物车的商品进行修改
  客户在选购了商品后可能会改变初衷,增加选购数量或不购买原来选择的商品。因此需要实现购物车的编辑和删除。假设已经创建编辑购物车的触发链接或按钮,在触发事件中使用类似以下代码:(省略与主题无关代码)
  If lsb.Rows.Count>0 Then Response.Redirect("mygwc.aspx")
  Else Response.Write("alert('你的购物车还是空的,请选购商品。')")
  End If
  在mygwc.aspx中使用Datagrid控件提供客户直观操作,并且对应使用类似以下代码以实现其功能:Imports hzg.Global
  If Not Page.IsPostBack Then
  Datagrid3.DataSource=lsb.DefaultView'显示购物车的内容
  Datagrid3.DataBind()
  zj()'计算总价
  End If
  在购物车中删除选购商品:
  lsb.Rows(e.Item.ItemIndex).Delete()
  在购物车中修改选购商品的数量。在用户单击“改变数量”的触发链接时,提供一个可以接受输入的文本框来事先商品数量的更改。
  Dim zhi As TextBox=e.Item.FindControl("TextBox1")
  lsb.Rows(e.Item.ItemIndex)(3)=zhi.Text
  lsb.Rows(e.Item.ItemIndex)(4)=zhi.Text*lsb.Rows(e.Item.ItemIndex)(2)
  显示目前购物车中商品的总价,这个过程在相应的事件发生时会被反复调用,以确保在用户对购物车进行修改后仍然能正确现实当前的总价,同时给一个准确的提示为用户下一步操作提供参考。
  生成订单并存储到数据库(代码略)
  
  五、结论
  
  目前有一些方法也可以在web中实现复杂的数据结构,但不外乎通过在页面中进行类的定义,然后进行包含引用,编码显得很复杂。而且往往是基于非编译语言开发的,所以在运行效率上也有缺憾。通过以上实例体现这种方法的简洁和高效,甚至可以针对某些应用开发成组件。
  
  参考文献:
  [1](美)HershBhasin著,高健英宇等译.ASP.NET专业项目实例开发[M].北京:中国水利水电出版社,2002.
  [2](美)FredBarwellRichardBlair著,康博译.ASP.NET专业项目实例开发[M].北京:清华大学出版社,2002.
其他文献
[摘要]Notes是当今唯一综合了三大核心技术的实用群件产品,它将电子邮件系统(NoteSMail)、功能强大的文档数据库和丰富的应用开发环境三部分紧密地集成在一起。  [关键词]Notes 开发环境 办公自动化系统   中图分类号:C94 文献标识码:A 文章编号:1671-7597(2008)0820066-01    LotusNotes是美国LotuS公司(现为IBM子公司)推出的群组工作
期刊
[摘要]数字滤波是数字信号处理领域中的关键技术之一,FIR数字滤波器是实现数字滤波的主要途径。基于综合EDA技术,设计特定性能指标的FIR数字滤波器的整体电路,并基于Quartus II等软件平台对设计结果进行了交互式的仿真验证。仿真结果表明,所设计的FIR数字滤波器达到了指标要求,这种基于综合EDA技术的设计方法也使得数字信号滤波系统的开发更为可靠、便捷。  [关键词]FIR滤波器 综合EDA技
期刊
[摘要]对110kV变电站的综合自动化系统的各项具体功能进行剖析,在熟悉综合自动化系统各项功能原理的基础上分析110kV无人值班变电站的电气二次设计,提出变电站电气二次设计有效的思考方法。  [关键词]变电站综合自动化 保护 测控 电气二次设计  中图分类号:TM7 文献标识码:A 文章编号:1671-7597(2008)0820037-02    一、引言    变电站是输变电系统中的重要环节,
期刊
[摘要]随着无线网络技术的发展,人们希望能够在任何时间,任何地点,以任意的方式高速地使用网络资源。对WIMAX网络进行概述,并介绍和研究WIMAX的系统内和系统间切换管理技术,最后,针对如何提高网络切换管理性能,提出新的切换策略。   [关键词]WIMAX 切换 改进  中图分类号:TP3 文献标识码:A 文章编号:1671-7597(2008)0820060-01    一、引言    随着IE
期刊
[摘要]MVC架构是将应用程序对象的模型与显示它的GUI元素相分离,在Java 编程中应用很广。  [关键词]MVC Java GUI  中图分类号:TP3 文献标识码:A 文章编号:1671-7597(2008)0820064-01    一、MVC模式介绍    模型-视图-控制器(MVC)是XeroxPARC在八十年代为编程语言Smalltalk-80发明的一种软件设计模式,它强制性的使应用
期刊
[摘要]XML作为传输和交换的数据格式标准,保证它在传输和交换过程中的安全性是非常重要的。W3C已提出许多安全相关的规格书,包含有XML数字签名、XML加密和XML密钥管理。针对上述两种方法的特性,从安全性和效率两方面上做比较以及探讨。  [关键词]XML 加密 XSLT  中图分类号:TP3 文献标识码:A 文章编号:1671-7597(2008)0820073-01    一、W3C的XML加
期刊
[摘要]为了防止应用系统和数据库操作员非法访问数据库,破坏数据库系统的安全,设计并实现数据库安全访问控制系统。该系统能够认证访问数据库的应用系统,防止应用非授权访问;它从技术和管理策略两方面着手监督控制DBA的操作,大大降低越权访问的可能性,从而提高数据库系统的安全性。  [关键词]应用系统 数据库管理员 数据访问  中图分类号:TP2 文献标识码:A 文章编号:1671-7597(2008)08
期刊
[摘要]桩基础作为建筑工程强制控制内容之一,是建筑工程质量控制重中之重。而钻孔灌注桩以其适应性强、成本适中、施工简便等特点,在工程界得到了广泛的应用。结合某溶岩地质工程实际,对钻孔灌注桩施工工艺作了深入的阐述。  [关键词]钻孔灌注桩 溶岩地质 施工工艺  中图分类号:TU7 文献标识码:A 文章编号:1671-7597(2008)0810081-02    钻孔灌注桩是建筑工程中较为成熟的技术。
期刊
[摘要]总结原装置的工作繁琐、生产率低的弱点,简要说明新装置的设计思路及设计原理,并总结新装置的特点。  [关键词]夹持装置 改进 生产率  中图分类号:TH12 文献标识码:A 文章编号:1671-7597(2008)0820098-01      兴义卷烟厂现有设备YJ23接咀机的水松纸夹持装置如图1所示,在设备运转过程中,该装置将水松纸轮毂固定在夹持座4上,使水松纸随夹持座4绕主轴7一起转动
期刊
[摘要]多层Web应用程序是当前Internet上使用最为广泛的应用开发技术,针对如何构建多层Web应用系统分析目前的主要存在问题及解决方案的几种模型。  [关键词]数据库 浏览器 MVC模型  中图分类号:TP3 文献标识码:A 文章编号:1671-7597(2008)0820074-01    多层Web应用程序是当前Internet上使用最为广泛的应用开发技术,它支持实时的信息发布,动态的用
期刊