PetShop 4.0学习--体系架构

转载 2011年01月16日 20:01:00

   完成PetShop 4.0应用程序安装之后,在系统程序菜单中将新增一个Microsoft .NET Pet Shop 4.0,其中包括指向PetShop 4.0解决方案文件PetShop.sln的快捷项。单击该项,使Visual Studio 2005加载PetShop 4.0解决方案。图18-13所示显示了加载后Visual Studio 2005解决方案资源管理器窗口的截图。

在解决方案资源管理器中共包括22个项目,其中一个Web站点项目,21个类库项目。表18-1所示对这些项目进行了简要介绍。

图18-13  解决方案资源管理器

 

表18-1                         解决方案PetShop中的项目说明列表

项 目 名 称

说    明

C:/../Web/

一个Web站点项目,其中包括ASP.NET文件、用户控件、图片、配置文件、主题文件等

ICacheDependency、CacheDependencyFactory和TableCacheDependency

这3个项目使用简单工厂模式实现SQL数据缓存依赖功能的应用。ICacheDependency项目中包括接口 IPetShopCacheDependency,实现简单工厂模式中的抽象接口。CacheDependencyFactory项目用于实现简单工厂模 式中的工厂类。TableCacheDependency项目用于实现工厂模式中的具体产品类,其实现了IPetShopCacheDependency 接口成员

IDAL、DALFactory、SQLServerDAL和OracleDAL

这些项目使用简化的抽象工厂模式和依赖注入技术实现了数据访问功能。IDAL项目中定义了多个接口,例 如,ICategory、IItem等。同时,每个接口定义了由应用需求而创建的成员方法。DALFactory项目用于实现工厂类。 SQLServerDAL项目用于实现当应用程序使用SQL Server数据库作为数据存储时,抽象工厂模式中的多个具体产品类,这些类均实现了IDAL中对应接口的成员方法。OracleDAL的实现与 SQLServerDAL类似,其仅当使用Oracle数据库作为数据存储时才调用

DBUtility

该项目中包括用于实现SQL Server和Oracle数据库访问功能的帮助类。其中SqlHelper类基于Microsoft Data Access Application Block for .NET

Model

该项目中的类用于实现业务实体,例如,表示宠物的ItemInfo、表示宠物类别的CategoryInfo等

IProfileDAL、ProfileDALFactory、SQLProfileDAL、和OracleProfileDAL

这些项目使用简化的抽象工厂模式和依赖注入技术实现了个性化用户配置功能的具体数据访问。IProfileDAL项目中包 括一个接口IPetShopProfileProvider,该接口中包括多个方法。ProfileDALFactory项目用于实现工厂类。 SQLProfileDAL项目用于实现当应用程序使用SQL Server数据库作为数据存储时,抽象工厂模式中的具体产品类,该类均实现了IProfileDAL中对应接口的成员方法。 OracleProfileDAL的实现与SQLProfileDAL类似,然而其仅当使用Oracle数据库作为数据存储时才调用

Profile

该项目实现了一个继承自ProfileProvider基类的用户配置提供程序PetShopProfileProvider

Membership

该项目实现了一个继承自MembershipProvider基类的成员资格提供程序OracleMembershipProvider,该类用于当应用程序使用Oracle数据库作为数据存储时,完成成员资格管理方面的数据访问

续表

项 目 名 称

说    明

IMessaging、MessagingFactory和MSMQMessaging

这些项目使用简化的抽象工厂模式实现订单的消息队列。IMessaging项目中实现了接口IOrder,其中包括 Receive、Send等方法。MessagingFactory用于实现工厂类。MSMQMessaging项目中实现一个类Order,该类实现了 接口IOrder中定义的成员方法,其用于从消息对列中接收和发送订单

BLL、

实现应用程序业务逻辑,例如,管理宠物类别、单个宠物、宠物列表、订单处理等

IBLLStrategy

为实现同步和异步订单处理功能而定义接口IOrderStrategy。该接口中定义了Insert方法。IOraderStrategy与BLL项目中的Order、OrderAsynchronous和OrderSynchronous类共同创建应用了策略模式

OrderProcessor

该项目实现了一个控制台应用程序,用于处理来自消息队列的异步订单

 

表18-1简要介绍了PetShop 4.0包括的22个项目。在PetShop 4.0创建过程中,大量应用了ASP.NET 2.0的新增功能,例如,用户配置、成员资格管理、主题、SQL数据缓存依赖、数据访问等。另外,还包括各种设计模式应用、消息队列、同步/异步处理等。

为帮助读者更快更好地了解PetShop 4.0应用程序的实现,下面首先从体系架构分析入手,以便对应用程序的实现建立概括性了解。

体系架构简介

   企业级应用程序功能都比较复杂,因此,多数采用分层方式进行开发。通常情况下,应用程序的逻辑功能可以分为外观内容表现、数据访问、自身功能逻辑等部分。 所谓“分层”是指根据这些逻辑功能,将应用程序划分为不同的模块加以实现。此处的“模块”就是指“层”。每个层实现应用程序一个方面的逻辑功能。通过层与 层之间的交互,形成应用程序体系架构,从而实现适应于企业级应用的,功能复杂的应用程序。

   最常见的体系架构将应用程序实现划分为以下3个层:表示层、业务逻辑层和数据访问层。有关三层体系架构的基本概念,读者可参考“10.5.1 N层应用程序概述”一节。除三层体系架构之外,还出现过其他N层(N>3)体系架构。无论体系架构如何变化,都离不开三层体系架构的指引,其他N层 开发都是基于三层架构的扩展形式。

   采用软件分层开发的核心目的是为适应企业级应用日益增长的复杂度和灵活性等要求。在此核心目的指引下,通过软件分层高内聚、低耦合原则,实现易于扩展、维 护和重用的要求,同时,必须有利于开发者分工,从而提高开发效率等。然而,这种方法也有不足,例如,开发难度增大,程序执行效率有所降低等。

   PetShop 4.0作为企业级应用开发经典范例,在以上这些方面都有所考虑。随着本章内容的逐渐深入,读者将慢慢对这些内容有所了解。下面具体探讨一下PetShop 4.0的体系架构。图18-14所示显示了该应用程序体系架构图。

PetShop 4.0采用了典型的三层体系架构,将应用程序实现分为表示层、业务逻辑层和数据访问层。

  表示层

      PetShop 4.0的表示层由以下几个部分组成:一是实现常见用户界面的部分,例如,宠物类别信息、单个宠物详细信息列表、搜索等。二是实现成员管理和用户配置的部 分,例如,用户登录/退出、注册新用户、维护用户信息、购物车、意向清单等。三是现SQL数据缓存依赖的部分。这主要是一些针对Category、 Item和Product表的缓存依赖内容。四是实现处理来自消息队列的异步订单,这部分实现包含在OrderProcessor控制台程序中。以上这些 内容的实现主要利用了ASP.NET窗体、用户控件、母版页、Wizard控件、登录系列控件、各种类等。

图18-14  PetShop 4.0体系架构

 

  业务逻辑层

      业务逻辑层包含宠物商店中与核心业务相关的逻辑。例如,Category、Product、Inventory、Items和Cart类。以Cart类为 例,该类实现购物车功能,其中包括获取购物车商品数量、设置单个宠物购买数量、计算总价、添加/删除宠物等多个方法。另外,业务逻辑层中还包括实现订单处 理的Order。实现订单处理有两种方式,一种是同步订单处理,另一种是异步订单处理。

  数据访问层

      数据访问层中包含与数据存储进行交互的多种组件。这些组件在功能上和业务逻辑层相互独立。PetShop 4.0的数据访问层包括以下几个部分:一是实现针对Oracle数据库的成员资格提供程序(针对SQL Server数据库的成员资格提供程序为ASP.NET 2.0内置)。二是实现自定义用户配置提供程序,包括针对Oracle和SQL Server两种类型。三是实现部分业务逻辑所需要的数据访问功能,例如,Item、Category、Order、Inventory、Product 类等。四是实现消息队列访问功能。

另外,PetShop 4.0应用程序体系架构中还包括数据存储和对象模型。

  数据存储

      PetShop 4.0支持多种数据存储方式,例如,SQL Server 2000/2005、Oracle 10g。如果需要将数据存储在其他类型数据源中,则必须自定义数据访问层。另外,为了实现异步订单处理,PetShop 4.0中使用了消息队列MSMQ。

  对象模型

      对象模型也称为业务实体。主要用于表示数据存储中的持久对象。简单地说,业务实体可以模拟为一个或多个逻辑表,内容可能来自于一个或者多个数据库中物理表 中的字段。利用业务实体提供的方便,PetShop 4.0的3个层能够以共享方式访问、表示数据库记录。在PetShop 4.0中建立了多个业务实体,它们都包含在Model项目中,例如,表示客户信息的AddressInfo类、表示单个宠物的ItemInfo类,还有 CartItemInfo、CategoryInfo、CustomProfileInfo等。

虽然从图18-14所示的体系架构中难以区分数据存储和对象模型属于哪个层,但是通常认为,数据存储隶属于数据访问层,对象模型隶属于业务逻辑层。

从以上体系架构可以看出,PetShop 4.0具有很好的高内聚、低耦合特征,同时,易于实现扩展和维护。也比较适合于多人并行开发,有助于提高开发效率。

oracle体系架构学习

  • 2011年07月29日 12:25
  • 661KB
  • 下载

PCIe的原理及体系架构_学习笔记

  • 2015年04月24日 13:57
  • 178KB
  • 下载

Hadoop学习笔记之:HDFS体系架构

HDFS简介       HDFS有着高容错性(fault-tolerant)的特点,并且设计用来部署在低廉的(low-cost)硬件上。而且它提供高吞吐量(high throughput)来访...

BI学习笔记之二- BI的体系架构与相关技术

BI的体系架构与相关技术 一个BI系统为了满足企业管理者的要求,从浩如烟海的资料中找出其关心的数据,必须要做到以下几步: 1)为了整合各种格式的数据,清除原有数据中的错误记录—...
  • bon_mot
  • bon_mot
  • 2013年03月26日 10:36
  • 2099

嵌入式arm学习总结(六)--S3C2440体系架构学习总结

平台介绍:mini2440开发板,S3c2440主芯片 硬件信息 1.130个IO口,289个引脚17*17,BGA封装 2.电源 内核:1.25v 内存电源:1.8V GPIO:3.3v 3.芯片内...

Android学习笔记__1__Android体系架构

 Android 体系结构图 Android作为一个移动设备的平台,其软件层次结构包括了一个操作系统(OS),中间件(MiddleWare)和应用程序(Application)。根据Android的软...
  • zdingxin
  • zdingxin
  • 2011年06月24日 18:05
  • 17017

学习笔记(一):计算机体系架构的术语和基本概念

学习Computer Organization and Design>>的一些读书笔记:

Microsoft .NET PetShop 4.0 架构与技术分析(七)

六 PetShop之表示层设计 表示层(Presentation Layer)的设计可以给系统客户最直接的体验和最十足的信心。正如人与人的相交相识一样,初次见面的感觉总是永难忘怀的。一件交付给客户使...

Microsoft .NET PetShop 4.0 架构与技术分析

1.框架的概要介绍微软刚推出了基于ASP.NET 2.0 下的Pet Shop 4, 该版本有了一个全新的用户界面。是研究ASP.NET 2.0 的好范例啊,大家都知道,一直以来,在.NET ...

硬件体系架构浅析

  • 2015年01月21日 13:32
  • 1.08MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PetShop 4.0学习--体系架构
举报原因:
原因补充:

(最多只允许输入30个字)