引 言
电子商务行业的蓬勃兴起,有效地推动了我国的经济发展.电子商务可以分为企业(Business)对终端客户(Customer)的电子商务(B2C)和企业(Business)对企业(Business)的电子商务(B2B)两种模式.其中,B2C是电子商务的典型模式,是企业通过 Internet 开展的在线销售活动,它直接面向消费者销售产品和服务.
消费者通过网络在网上选购商品和服务、发表相关评论及电子支付等.本文旨在设计一个基于 ELS 架构的 B2C 网上商城,对消费者能够轻松实现购物需求,对于企业可降低运营成本,提高对购物信息和商品信息管理的处理能力.
1 系统设计
B2C 网上商城通常包括用户购物和信息管理两大功能.用户购物主要是前台商品展示和用户购物的行为活动,而后台则是管理员维护商品信息、会员信息及系统设置等功能.该系统由游客、会员和管理员 3 类用户组成.该系统的主要功能描述如下:
商品展示:游客和会员可以通过商品展示列表了解商品基本信息,可以通过商品详细页面获知商品的详细情况,可以根据商品名称、商品类别、商品编号、价格、销售量等条件进行商品的查询.
用户管理:在系统中,游客只能浏览商品信息,不能进行购买活动.游客可以通过注册成为系统的会员.会员成功登录系统后,可以进行商品购买活动,也可以查看和维护个人信息,购物结束后可以注销账号.
商品购买:会员在浏览商品的过程中,可以将商品添加到自己的购物车中,会员在确认购买商品前,可对购物车中的商品进行修改和删除,确认购买后,系统将生成订单,会员可以查看自己的订单信息,可以对购买的商品进行评价.
留言板:用户可以通过留言板对商城服务情况和热点信息进行交流和讨论.
2 ELS 架构
本系统所采用的 ELS 架构基于分层设计,包括表示层、业务逻辑层、数据访问层、模型层.表示层是系统的 UI 部分,负责用户与整个系统的交互,采用JQuery 下的封装框架 EasyUI.业务逻辑层封装业务处理逻辑,一部分位于后台 ASHX 文件中用于处理数据格式转换,另一部分位于实现具体业务逻辑的类中.数据访问层主要负责数据库的访问,采用 LINQ-toSQL 技术封装对数据库的添加、删除、修改、查询操作.模型层采用 LINQtoSQL 提供的轻量级对象关系映射框架,将关系数据库映射为对象,其整体系统架构如图 1 所示.
3 系统实现
3.1 模型层
系统中所涉及的可以抽象出来的实体模型有会员(Users)、商品类别(GoodsType)、商品(Goods)、商品评价(GoodEvaluate)、购物车(SCar)、购物车信息(SCarInfo)、留言(BBSNote)、留言回复(BBSAnswer)、管理员(Admins).然后通过 LINQtoSQL ORM 方式实现关系到对象的映射(即创建实体类),利用 Data-Content( 数据上下文) 作为数据模型和对象之间的桥梁,映射数据库中表的字段,把查询语法转化为 SQL语句.
3.2 数据访问层
数据访问层主要采用 LINQtoSQL 技术.LINQ-toSQL 进行数据库的 CRUD(Create、Research、Update、Delete) 操作主要通过泛型类 List<TEntity> 类中的方法,使用 DataContext 对象映射和连接数据库,执行SQL 命令.限于篇幅,以下只以显示商品类别所有数据为例来介绍数据访问层、业务逻辑层和表示层的实现方法.在数据访问层,使用 LINQtoSQL 完成数据查询的主要代码如下:
public static List<LqGoodsType> GetLqGoodsType()
{
SMDataContext dc = new SMDataContext (DB-
Helper.Connection);
var q = from g in dc.LqGoodsType
select g;
return q.ToList<LqGoodsType>();
}
3.3 业务逻辑层
业务逻辑层是数据访问层与表示层之间的桥梁,为客户端提供了静态的方法来实现具体的操作代码,并转换成表示层所需要的数据格式,主要代码如下.
// 调用数据访问层的方法获取商品类别所有数据
public static List<GoodsType> GetGoodsType() {
return GoodsTypeDAL.GetGoodsType();
}
// 定义表示层所需要的数据格式
public string GetListString(List<LqGoodsType> ogt)
{
int i = 0;
string json = "{\"rows\":[";
foreach (var o in ogt) {
if (i++ > 0) {
json += ",";
}
string node = "{\"tID\":" + o.tID + ",\"tName\":
\"" + o.tName + "\",\"tImg\":\"" + o.tImg + "\"}";
json += node;
}
json += "]}";
return json;
}
3.4 表示层
表示层负责数据的展示和与用户的交互,系统为了降低界面和显示逻辑的耦合度,不再采用 ASP.
NET 服务器端控件,而是通过 EasyUI 框架提供的各种组件来完成系统界面.通过 Ajax 技术与服务器进行数据交换.以下代码使用 EasyUI 的 DataGrid 来实现商品类别的展示.
<table class="easyui-datagrid" title=" 商品类别管
理 " style="width:700px;height:300px" rownum-
bers="true" singleSelect="true" url="GoodsType.ashx"
method="get">
<thead><tr>
<th field="tID" style="width:80px"> 类别编
号 </th>
<th field="tName" style="width:100px"> 类别
名称 </th>
<th field="tImg" style="width:80px;
text-align:right"> 类别图片 </th>
</tr></thead>
</table>
4 结束语
借助 EasyUI 框架、LINQtoSQL 技术等,设计了一个基于 ELS 架构的网上商城系统,该架构使系统开发层次清晰,可扩展性强,具有良好的用户交互体验,较好地满足用户需求,可以为类似应用的设计与开发提供借鉴.
参考文献:
[1] 蒋孝明.基于 LINQ 的人事档案管理系统的设计与实现[J].计算机与现代化,2014(3):22-25.
[2] 丁士锋,朱 毅, 杨明羽,等.C# 3.0 与.NET 3.5 高级编程[M]. 北京: 清华大学出版社,2009:55-60.
[3] 王振杰. 基于 LINQ 的 BS 开发架构的设计与应用 [D].济南:山东大学,2011.
[4] 张 林,肖 毅.基于 jQuery 的在线电子名片制作系统设计与实现 [J].电脑开发与应用,2013(6):10-13.
[5] 陈 焜.基于 LINQ 与 Ajax 技术的办公自动化系统[J].电脑知识与技术,2013(7):22-24.