petshop4.0文檔之一

PetShop4.0架构分析
PetShop4.0基于.NET Framework 2.0开发,通过采用MasterPages、Membership等功能,相比PetShop3.0减少了25%的代码量。整体架构包含表示层、业务逻辑层等多个模块,支持多种数据库,并利用消息队列实现异步处理。

1.项目概述与架构分析
       微软刚推出了基于ASP.NET 2.0下的Pet Shop 4, 该版本有了一个全新的用户界面。是研究ASP.NET 2.0的好范例啊,大家都知道,一直以来,在.NETJava之间争论不休,到底使用哪个平台开发的企业级应用性能最好、结构最优、生产力最高。为了用事实说话,通过对项目各方面的性能评估进而在比较.NETJava的高下。用户做比较的这个项目就是Petshop。正因为Petshop肩负着上面所说的重任,各方面必须是最优的,架构设计应该是经过慎重考虑的。所以其一经推出,便成为了开发者、架构师等人学习、研究的典范。

     日前微软推出了基于.NET Framework 2.0开发的Petshop 4。新的Petshop4实现了与Petshop 3相同甚至更多的特性,由于采用了Master PagesMembership,以及ProfileSqlCacheDependency,但是代码量却减少了四分之一。同时,在事务、数据缓存、安全方面使用了 .NET 2.0附带的特性,构建了一个灵活的最佳实践的应用程序。

 

他们利用了Project Conversion Wizard把项目从ASP.NET 1.1移植到了ASP.NET 2.0,然后做了以下改动:

1.用System.Transactions代替了原来的Serviced Components提供的事务功能

代码实现:PetShop.BLL.OrderSynchronous public void Insert(PetShop.Model.OrderInfo order)

2.用强类型的范型集合代替了原来的弱类型集合

        public IList<ProductInfo> GetProductsByCategory(string category)

        {

            // Return new if the string is empty

            if (string.IsNullOrEmpty(category))

                return new List<ProductInfo>();

 

            // Run a search against the data store

            return dal.GetProductsByCategory(category);

        }

3.采用ASP.NET 2.0 Membership来做认证和授权

4.创建了针对Oracle 10g Custom  ASP.NET 2.0 Membership Provider

5.利用ASP.NET 2.0Custom Oracle SQL Server Profile Providers 做用户状态管理,包括购物车等

6.采用了Master Pages,取代了原来的用户控件,来实现统一的界面效果

7.使用了ASP.NET 2.0 Wizard控件实现check-out

8.使用了SqlCacheDependency来实现数据库层次的缓存更新(cache invalidation)功能

9.使用了消息队列来实现异时订单处理。

4.0版本相对于3.0版本代码量的变化:(总体代码减少了25%

 

v3

v4

Presentation Layer

1,822

1,365

Model

349

395

Business Logic Layer

210

199

Data Access Layer

1,538

985

Total Lines of Code

3,919

2,944

1) 使用Wizard组件实现sign-in and check-out steps

2)使用Master Page减少了HTML代码

3)使用Membership进行权限处理

同时在4.0版本中新增加的代码:

Custom Profile

853

Oracle Membership

586

Cache Dependency

90

Message Queue

147

Total Lines of Code

1,676

 

2.整体架构:

项目列表:从整体可以看出,Pet Shop 4的项目体系已经很庞大,考虑的方面也较3.0更全面复杂。

 

 PetShop 4.0 设计研究——petShop 4.0 的命名空间 以及各个项目模块的说明

序号

项目名称

程序集名称Assembly Name

默认命名空间Default Namespace

描述

1

WEB

 

 

表示层

2

Model

PetShop.Model

PetShop.Model

业务实体

3

BLL

PetShop.BLL

PetShop.BLL

业务逻辑层

4

DALFactory

PetShop.DAL

PetShop.DALFactory

数据层的抽象工厂

5

IDAL

PetShop.IDAL

PetShop.IDAL

数据访问层接口定义

6

SQLServerDAL

PetShop.SQLServerDAL

PetShop.SQLServerDAL

SQLServer数据访问层

7

OracleDAL

PetShop.OracleDAL

PetShop.OracleDAL

Oracle数据访问层

8

DBUtility

PetShop.DBUtility

PetShop.DBUtility

数据库访问组件基础类

9

CacheDependencyFactory

PetShop.CacheDependencyFactory

PetShop.CacheDependencyFactory

缓存依赖类的工厂类

10

ICacheDependency

PetShop.ICacheDependency

PetShop.ICacheDependency

缓存依赖类接口

11

TableCacheDependency

PetShop.TableCacheDependency

PetShop.TableCacheDependency

缓存依赖实现类

12

IBLLStrategy

PetShop.IBLLStrategy

PetShop.IBLLStrategy

同步/异步处理策略接口(实现在bll根据配置反射选择)

13

MessagingFactory

PetShop.MessagingFactory

PetShop.MessagingFactory

异时处理消息队列的抽象工厂

14

IMessaging

PetShop.IMessaging

PetShop.IMessaging

异时处理消息队列接口定义

15

MSMQMessaging

PetShop.MsmqMessaging

PetShop.MsmqMessaging

异时处理消息队列的实现

16

Profile

PetShop.Profile

PetShop.Profile

Profile的数据访问层

17

ProfileDALFactory

PetShop.ProfileDALFactory

PetShop.ProfileDALFactory

ProfileDAL的工厂类(反射创建ProfileDAL)

18

IProfileDAL

PetShop.IProfileDAL

PetShop.IProfileDAL

Profile的数据访问层接口定义

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值