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 <chmetcnv w:st="on" unitname="g" sourcevalue="10" hasspace="False" negative="False" numbertype="1" tcsc="0">10g</chmetcnv>的Custom ASP.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中的设计模式<span st
分享到:
相关推荐
《Microsoft .NET Pet Shop 4 架构与技术分析》是一份全面介绍.NET平台上的经典应用案例——Pet Shop 4的文档集。Pet Shop 4是微软为了展示.NET Framework的功能和设计模式而创建的一个示例应用程序,它采用了三层...
### Microsoft .NET Pet Shop 4 架构与技术分析 #### 一、项目概述与架构分析 Microsoft .NET Pet Shop 4(以下简称“Pet Shop 4”)是微软推出的一个基于.NET Framework 2.0的示例应用程序,旨在展示.NET 2.0的新...
为了实现与其他系统的集成,`.NET Pet Shop 4`可能还涉及到了Web服务(如SOAP或RESTful API),这体现了面向服务架构(SOA)的理念,提高了系统的互操作性。 7. **测试驱动开发**: 项目可能会包含单元测试和集成...
Microsoft .NET Pet Shop 4.0是一款基于Microsoft .NET Framework开发的示例应用,它展示了如何使用.NET技术来构建一个完整的电子商务平台。这款应用的设计旨在教育开发者如何利用.NET Framework的各种功能,如ASP...
首先,.NET Pet Shop 4.0的核心技术是基于C#,这是一种面向对象的编程语言,由微软设计,旨在提高开发者的工作效率,并且与.NET Framework紧密集成。C#支持许多现代编程特性,如类、接口、泛型、枚举、委托、事件、...
总的来说,.NET Pet Shop 4.0是一个全面展示.NET开发技术的实例,通过学习和分析这个项目,开发者不仅可以掌握ASP.NET、C#、ADO.NET等基础技术,还能了解到企业级应用开发的最佳实践,如三层架构、AJAX、设计模式和...
《Microsoft .NET Pet Shop 3.x:.NET PetShop 的设计模式与体系结构》 Microsoft .NET Pet Shop 是一个开源的、基于.NET Framework的应用程序,它以宠物商店为背景,展示了如何构建电子商务网站。该应用旨在教育...
《Pet Shop 4 架构与技术分析:深入解析工厂模式》 Pet Shop 4 是一个经典的.NET示例应用,它展示了如何利用Microsoft .NET框架进行应用程序开发。在这个案例中,我们将聚焦于其中的关键设计模式——工厂模式,来...
总之,Microsoft .NET Pet Shop是一个极具价值的学习资源,对于希望提升.NET技术栈和企业级应用开发能力的开发者来说,它提供了丰富的实践案例和深入理解三层架构的契机。通过对这个项目的探索,开发者不仅可以提升...
Microsoft .NET Pet Shop 4.0是一款基于微软.NET Framework开发的示例应用,它为开发者提供了全面了解和学习.NET技术栈的机会,尤其是关于Web应用程序的设计和实现。这款应用不仅包含了详细的代码实现,还深入探讨了...
《.NET Pet Shop 4.0 多层架构——深入解析与学习指南》 .NET Pet Shop 4.0 是一个经典的学习示例,它展示了如何使用Microsoft的.NET框架构建一个功能丰富的多层应用程序。这个项目旨在帮助开发者理解并实践如何在...