petshop4.0文檔之一

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的数据访问层接口定义

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值