1.项目概述与架构分析
微软刚推出了基于ASP.NET 2.0下的Pet Shop 4, 该版本有了一个全新的用户界面。是研究ASP.NET 2.0的好范例啊,大家都知道,一直以来,在.NET和Java之间争论不休,到底使用哪个平台开发的企业级应用性能最好、结构最优、生产力最高。为了用事实说话,通过对项目各方面的性能评估进而在比较.NET和Java的高下。用户做比较的这个项目就是Petshop。正因为Petshop肩负着上面所说的重任,各方面必须是最优的,架构设计应该是经过慎重考虑的。所以其一经推出,便成为了开发者、架构师等人学习、研究的典范。
日前微软推出了基于.NET Framework 2.0开发的Petshop 4。新的Petshop4实现了与Petshop 3相同甚至更多的特性,由于采用了Master Pages,Membership,以及Profile,SqlCacheDependency,但是代码量却减少了四分之一。同时,在事务、数据缓存、安全方面使用了.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的CustomASP.NET 2.0 Membership Provider
5.利用ASP.NET 2.0的Custom Oracle 和 SQL Server Profile Providers 做用户状态管理,包括购物车等
6.采用了Master Pages,取代了原来的用户控件,来实现统一的界面效果
7.使用了ASP.NET 2.0 Wizard控件实现check-out
8.使用了SqlCacheDependency来实现数据库层次的缓存更新(cache invalidation)功能
9.使用了消息队列来实现异时订单处理。
2.整体架构:
数据库:(暂略)
项目列表:从整体可以看出,Pet Shop 4的项目体系已经很庞大,考虑的方面也较3.0更全面复杂。
序号
|
项目名称
|
描述
|
1
|
BLL
|
业务逻辑层
|
2
|
CacheDependencyFactory
|
缓存依赖类的工厂类
|
3
|
WEB
|
表示层
|
4
|
DALFactory
|
数据层的抽象工厂
|
5
|
DBUtility
|
数据访问类组件
|
6
|
IBLLStrategy
|
同步/异步策略接口
|
7
|
ICacheDependency
|
缓存依赖类接口
|
8
|
IDAL
|
数据访问层接口定义
|
9
|
IMessaging
|
异时处理消息队列接口定义
|
10
|
IProfileDAL
|
Profile的数据访问层接口定义
|
11
|
Membership
|
Membership认证和授权管理
|
12
|
MessagingFactory
|
异时处理消息队列的抽象工厂
|
13
|
Model
|
业务实体
|
14
|
MSMQMessaging
|
异时处理消息队列的实现
|
15
|
OracleDAL
|
Oracle数据访问层
|
16
|
OracleProfileDAL
|
Oracle的Profile Providers
做用户状态管理,包括购物车等
|
17
|
OrderProcessor
|
后台处理进程,处理订单队列
|
18
|
Profile
|
Profile的数据访问层
|
19
|
ProfileDALFactory
|
ProfileDAL的工厂类(反射创建ProfileDAL)
|
20
|
SQLProfileDAL
|
SQL Server 的Profile Providers
做用户状态管理,包括购物车等
|
21
|
SQLServerDAL
|
SQLServer数据访问层
|
22
|
TableCacheDependency
|
缓存依赖实现类
|
项目分解:
由于整体已经有22个项目,所以,对于初学者一看就晕了,所以,我做了分解,可以大体上分几块去理解。
序号
|
项目名称
|
描述
|
1
|
WEB
|
表示层
|
2
|
Model
|
业务实体
|
3
|
BLL
|
业务逻辑层
|
4
|
DALFactory
|
数据层的抽象工厂
|
5
|
IDAL
|
数据访问层接口定义
|
6
|
SQLServerDAL
|
SQLServer数据访问层
|
7
|
OracleDAL
|
Oracle数据访问层
|
8
|
DBUtility
|
数据库访问组件基础类
|
9
|
CacheDependencyFactory
|
缓存依赖类的工厂类
|
10
|
ICacheDependency
|
缓存依赖类接口
|
11
|
TableCacheDependency
|
缓存依赖实现类
|
12
|
IBLLStrategy
|
同步/异步处理策略接口(实现在bll根据配置反射选择)
|
13
|
MessagingFactory
|
异时处理消息队列的抽象工厂
|
14
|
IMessaging
|
异时处理消息队列接口定义
|
15
|
MSMQMessaging
|
异时处理消息队列的实现
|
16
|
Profile
|
Profile的数据访问层
|
17
|
ProfileDALFactory
|
ProfileDAL的工厂类(反射创建ProfileDAL)
|
18
|
IProfileDAL
|
Profile的数据访问层接口定义
|
19
|
OracleProfileDAL
|
Oracle的Profile Providers
做用户状态管理
|
20
|
SQLProfileDAL
|
SQL Server 的Profile Providers
做用户状态管理
|
21
|
Membership
|
Membership认证和授权管理
|
22
|
OrderProcessor
|
后台处理进程,处理订单队列
|
3.Petshop 4中的设计模式:
工厂模式:
首当其冲的就是工厂模式,很容易就可以看出来,也是应用最多的。
DALFactory:数据访问层的抽象工厂(决定创建哪种数据库类型的数据访问层。可以选择:SQLServer,Oracle)
CacheDependencyFactory:缓存依赖类的工厂类。(创建具体表的缓存依赖)
MessagingFactory :异时处理消息队列的抽象工厂(反射创建具体的异时处理类)
ProfileDALFactory:ProfileDAL的工厂类(反射选择创建Oracle 和SQL Server的 ProfileDAL)
策略模式: IorderStrategy
中介模式
CategoryDataProxy ItemDataProxy ProductDataProxy
分享到:
相关推荐
Microsoft .NET Pet Shop 4 架构与技术分析,网络上搜集的比较全的资料,有这些够你看得了...
PetShop概述 系统架构设计 模式的应用 依赖注入
工厂模式: 首当其冲的就是工厂模式,很容易就可以看出来,也是应用最多的。 DALFactory:数据访问层的抽象工厂(决定创建哪种数据库类型的数据访问层。可以选择:SQLServer,Oracle) ...
Pet Shop 4.0 架构与技术分析 非常详细
Pet Shop 4.0 架构与技术分析PPT 微软刚推出了基于ASP.NET 2.0下的Pet Shop 4, 该版本有了一个全新的用户界面。是研究ASP.NET 2.0的好范例啊,大家都知道,一直以来,在.NET和Java之间争论不休,到底使用哪个平台...
Microsoft .NET Pet Shop 4 架构与技术分析
.NET Pet Shop是一个电子商务的实例,是在Microsoft的.NET平台上的一个具体实现。这个系统包含了B2C和B2B的实现。在这里我主要将的是B2C实现的部分,B2B在.NET Pet Shop里面不是重点要解决的问题。 <br>.NET Pet ...
linux 教程 本书共分二十四章,分成了十七个分卷全书课程目录:第1学时准备安装l i n u x 操作系统第2学时安装l i n u
Microsoft .NET Pet Shop 4 架构与技术分析 PetShop 4 的系统架构设计 || PetShop 4 数据访问层之数据库访问设计 ||PetShop 4 数据访问层之消息处理 || PetShop 4 之ASP.NET缓存 ||PetShop 4 之业务逻辑层设计||...
第27章 Pet Shop 4.0架构分析模块 354 27.1 Pet Shop概述 354 27.1.1 Pet Shop的发展 354 27.1.2 Pet Shop 4.0的安装前提条件 355 27.1.3 Pet Shop 4.0的安装手册 355 27.2 Pet Shop 4.0数据库分析 358 ...
技术基础 New Folder 多样式星期名字转换 [Design, C#] .NET关于string转换的一个小Bug Regular Expressions 完整的在.net后台执行javascript脚本集合 ASP.NET 中的正则表达式 常用的匹配正则表达式和实例 经典正则...