基于.NET电子商务网站购物车功能设计与实现

2012-10-26 05:20胡必波王素芳广州工商职业技术学院50850广东白云学院50450
中国科技信息 2012年7期
关键词:购物车列表应用程序

胡必波 王素芳 .广州工商职业技术学院 50850;.广东白云学院 50450

基于.NET电子商务网站购物车功能设计与实现

胡必波1王素芳21.广州工商职业技术学院 510850;2.广东白云学院 510450

本文结合ASP.NET 2.0技术提供的个性化用户配置功能,剖析了实现电子商务网站中购物车功能关键技术,介绍实现该功能设计方法与技巧。

电子商务;购物车;个性化用户配置

电子商务是指整个事务活动和贸易活动的电子化,它通过先进的信息网络,将事务活动和贸易活动中发生关系的各方有机地联系起来。电子商务网站实际上就是销售企业为消费者提供的网上购物商城,在该网站中用户可以购买任何商品,而管理员可以对商品和订单等信息进行管理。购物车功能的实现是电子商务网站的关键,这里结合ASP.NET 2.0技术分析电子商务网站中购物车功能设计技巧。

1.电子商务网站购物车功能解析

电子商务网站最常见的是购物车功能。只要用户按照提示输入用户名和密码,就能够登录站点。当用户登录站点之后,应用程序将显示待销售商品列表和购物车信息。如图1所示,左半部分显示的是待销售商品列表,右半部分显示的购物车信息。用户可以单击待销售商品列表中的“购买”按钮,将商品添加到购物车中。同时,也可以单击购物车信息列表中的“清除”按钮来删除其中的商品。购物车可以对商品总价进行计算。当关闭应用程序并重新登录站点时,页面将显示用户上次访问应用程序时购物车操作的结果。

图1 购物车功能演示

图2 购物车类图

实现购物车功能。由应用程序需求可知,购物车主要具有添加和删除商品信息、计算车内商品总价等功能。这些功能只需要一些简单的方法就能够实现。访问、存储和显示购物车数据的机制。我们在web.config的<profile>配置节为应用程序定义了一个用户配置属性,其名称为ShoppingCart,数据类型为ShoppingCart。类型ShoppingCart是一个复杂数据类型,它的主体是购物车类。另外购物车是一个自定义数据类型,为了能够实现存储,必须注意设置该类实例对象的序列化。这样,购物车中的数据将通过Profile属性得以访问和存储。例如,访问ShoppingCart属性数据,可以调用Profile. ShoppingCart。待售商品列表数据来自SQL Serevr 2000示例数据库Northwind的数据表Products。可以使用简单的SQL语句结合数据源控件SqlDataSource来获取数据。然后,将这些数据集合绑定到GridView数据绑定控件上显示出来。为了显示购物车数据,必须使其具备与数据绑定控件集成的能力,同时要考虑如何才能更容易地实现添加、删除数据等功能。这里使用了哈希表(HashTable)来存储购物车内数据。哈希表是System.Collections名字空间提供的一个容器,用于处理类似key/value的键值对。该类提供了简单的添加、删除和检索数据方法。使用哈希表的另一原因是使用Hashtable类的Values属性可以返回ICollection类型的数据集合(也就是购物车中存储的商品数据)。该数据集合可以轻松与GridView控件绑定在一起,并将数据显示出来。

ShoppingCart.cs的文件定义类的类图如图2所示。

CartItem类以面向对象的方式构建了购物车中的单条商品对象。该类包括4个属性和一个构造函数。这四个属性分别是ID、Name、Price和Quantity。前三个属性分别对应Products数据表中的ProductID、Product Name和UnitPrice列,另外一个属性Quantity表示用户购买该商品的数量。利用CartItem类构造函数能够生成一个表示某商品的对象实例。

ShoppingCart类主要实现购物车中商品数据的添加和删除功能。该类包括一个Hashtable类型的字段_ _CartItems,以哈希表方式存储购物车内所有商品数据。ShoppingCart类还包括两个属性,一个是表示返回购物车所有商品数据的ICollection类型的CartItems属性,另一个是用于获得商品总价的属性Total。另外,该类还实现了两个方法,一个是向购物车中添加商品数据的方法AddItem,另一个是从购物车中删除指定商品的方法RemoveItem,分别使用了Hashtable类提供的Add和Remove方法。

2.实现匿名用户向注册用户迁移购物车功能

当匿名用户访问某电子商务网站时,应用程序首先不是为用户展示琳琅满目的商品,而是硬生生的显示用户注册界面。那么某些用户不会在选择商品之前,花费宝贵的时间和经历来注册。即使每个匿名用户都注册并登录站点了,也并非所有注册用户都会购买商品。这种情况的发生,不仅需要应用程序处理大量的用户注册任务,而且必然在数据库中产生大量无用数据。解决以上问题的理想方式是,首先,站点允许匿名用户登录,并使用购物车功能选择商品,然后,用户可以进行注册并使用注册帐号登录站点。这时候,购物车中显示的是用户在匿名方式下所选择商品的列表。换句话说,匿名用户购物车中的商品列表,在从匿名用户转向注册用户的过程中,平稳的转移到了注册用户的购物车中。如图3所示。

图3 匿名用户购买商品

由于允许匿名用户访问,必须在在web.config配置文件中启用应用程序的匿名验证功能,即将anonymousIdentification属性设为true。然后在ShoppingCart用户配置属性中设置allowAnonymous="true"。这样应用程序就会存储匿名用户的ShoppingCart属性数据。

在应用程序中可以增加Global.asax文件,相关代码如下。

//获取匿名用户的Profile对象

这里关键是实现ProfileModule类中的MigrateAnonymous事件。该事件在包含用户配置属性数据的匿名用户登录时发生,对应的事件处理程序是Profile_ MigrateAnonymous。与其他事件处理程序不同的是,该事件处理程序必须在Global.asax文件中定义。这里该事件主要实现了3个任务:一是从匿名用户的Profile属性中复制相关信息,并将其存储到注册用户的Profile属性中;二是为减少冗余数据,删除aspnetdb数据库中存储的匿名用户的用户配置;三是删除匿名用户标识,以避免再次为已经登录的用户激发MigrateAnonymous事件。

3.总结

购物车技术是电子商务网站关键技术之一,其功能设计实质上是使用ASP. NET 2.0提供的个性化用户配置功能,将配置信息与单个用户关联,并采用持久化方式存储信息。配置信息可以是任何与用户相关的信息,所存储的配置信息可以是任何数据类型的对象,单个用户可以是注册用户,也可以是匿名用户,持久化存储采用SQL Server数据库方式,并且无需自行创建和维护该数据库,由ASP.NET 2.0自动完成。

[1]包空军,刘海燕.ASP.NET电子商务系统设计与实现[J]. 福建电脑,2007,02

[2]罗爱群,熊丽婷,张永红. 基于Web的电子商务开发技术及系统设计[J].商场现代化,2008,10

[3]张应征, 成新红.电子商务网站中购物车及订单管理功能设计研究[J]. 企业技术开发,2010,11

10.3969/j.issn.1001-8972.2012.07.054

猜你喜欢
购物车列表应用程序
学习运用列表法
被疫情改变的购物车
扩列吧
删除Win10中自带的应用程序
谷歌禁止加密货币应用程序
购物车
购物车里的“时间线”
列表画树状图各有所长
2011年《小说月刊》转载列表
三星电子将开设应用程序下载商店