petshop4.0項目概述與架構分析
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5CNvwlbvlGdv1WZvwVZnFWbp9CXt92YuQXZuRWajNmLn9Gbi5yZuFWe5t2cvw1LcpDc0RHaiojIsJye.gif)
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更全面複雜。
項目分解 : 由于整體已經有22個項目,是以,對于初學者一看就暈了,是以,我做了分解,可以大體上分幾塊去了解。
3 .Petshop 4中的設計模式 : 工廠模式 : 首當其沖的就是工廠模式,很容易就可以看出來,也是應用最多的。 DALFactory :資料通路層的抽象工廠(決定建立哪種資料庫類型的資料通路層。可以選擇:SQLServer,Oracle) CacheDependencyFactory : 緩存依賴類的 工廠類。(建立具體表的緩存依賴) MessagingFactory : 異時處理消息隊列的 抽象工廠(反射建立具體的 異時處理類 ) ProfileDALFactory : ProfileDAL 的工廠類(反射 選擇 建立Oracle 和SQL Server的 ProfileDAL) 政策模式: IorderStrategy 中介模式 CategoryDataProxy ItemDataProxy ProductDataProxy 暫時隻看了這麼多,以後有時間繼續分解,如果你有不同的見解或經驗,也請寫下來,好讓大家來共同學習,共同探讨,共同進步。 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更全面複雜。
項目分解 : 由于整體已經有22個項目,是以,對于初學者一看就暈了,是以,我做了分解,可以大體上分幾塊去了解。
3 .Petshop 4中的設計模式 : 工廠模式 : 首當其沖的就是工廠模式,很容易就可以看出來,也是應用最多的。 DALFactory :資料通路層的抽象工廠(決定建立哪種資料庫類型的資料通路層。可以選擇:SQLServer,Oracle) CacheDependencyFactory : 緩存依賴類的 工廠類。(建立具體表的緩存依賴) MessagingFactory : 異時處理消息隊列的 抽象工廠(反射建立具體的 異時處理類 ) ProfileDALFactory : ProfileDAL 的工廠類(反射 選擇 建立Oracle 和SQL Server的 ProfileDAL) 政策模式: IorderStrategy 中介模式 CategoryDataProxy ItemDataProxy ProductDataProxy |