NET的电子商务后台管理系统多层架构的研究与实现

时间:2022-07-16 07:37:52

NET的电子商务后台管理系统多层架构的研究与实现

摘要:讨论了.net技术的Web应用及多层架构,并结合电子商务后台管理系统来实现.NET的多层架构

关键词:.NET技术;多层架构;工厂模式;数据持久层

中图分类号:TP311文献标识码:A文章编号:1009-3044(2010)13-3411-02

Research and Implementation of Multi-layer Structure in E-commerce Background Management System Based on. NET

LI Xin1,2, LI Hong2

(1.School of Information Science and Engineering, Central South University, Changsha 412000, China; 2.School of Computer and Communication, Hunan University of Technology, Zhuzhou 412008, China)

Abstract: Discussed Web applications of. NET technologyand multi-layer structure,and combined with E-commerce background management system to achieve multi-layer architecture based on .NET.

Key words: .NET technology; multi-layer structure; factory pattern; data persistence layer

在电子商务时代,为了降低成本,提高效率,增强各企业之间的竞争力,更快地捕捉市场,进而建立长期、可持续盈得的、面向客户的商务模式。国内外服饰经营均相继地把他们的信息系统服务延伸到互联网上,现阶段比较成功的例子,如淘宝网、阿里巴巴网等。这种Internet与Web相结合的方式日益成熟,基于Web的分层架构也随之进入了快速发展及应用的阶段。

1 .NET技术的Web应用

.NET Framework即.NET框架,是一个平台,该平台支持许多语言,如C#、C++、Visual Basic、JScript等及多种应用程序开发。多样性的语言为.NET Framework的易用性提供了保证。.NET Framework除了支持多种语言外,还一个诱人的特性[2]是.NET支持不同语言之间的互相调用。

.NET框架是一个多语言组件开发和执行环境,它的体系结构由以下部分组成:通用语言运行库CLR(Common Language Runtime)、统一的类库、和等组成。通用语言运行库CLR处于.NET Framework的最低层。它是一个运行时环境,负责资源分配,同时保证应用和底层系统的分离。而统一类库实现了跨语言继承性、错误处理功能和调试功能。为数据访问提供了结构化的、功能强大的、高效的工具包。它是.NET Framework中不可缺少的一部分。是一个建立服务器端WEB应用程序的框架,它提高了性能及其伸缩性。

2 .NET多层架构的概述

随着Web技术的飞速发展,其体系结构的经历了由原来的两层结构发展到现在的三层结构,而该三层结构是指逻辑上的分层。而本文分析的多层结构是根据研究系统的需求,而进行的物理的分层结构。

2.1 逻辑上的三层架构

.NET的一个重要改进就是创建Web页面方式的改变,即实现了页面和代码分离改变了过去的Web页面编写者将代码和标记混合在同一个页面内,使得更新和维护都很费力。逻辑上的三层架构分别为显示层、逻辑层和数据层。

显示层是用户和软件交互的接口。主要完成了两个任务:一是从业务逻辑层中获取数据并显示给用户;二是实现与用户的交互,显示层将有关数据回送给逻辑层进行处理,其中可能包括数据验证、处理用户界面事件等。

逻辑层主要负责处理所有来自显示层的用户请求,为具体的应用提供事务处理、业务逻辑和业务流程等,并进行相关的数据从数据层调出或保存到数据层等操作。

数据层负责对数据库数据的处理。如对数据库数据进行增加、删除和修改等。

该逻辑上的三层架构如图1所示[3]。

2.2 物理上的多层架构

采用分层结构,开发人员可以只关注整个结构中的某一层,可以很容易的用新的实现来替换原有层次的实现,可以降低层与层的依赖,有利于标准化,有利于各层逻辑的复用。

物理上的多层架构是根据项目的需要而建立不同的层次,而在逻辑上是三层架构,物理上分为了多层。在电子商务后台管理系统的架构中,只要接口不变,一层中的变化不会影响到其他层。数据访问层DAL对业务逻辑层BLL是透明的,业务逻辑层BLL无需知道现在访问的是ORACLE数据库还是SQL SERVER数据库,用户界面层UI对业务逻辑层也是透明的,业务逻辑层无需知道用户界面层UI的输出方式是显示器还是打印机。本系统中的多层分别为用户界面层UI、业务逻辑层BLL、工厂模式层Factory、数据访问接口层IDAL、数据访问层DAL和数据持久层ENTITY。其引用关系如图2所示。

1)UI 引用 BLL。

2)BLL 引用 IDAL,Entity,使用Factory创建实例。

3)IDAL 引用Entity。

4)Entity 无引用。

5)Factory 引用IDAL,通过读取web. config里设置的程序集,加载类的实例,返回给BLL使用。

6)DAL 引用Entity和IDAL,被Factory加载的程序集,实现接口里的方法。

3 .NET多层架构的实现

3.1 用户界面层UI

用户界面层UI的价值在于,它把数据逻辑层和用户交互分离开来,这样到达业务逻辑层的请求看来都是一样。本系统采用了代码隐藏技术[1],将代码和HTML分离到不同文件中分别编写了.cs和.aspx文件,通过.aspx文件的@Page指令的属性中加入SRC属性来设置。其中后台管理系统的UI层的主界面Main.aspx文件,其中的代码隐藏设置为:@ Page Language="C#" AutoEventWireup = "true"CodeFile = "Main.aspx.cs"。

3.2 业务逻辑层BLL

该项目后台管理系统中,业务逻辑层BLL用到了Facade模式。Facade模式也称为外观模式,它为子系统中的各类提供了一个简明一致的界面,而隐藏了子系统的复杂性,使子系统更加容易使用。为了简化用户界面层对业务逻辑层的调用关系以及统一的接口,该系统框架中引入了Facade模式,如图3所示。

3.3 工厂模式层Factory

本系统的工厂模式Factory,其代码为:

public static class Factory{

...

if (list.Count == 0)

{list.Add((T)assem.CreateInstance("Dal."+classnamelist[iname])); }

...}

编写一个Factory,去加载对应的 DAL 类库。工厂Factory用到了单例模式配合反射机制来实现,并考虑到随着同时用户人数的增多,再进一步增加使用池的享元模式。除些之外,工厂Factory用到了泛型类及list.Add(T)泛型方法,这是一个类型参数,可以通过传入不同的类型。泛型通常用在集合和集合上运行的方法中。

3.4 数据访问接口层IDAL

有了数据访问DAL层,软件可以轻易移植到不同各类的数据库上运行。不同种类数据的具体编码不同,则要分开实现,但无论数据库编码怎么编写,对于业务逻辑层来说,就是用来保存数据。所以不同种类的数据库DAL层都继承了IDAL层,这样业务逻辑层就不用考虑调用的到底是哪种数据库来保存数据,只要按IDAL规定的方法去实现就行,真正存数据库的时候,到底存了哪种数据库,就看对IDAL层进行实例化的时候,生成的是哪种数据库的实例。数据访问接口层IDAL还有一个优势就是为了以后的扩展和维护。

3.5 数据访问层DAL

数据访问层DAL层主要任务是对原始数据进行操作,它封装了将对象持久化所需的行为,为业务逻辑层BLL层提供数据服务,如增加、删除、修改和查询等操作,其中数据访问层BLL层不包含任何业务逻辑,数据访问层直接调用数据持久层。为了提高维护性,采用OOP的设计思想,只有BLL层可以直接调用DAL层类中的方法,不可以跨层调用。

本系统的数据访问层DAL封装了增删改查等操作,以新闻模块数据访问层DAL为例,其对应的相关方法如下,增加Create()、删除Delete()、DeleteAll()、修改Update()、查询Find()、FindEx()。

3.6 数据持久层ENTITY

数据持久层ENTITY在开发中与数据库进行数据交互必不可少,其功能主要是负责数据库的访问。数据持久层是为业务对象提供持久能力的类的集合。几乎所有的业务应用都需要使用数据库来持久化数据,在这一领域,RDBMS(关系数据库)占据了绝对的市场。但在面向对象的应用程序和RDBMS之间却有一道鸿沟,跨越这条鸿沟需要相当的技巧。

本系统中的持久层,简单的来说,利用数据库中的表映射过来转化成类,表中的字段转换为属性,只提供了set和get方法。这不同于MVC模式中的实体层,该层中的ENTITY层并没有封闭数据库的增、删、改、查,而把它放在了数据访问层DAL层。

4 结束语

为了实现层内的高内聚,层间的低耦合,提高了编程的效率。因此使用逻辑上三层结构,物理上多层结构。其灵活性高,可重用性和可扩展性强,适合大型项目的开发。因此,本文提出的多层架构具有一定的理论基础,而且可以在很多领域得到应用。

参考文献:

[1] 张庆华 2.0 完全自学手册[M].北京:机械工业出版社,2007.

[2] 张立.完全自学手册 C#2.0[M].北京:机械工业出版社,2007.

[3] 范振钧.基于的三层结构实现方法研究[J].计算机科学,2007,34(4):289-291.

上一篇:Hspice软件在时钟产生电路设计中的应用 下一篇:中小企业内部员工管理系统的设计与实现