天天看點

petshop4.0項目概述與架構分析

petshop4.0項目概述與架構分析

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附帶的特性,建構了一個靈活的最佳實踐的應用程式。

petshop4.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.整體架構:

petshop4.0項目概述與架構分析

資料庫:(暫略)

項目清單:從整體可以看出,Pet Shop 4的項目體系已經很龐大,考慮的方面也較3.0更全面複雜。

petshop4.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 背景處理程序,處理訂單隊列
petshop4.0項目概述與架構分析

3 .Petshop 4中的設計模式 :

工廠模式 :

首當其沖的就是工廠模式,很容易就可以看出來,也是應用最多的。

DALFactory :資料通路層的抽象工廠(決定建立哪種資料庫類型的資料通路層。可以選擇:SQLServer,Oracle)

CacheDependencyFactory : 緩存依賴類的 工廠類。(建立具體表的緩存依賴)

MessagingFactory : 異時處理消息隊列的 抽象工廠(反射建立具體的 異時處理類 )

ProfileDALFactory : ProfileDAL 的工廠類(反射 選擇 建立Oracle 和SQL Server的 ProfileDAL)

政策模式: IorderStrategy

petshop4.0項目概述與架構分析

中介模式

CategoryDataProxy ItemDataProxy ProductDataProxy

petshop4.0項目概述與架構分析

暫時隻看了這麼多,以後有時間繼續分解,如果你有不同的見解或經驗,也請寫下來,好讓大家來共同學習,共同探讨,共同進步。

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附帶的特性,建構了一個靈活的最佳實踐的應用程式。

petshop4.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. 整體架構:

petshop4.0項目概述與架構分析

資料庫:(暫略)

項目清單:從整體可以看出,Pet Shop 4的項目體系已經很龐大,考慮的方面也較3.0更全面複雜。

petshop4.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 背景處理程序,處理訂單隊列
petshop4.0項目概述與架構分析

3 .Petshop 4中的設計模式 :

工廠模式 :

首當其沖的就是工廠模式,很容易就可以看出來,也是應用最多的。

DALFactory :資料通路層的抽象工廠(決定建立哪種資料庫類型的資料通路層。可以選擇:SQLServer,Oracle)

CacheDependencyFactory : 緩存依賴類的 工廠類。(建立具體表的緩存依賴)

MessagingFactory : 異時處理消息隊列的 抽象工廠(反射建立具體的 異時處理類 )

ProfileDALFactory : ProfileDAL 的工廠類(反射 選擇 建立Oracle 和SQL Server的 ProfileDAL)

政策模式: IorderStrategy

petshop4.0項目概述與架構分析

中介模式

CategoryDataProxy ItemDataProxy ProductDataProxy

petshop4.0項目概述與架構分析
暫時隻看了這麼多,以後有時間繼續分解,如果你有不同的見解或經驗,也請寫下來,好讓大家來共同學習,共同探讨,共同進步。