`
xp9802
  • 浏览: 1205055 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Microsoft .NET Pet Shop 4 架构与技术分析

 
阅读更多
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的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中的设计模式:

工厂模式:

首当其冲的就是工厂模式,很容易就可以看出来,也是应用最多的。

DALFactory:数据访问层的抽象工厂(决定创建哪种数据库类型的数据访问层。可以选择:SQLServer,Oracle)

CacheDependencyFactory:缓存依赖类的工厂类。(创建具体表的缓存依赖)

MessagingFactory :异时处理消息队列的抽象工厂(反射创建具体的异时处理类)

ProfileDALFactory:ProfileDAL的工厂类(反射选择创建Oracle 和SQL Server的 ProfileDAL)



策略模式: IorderStrategy







中介模式

CategoryDataProxy ItemDataProxy  ProductDataProxy






暂时只看了这么多,以后有时间继续分解,如果你有不同的见解或经验,也请写下来,好让大家来共同学习,共同探讨,共同进步。

(作者:李天平  转载请注明)


具体介绍可以参看MSDN:

.NET Pet Shop 4: Migrating an ASP.NET 1.1 Application to 2.0

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/bdasamppet4.asp



下载:

http://download.microsoft.com/download/8/0/1/801ff297-aea6-46b9-8e11-810df5df1032/Microsoft%20.NET%20Pet%20Shop%204.0.msi
分享到:
评论

相关推荐

    Microsoft .NET Pet Shop 4 架构与技术分析[资料+代码]

    《Microsoft .NET Pet Shop 4 架构与技术分析》是一份全面介绍.NET平台上的经典应用案例——Pet Shop 4的文档集。Pet Shop 4是微软为了展示.NET Framework的功能和设计模式而创建的一个示例应用程序,它采用了三层...

    Microsoft .NET Pet Shop 4

    ### Microsoft .NET Pet Shop 4 架构与技术分析 #### 一、项目概述与架构分析 Microsoft .NET Pet Shop 4(以下简称“Pet Shop 4”)是微软推出的一个基于.NET Framework 2.0的示例应用程序,旨在展示.NET 2.0的新...

    .net pet shop4

    为了实现与其他系统的集成,`.NET Pet Shop 4`可能还涉及到了Web服务(如SOAP或RESTful API),这体现了面向服务架构(SOA)的理念,提高了系统的互操作性。 7. **测试驱动开发**: 项目可能会包含单元测试和集成...

    Microsoft .NET Pet Shop 4.0.msi

    Microsoft .NET Pet Shop 4.0是一款基于Microsoft .NET Framework开发的示例应用,它展示了如何使用.NET技术来构建一个完整的电子商务平台。这款应用的设计旨在教育开发者如何利用.NET Framework的各种功能,如ASP...

    Microsoft .NET Pet Shop 4.0

    首先,.NET Pet Shop 4.0的核心技术是基于C#,这是一种面向对象的编程语言,由微软设计,旨在提高开发者的工作效率,并且与.NET Framework紧密集成。C#支持许多现代编程特性,如类、接口、泛型、枚举、委托、事件、...

    .NET Pet Shop 4.0

    总的来说,.NET Pet Shop 4.0是一个全面展示.NET开发技术的实例,通过学习和分析这个项目,开发者不仅可以掌握ASP.NET、C#、ADO.NET等基础技术,还能了解到企业级应用开发的最佳实践,如三层架构、AJAX、设计模式和...

    Microsoft .NET Pet Shop 3.x_ .NET Pet Shop 的设计模式与体系结构.docx

    《Microsoft .NET Pet Shop 3.x:.NET PetShop 的设计模式与体系结构》 Microsoft .NET Pet Shop 是一个开源的、基于.NET Framework的应用程序,它以宠物商店为背景,展示了如何构建电子商务网站。该应用旨在教育...

    Pet Shop 4 架构与技术分析

    《Pet Shop 4 架构与技术分析:深入解析工厂模式》 Pet Shop 4 是一个经典的.NET示例应用,它展示了如何利用Microsoft .NET框架进行应用程序开发。在这个案例中,我们将聚焦于其中的关键设计模式——工厂模式,来...

    Microsoft .NET Pet Shop

    总之,Microsoft .NET Pet Shop是一个极具价值的学习资源,对于希望提升.NET技术栈和企业级应用开发能力的开发者来说,它提供了丰富的实践案例和深入理解三层架构的契机。通过对这个项目的探索,开发者不仅可以提升...

    Microsoft .NET Pet Shop 4.0安装程序及系统架构设计解析

    Microsoft .NET Pet Shop 4.0是一款基于微软.NET Framework开发的示例应用,它为开发者提供了全面了解和学习.NET技术栈的机会,尤其是关于Web应用程序的设计和实现。这款应用不仅包含了详细的代码实现,还深入探讨了...

    .NET Pet Shop 4.0 多层架构

    《.NET Pet Shop 4.0 多层架构——深入解析与学习指南》 .NET Pet Shop 4.0 是一个经典的学习示例,它展示了如何使用Microsoft的.NET框架构建一个功能丰富的多层应用程序。这个项目旨在帮助开发者理解并实践如何在...

Global site tag (gtag.js) - Google Analytics