亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 2171 | 回復(fù): 0
打印 上一主題 下一主題

Microsoft .NET Pet Shop 4 架構(gòu)與技術(shù)分析 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2009-03-19 14:39 |只看該作者 |倒序瀏覽
Fov Web                拓展你我的視野,關(guān)注互聯(lián)網(wǎng)和網(wǎng)站相關(guān)技術(shù)與運(yùn)營。
原文:http://www.fovweb.com/web/microsoft-petshop4-architecture-and-technical-analysis/

1.項目概述與架構(gòu)分析
微軟剛推出了基于ASP.NET 2.0下的Pet Shop 4, 該版本有了一個全新的用戶界面。是研究ASP.NET 2.0的好范例啊,大家都知道,一直以來,在.NET和Java之間爭論不休,到底使用哪個平臺開發(fā)的企業(yè)級應(yīng)用性能最好、結(jié)構(gòu)最優(yōu)、生產(chǎn)力最高。為了用事實(shí)說話,通過對項目各方面的性能評估進(jìn)而在比較.NET和Java的高下。用戶做比較的這個項目就是Petshop。正因為Petshop肩負(fù)著上面所說的重任,各方面必須是最優(yōu)的,架構(gòu)設(shè)計應(yīng)該是經(jīng)過慎重考慮的。所以其一經(jīng)推出,便成為了開發(fā)者、架構(gòu)師等人學(xué)習(xí)、研究的典范。
日前微軟推出了基于.NET Framework 2.0開發(fā)的Petshop 4。新的Petshop4實(shí)現(xiàn)了與Petshop 3相同甚至更多的特性,由于采用了Master Pages,Membership,以及Profile,SqlCacheDependency,但是代碼量卻減少了四分之一。同時,在事務(wù)、數(shù)據(jù)緩存、安全方面使用了.NET 2.0附帶的特性,構(gòu)建了一個靈活的最佳實(shí)踐的應(yīng)用程序。

他們利用了Project Conversion Wizard把項目從ASP.NET 1.1移植到了ASP.NET 2.0,然后做了以下改動:
1.用System.Transactions代替了原來的Serviced Components提供的事務(wù)功能
代碼實(shí)現(xiàn):PetShop.BLL.OrderSynchronous 的 public void Insert(PetShop.Model.OrderInfo order)。
2.用強(qiáng)類型的范型集合代替了原來的弱類型集合


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來做認(rèn)證和授權(quán)

4.創(chuàng)建了針對Oracle 10g的Custom
ASP.NET 2.0 Membership Provider

5.利用ASP.NET 2.0的Custom Oracle 和 SQL Server Profile Providers 做用戶狀態(tài)管理,包括購物車等
6.采用了Master Pages,取代了原來的用戶控件,來實(shí)現(xiàn)統(tǒng)一的界面效果
7.使用了ASP.NET 2.0 Wizard控件實(shí)現(xiàn)check-out
8.使用了SqlCacheDependency來實(shí)現(xiàn)數(shù)據(jù)庫層次的緩存更新(cache invalidation)功能
9.使用了消息隊列來實(shí)現(xiàn)異時訂單處理。

2.整體架構(gòu):

數(shù)據(jù)庫:(暫略)

項目列表:從整體可以看出,Pet Shop 4的項目體系已經(jīng)很龐大,考慮的方面也較3.0更全面復(fù)雜。



序號


項目名稱


描述


1

BLL
業(yè)務(wù)邏輯層

2

CacheDependencyFactory
緩存依賴類的工廠類

3

WEB
表示層

4

DALFactory
數(shù)據(jù)層的抽象工廠

5

DBUtility
數(shù)據(jù)訪問類組件

6

IBLLStrategy
同步/異步策略接口

7

ICacheDependency
緩存依賴類接口

8

IDAL
數(shù)據(jù)訪問層接口定義

9

IMessaging
異時處理消息隊列接口定義

10

IProfileDAL
Profile的數(shù)據(jù)訪問層接口定義

11

Membership
Membership認(rèn)證和授權(quán)管理

12

MessagingFactory
異時處理消息隊列的抽象工廠

13

Model
業(yè)務(wù)實(shí)體

14

MSMQMessaging
異時處理消息隊列的實(shí)現(xiàn)

15

OracleDAL
Oracle數(shù)據(jù)訪問層

16

OracleProfileDAL
Oracle的Profile Providers
做用戶狀態(tài)管理,包括購物車等

17

OrderProcessor
后臺處理進(jìn)程,處理訂單隊列

18

Profile
Profile的數(shù)據(jù)訪問層

19

ProfileDALFactory
ProfileDAL的工廠類(反射創(chuàng)建ProfileDAL)

20

SQLProfileDAL
SQL Server 的Profile Providers
做用戶狀態(tài)管理,包括購物車等

21

SQLServerDAL
SQLServer數(shù)據(jù)訪問層

22

TableCacheDependency
緩存依賴實(shí)現(xiàn)類



項目分解
由于整體已經(jīng)有22個項目,所以,對于初學(xué)者一看就暈了,所以,我做了分解,可以大體上分幾塊去理解。

序號


項目名稱


描述


1

WEB
表示層

2

Model
業(yè)務(wù)實(shí)體

3

BLL
業(yè)務(wù)邏輯層

4

DALFactory
數(shù)據(jù)層的抽象工廠

5

IDAL
數(shù)據(jù)訪問層接口定義

6

SQLServerDAL
SQLServer數(shù)據(jù)訪問層

7

OracleDAL
Oracle數(shù)據(jù)訪問層

8

DBUtility
數(shù)據(jù)庫訪問組件基礎(chǔ)類

9

CacheDependencyFactory
緩存依賴類的工廠類

10

ICacheDependency
緩存依賴類接口

11

TableCacheDependency
緩存依賴實(shí)現(xiàn)類

12

IBLLStrategy
同步/異步處理策略接口(實(shí)現(xiàn)在bll根據(jù)配置反射選擇)

13

MessagingFactory
異時處理消息隊列的抽象工廠

14

IMessaging
異時處理消息隊列接口定義

15

MSMQMessaging
異時處理消息隊列的實(shí)現(xiàn)

16

Profile
Profile的數(shù)據(jù)訪問層

17

ProfileDALFactory
ProfileDAL的工廠類(反射創(chuàng)建ProfileDAL)

18

IProfileDAL
Profile的數(shù)據(jù)訪問層接口定義

19

OracleProfileDAL
Oracle的Profile Providers
做用戶狀態(tài)管理

20

SQLProfileDAL
SQL Server 的Profile Providers
做用戶狀態(tài)管理

21

Membership
Membership認(rèn)證和授權(quán)管理

22

OrderProcessor
后臺處理進(jìn)程,處理訂單隊列









3.Petshop 4中的設(shè)計模式
工廠模式:
首當(dāng)其沖的就是工廠模式,很容易就可以看出來,也是應(yīng)用最多的。
DALFactory:數(shù)據(jù)訪問層的抽象工廠(決定創(chuàng)建哪種數(shù)據(jù)庫類型的數(shù)據(jù)訪問層?梢赃x擇:SQLServer,Oracle)
CacheDependencyFactory緩存依賴類的工廠類。(創(chuàng)建具體表的緩存依賴)
MessagingFactory 異時處理消息隊列的抽象工廠(反射創(chuàng)建具體的異時處理類
ProfileDALFactoryProfileDAL的工廠類(反射選擇創(chuàng)建Oracle 和SQL Server的 ProfileDAL)









策略模式: IorderStrategy

中介模式
CategoryDataProxy ItemDataProxy
ProductDataProxy






暫時只看了這么多,以后有時間繼續(xù)分解,如果你有不同的見解或經(jīng)驗,也請寫下來,好讓大家來共同學(xué)習(xí),共同探討,共同進(jìn)步。


(作者:李天平
轉(zhuǎn)載請注明)


具體介紹可以參看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
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP