[b]1[/b][b][font=宋体].项目概述与架构分析
[/font][/b][font=宋体][size=9pt]微软刚推出了基于ASP.NET 2.0下的Pet Shop 4, 该版本有了一个全新的用户界面。是研究ASP.NET 2.0的好范例啊,大家都知道,一直以来,在.NET和Java之间争论不休,到底使用哪个平台开发的企业级应用性能最好、结构最优、生产力最高。为了用事实说话,通过对项目各方面的性能评估进而在比较.NET和Java的高下。用户做比较的这个项目就是Petshop。正因为Petshop肩负着上面所说的重任,各方面必须是最优的,架构设计应该是经过慎重考虑的。所以其一经推出,便成为了开发者、架构师等人学习、研究的典范。[/size][/font]
[font=宋体][size=9pt]日前微软推出了基于.NET Framework 2.0开发的Petshop 4。新的Petshop4实现了与Petshop 3相同甚至更多的特性,由于采用了Master Pages,Membership,以及Profile,SqlCacheDependency,但是代码量却减少了四分之一。同时,在事务、数据缓存、安全方面使用了.NET 2.0附带的特性,构建了一个灵活的最佳实践的应用程序。[/size][/font]
[font=宋体][size=9pt][img]http://images.cnblogs.com/cnblogs_com/ltp/46234/o_bdasamppet401.gif[/img][/size][/font]
[font=宋体][size=9pt]他们利用了Project Conversion Wizard把项目从ASP.NET 1.1移植到了ASP.NET 2.0,然后做了以下改动:[/size][/font]
[font=宋体][size=9pt]1[/size][/font][font=宋体][size=9pt].用System.Transactions代替了原来的Serviced Components提供的事务功能[/size][/font]
[font=宋体][size=9pt]代码实现:PetShop.BLL.OrderSynchronous 的 [/size][/font][font=新宋体][size=9pt]public[/size][/font][font=新宋体][size=9pt] [color=blue]void[/color] Insert(PetShop.Model.[color=teal]OrderInfo[/color] order)[/size][/font][font=新宋体][size=9pt]。[/size][/font][font=宋体][size=9pt][/size][/font]
[font=宋体][size=9pt]2[/size][/font][font=宋体][size=9pt].用强类型的范型集合代替了原来的弱类型集合[/size][/font]
[align=left][font=新宋体][size=9pt]
[color=blue]public[/color] [color=teal]IList[/color]<[color=teal]ProductInfo[/color]> GetProductsByCategory([color=blue]string[/color] category)[/size][/font][/align]
[align=left][font=新宋体][size=9pt]
{[/size][/font][/align]
[align=left][font=新宋体][size=9pt]
[color=green]// Return new if the string is empty[/color][/size][/font][/align]
[align=left][font=新宋体][size=9pt]
[color=blue]if[/color] ([color=blue]string[/color].IsNullOrEmpty(category))[/size][/font][/align]
[align=left][font=新宋体][size=9pt]
[color=blue]return[/color] [color=blue]new[/color] [color=teal]List[/color]<[color=teal]ProductInfo[/color]>();[/size][/font][/align]
[align=left][font=新宋体][size=9pt][/size][/font][/align]
[align=left][font=新宋体][size=9pt]
[color=green]// Run a search against the data store[/color][/size][/font][/align]
[align=left][font=新宋体][size=9pt]
[color=blue]return[/color] dal.GetProductsByCategory(category);[/size][/font][/align]
[font=新宋体][size=9pt]
}[/size][/font][font=宋体][size=9pt][/size][/font]
[font=宋体][size=9pt]3[/size][/font][font=宋体][size=9pt].采用ASP.NET 2.0 Membership来做认证和授权 [/size][/font]
[font=宋体][size=9pt]4[/size][/font][font=宋体][size=9pt].创建了针对Oracle 10g的Custom
ASP.NET 2.0 Membership Provider[/size][/font]
[font=宋体][size=9pt]5[/size][/font][font=宋体][size=9pt].利用ASP.NET 2.0的Custom Oracle 和 SQL Server Profile Providers 做用户状态管理,包括购物车等[/size][/font]
[font=宋体][size=9pt]6[/size][/font][font=宋体][size=9pt].采用了Master Pages,取代了原来的用户控件,来实现统一的界面效果[/size][/font]
[font=宋体][size=9pt]7[/size][/font][font=宋体][size=9pt].使用了ASP.NET 2.0 Wizard控件实现check-out [/size][/font]
[font=宋体][size=9pt]8[/size][/font][font=宋体][size=9pt].使用了SqlCacheDependency来实现数据库层次的缓存更新(cache invalidation)功能[/size][/font]
[font=宋体][size=9pt]9[/size][/font][font=宋体][size=9pt].使用了消息队列来实现异时订单处理。[/size][/font]
[b][font=宋体][size=10.5pt][/size][/font][/b]
[b][font=宋体][size=10.5pt]2.[/size][/font][/b][b][font=宋体][size=10.5pt]整体架构:[/size][/font][/b]
[font=宋体][size=9pt][img]http://images.cnblogs.com/cnblogs_com/ltp/46234/o_bdasamppet409L.gif[/img]
[b]数据库[/b]:(暂略)[/size][/font]
[font=宋体][size=9pt][b]项目列表[/b]:从整体可以看出,Pet Shop 4的项目体系已经很庞大,考虑的方面也较3.0更全面复杂。[/size][/font]
[font=宋体][size=9pt][img]http://images.cnblogs.com/cnblogs_com/ltp/46234/o_petshop.JPG[/img][/size][/font]
[font=宋体][size=9pt][/size][/font]
[table=80%][tr][td=1,1,40][align=center][b][font=宋体][size=9pt]序号[/size][/font][/b][/align]
[/td][td=1,1,175][align=center][b][font=宋体][size=9pt]项目名称[/size][/font][/b][/align]
[/td][td=1,1,311][align=center][b][font=宋体][size=9pt]描述[/size][/font][/b][/align]
[/td][/tr][tr][td=1,1,40][align=center][font=宋体][size=9pt]1[/size][/font][/align]
[/td][td=1,1,175][font=宋体][size=9pt]BLL[/size][/font]
[/td][td=1,1,311][font=宋体][size=9pt]业务逻辑层[/size][/font]
[/td][/tr][tr][td=1,1,40][align=center][font=宋体][size=9pt]2[/size][/font][/align]
[/td][td=1,1,175][font=宋体][size=9pt]CacheDependencyFactory[/size][/font]
[/td][td=1,1,311][font=新宋体][size=9pt]缓存依赖类的[/size][/font][font=宋体][size=9pt]工厂类[/size][/font]
[/td][/tr][tr][td=1,1,40][align=center][font=宋体][size=9pt]3[/size][/font][/align]
[/td][td=1,1,175][font=宋体][size=9pt]WEB[/size][/font]
[/td][td=1,1,311][font=宋体][size=9pt]表示层[/size][/font]
[/td][/tr][tr][td=1,1,40][align=center][font=宋体][size=9pt]4[/size][/font][/align]
[/td][td=1,1,175][font=宋体][size=9pt]DALFactory[/size][/font]
[/td][td=1,1,311][font=宋体][size=9pt]数据层的抽象工厂[/size][/font]
[/td][/tr][tr][td=1,1,40][align=center][font=宋体][size=9pt]5[/size][/font][/align]
[/td][td=1,1,175][font=宋体][size=9pt]DBUtility[/size][/font]
[/td][td=1,1,311][font=宋体][size=9pt]数据访问类组件[/size][/font]
[/td][/tr][tr][td=1,1,40][align=center][font=宋体][size=9pt]6[/size][/font][/align]
[/td][td=1,1,175][font=宋体][size=9pt]IBLLStrategy[/size][/font]
[/td][td=1,1,311][font=新宋体][size=9pt]同步/异步策略接口[/size][/font][font=宋体][size=9pt][/size][/font]
[/td][/tr][tr][td=1,1,40][align=center][font=宋体][size=9pt]7[/size][/font][/align]
[/td][td=1,1,175][font=宋体][size=9pt]ICacheDependency[/size][/font]
[/td][td=1,1,311][font=新宋体][size=9pt]缓存依赖类[/size][/font][font=宋体][size=9pt]接口[/size][/font]
[/td][/tr][tr][td=1,1,40][align=center][font=宋体][size=9pt]8[/size][/font][/align]
[/td][td=1,1,175][font=宋体][size=9pt]IDAL[/size][/font]
[/td][td=1,1,311][font=宋体][size=9pt]数据访问层接口定义[/size][/font]
[/td][/tr][tr][td=1,1,40][align=center][font=宋体][size=9pt]9[/size][/font][/align]
[/td][td=1,1,175][font=宋体][size=9pt]IMessaging[/size][/font]
[/td][td=1,1,311][font=新宋体][size=9pt]异时处理消息队列接口定义[/size][/font][font=宋体][size=9pt][/size][/font]
[/td][/tr][tr][td=1,1,40][align=center][font=宋体][size=9pt]10[/size][/font][/align]
[/td][td=1,1,175][font=宋体][size=9pt]IProfileDAL[/size][/font]
[/td][td=1,1,311][font=新宋体][size=9pt]Profile[/size][/font][font=新宋体][size=9pt]的数据访问层接口定义[/size][/font][font=宋体][size=9pt][/size][/font]
[/td][/tr][tr][td=1,1,40][align=center][font=宋体][size=9pt]11[/size][/font][/align]
[/td][td=1,1,175][font=宋体][size=9pt]Membership[/size][/font]
[/td][td=1,1,311][font=宋体][size=9pt]Membership[/size][/font][font=宋体][size=9pt]认证和授权管理[/size][/font][font=新宋体][size=9pt][/size][/font]
[/td][/tr][tr][td=1,1,40][align=center][font=宋体][size=9pt]12[/size][/font][/align]
[/td][td=1,1,175][font=宋体][size=9pt]MessagingFactory[/size][/font]
[/td][td=1,1,311][font=新宋体][size=9pt]异时处理消息队列的[/size][/font][font=宋体][size=9pt]抽象工厂[/size][/font]
[/td][/tr][tr][td=1,1,40][align=center][font=宋体][size=9pt]13[/size][/font][/align]
[/td][td=1,1,175][font=宋体][size=9pt]Model[/size][/font]
[/td][td=1,1,311][font=宋体][size=9pt]业务实体[/size][/font]
[/td][/tr][tr][td=1,1,40][align=center][font=宋体][size=9pt]14[/size][/font][/align]
[/td][td=1,1,175][font=宋体][size=9pt]MSMQMessaging[/size][/font]
[/td][td=1,1,311][font=新宋体][size=9pt]异时处理消息队列的实现[/size][/font][font=宋体][size=9pt][/size][/font]
[/td][/tr][tr][td=1,1,40][align=center][font=宋体][size=9pt]15[/size][/font][/align]
[/td][td=1,1,175][font=宋体][size=9pt]OracleDAL[/size][/font]
[/td][td=1,1,311][font=宋体][size=9pt]Oracle[/size][/font][font=宋体][size=9pt]数据访问层[/size][/font][font=新宋体][size=9pt][/size][/font]
[/td][/tr][tr][td=1,1,40][align=center][font=宋体][size=9pt]16[/size][/font][/align]
[/td][td=1,1,175][font=宋体][size=9pt]OracleProfileDAL[/size][/font]
[/td][td=1,1,311][font=宋体][size=9pt]Oracle[/size][/font][font=新宋体][size=9pt]的Profile Providers [/size][/font]
[font=新宋体][size=9pt]做用户状态管理,包括购物车等[/size][/font]
[/td][/tr][tr][td=1,1,40][align=center][font=宋体][size=9pt]17[/size][/font][/align]
[/td][td=1,1,175][font=宋体][size=9pt]OrderProcessor[/size][/font]
[/td][td=1,1,311][font=新宋体][size=9pt]后台处理进程,处理订单队列[/size][/font][font=宋体][size=9pt][/size][/font]
[/td][/tr][tr][td=1,1,40][align=center][font=宋体][size=9pt]18[/size][/font][/align]
[/td][td=1,1,175][font=宋体][size=9pt]Profile[/size][/font]
[/td][td=1,1,311][font=新宋体][size=9pt]Profile[/size][/font][font=新宋体][size=9pt]的数据访问层[/size][/font][font=宋体][size=9pt][/size][/font]
[/td][/tr][tr][td=1,1,40][align=center][font=宋体][size=9pt]19[/size][/font][/align]
[/td][td=1,1,175][font=宋体][size=9pt]ProfileDALFactory[/size][/font]
[/td][td=1,1,311][font=新宋体][size=9pt]ProfileDAL[/size][/font][font=新宋体][size=9pt]的工厂类(反射创建ProfileDAL)[/size][/font][font=宋体][size=9pt][/size][/font]
[/td][/tr][tr][td=1,1,40][align=center][font=宋体][size=9pt]20[/size][/font][/align]
[/td][td=1,1,175][font=宋体][size=9pt]SQLProfileDAL[/size][/font]
[/td][td=1,1,311][font=新宋体][size=9pt]SQL Server [/size][/font][font=新宋体][size=9pt]的Profile Providers [/size][/font]
[font=新宋体][size=9pt]做用户状态管理,包括购物车等[/size][/font][font=宋体][size=9pt][/size][/font]
[/td][/tr][tr][td=1,1,40][align=center][font=宋体][size=9pt]21[/size][/font][/align]
[/td][td=1,1,175][font=宋体][size=9pt]SQLServerDAL[/size][/font]
[/td][td=1,1,311][font=宋体][size=9pt]SQLServer[/size][/font][font=宋体][size=9pt]数据访问层[/size][/font]
[/td][/tr][tr][td=1,1,40][align=center][align=center][font=宋体][size=9pt]22[/size][/font][/align]
[/td][td=1,1,175][font=宋体][size=9pt]TableCacheDependency[/size][/font]
[/td][td=1,1,311][font=新宋体][size=9pt]缓存依赖实现类[/size][/font][font=宋体][size=9pt][/size][/font]
[/td][/tr][/table][/align][font=宋体][size=9pt][/size][/font]
[b][font=宋体][size=10.5pt]项目分解[/size][/font][/b][font=宋体][size=10.5pt]:[/size][/font]
[font=宋体][size=9pt]由于整体已经有22个项目,所以,对于初学者一看就晕了,所以,我做了分解,可以大体上分几块去理解。[/size][/font]
[table=80%][tr][td=1,1,40][align=center][b][font=宋体][size=9pt]序号[/size][/font][/b][/align]
[/td][td=1,1,175][align=center][b][font=宋体][size=9pt]项目名称[/size][/font][/b][/align]
[/td][td=1,1,311][align=center][b][font=宋体][size=9pt]描述[/size][/font][/b][/align]
[/td][/tr][tr][td=1,1,40][align=center][font=宋体][size=9pt]1[/size][/font][/align]
[/td][td=1,1,175][font=宋体][size=9pt]WEB[/size][/font]
[/td][td=1,1,311][font=宋体][size=9pt]表示层[/size][/font]
[/td][/tr][tr][td=1,1,40][align=center][font=宋体][size=9pt]2[/size][/font][/align]
[/td][td=1,1,175][font=宋体][size=9pt]Model[/size][/font]
[/td][td=1,1,311][font=宋体][size=9pt]业务实体[/size][/font]
[/td][/tr][tr][td=1,1,40][align=center][font=宋体][size=9pt]3[/size][/font][/align]
[/td][td=1,1,175][font=宋体][size=9pt]BLL[/size][/font]
[/td][td=1,1,311][font=宋体][size=9pt]业务逻辑层[/size][/font]
[/td][/tr][tr][td=1,1,40][align=center][font=宋体][size=9pt]4[/size][/font][/align]
[/td][td=1,1,175][font=宋体][size=9pt]DALFactory[/size][/font]
[/td][td=1,1,311][font=宋体][size=9pt]数据层的抽象工厂[/size][/font]
[/td][/tr][tr][td=1,1,40][align=center][font=宋体][size=9pt]5[/size][/font][/align]
[/td][td=1,1,175][font=宋体][size=9pt]IDAL[/size][/font]
[/td][td=1,1,311][font=宋体][size=9pt]数据访问层接口定义[/size][/font]
[/td][/tr][tr][td=1,1,40][align=center][font=宋体][size=9pt]6[/size][/font][/align]
[/td][td=1,1,175][font=宋体][size=9pt]SQLServerDAL[/size][/font]
[/td][td=1,1,311][font=宋体][size=9pt]SQLServer[/size][/font][font=宋体][size=9pt]数据访问层[/size][/font]
[/td][/tr][tr][td=1,1,40][align=center][font=宋体][size=9pt]7[/size][/font][/align]
[/td][td=1,1,175][font=宋体][size=9pt]OracleDAL[/size][/font]
[/td][td=1,1,311][font=宋体][size=9pt]Oracle[/size][/font][font=宋体][size=9pt]数据访问层[/size][/font][font=新宋体][size=9pt][/size][/font]
[/td][/tr][tr][td=1,1,40][align=center][font=宋体][size=9pt]8[/size][/font][/align]
[/td][td=1,1,175][font=宋体][size=9pt]DBUtility[/size][/font]
[/td][td=1,1,311][font=宋体][size=9pt]数据库访问组件基础类[/size][/font]
[/td][/tr][tr][td=1,1,40][align=center][font=宋体][size=9pt]9[/size][/font][/align]
[/td][td=1,1,175][font=宋体][size=9pt]CacheDependencyFactory[/size][/font]
[/td][td=1,1,311][font=新宋体][size=9pt]缓存依赖类的[/size][/font][font=宋体][size=9pt]工厂类[/size][/font]
[/td][/tr][tr][td=1,1,40][align=center][font=宋体][size=9pt]10[/size][/font][/align]
[/td][td=1,1,175][font=宋体][size=9pt]ICacheDependency[/size][/font]
[/td][td=1,1,311][font=新宋体][size=9pt]缓存依赖类[/size][/font][font=宋体][size=9pt]接口[/size][/font]
[/td][/tr][tr][td=1,1,40][align=center][font=宋体][size=9pt]11[/size][/font][/align]
[/td][td=1,1,175][font=宋体][size=9pt]TableCacheDependency[/size][/font]
[/td][td=1,1,311][font=新宋体][size=9pt]缓存依赖实现类[/size][/font][font=宋体][size=9pt][/size][/font]
[/td][/tr][tr][td=1,1,40][align=center][font=宋体][size=9pt]12[/size][/font][/align]
[/td][td=1,1,175][font=宋体][size=9pt]IBLLStrategy[/size][/font]
[/td][td=1,1,311][font=新宋体][size=9pt]同步/异步处理策略接口(实现在bll根据配置反射选择)[/size][/font][font=宋体][size=9pt][/size][/font]
[/td][/tr][tr][td=1,1,40][align=center][font=宋体][size=9pt]13[/size][/font][/align]
[/td][td=1,1,175][font=宋体][size=9pt]MessagingFactory[/size][/font]
[/td][td=1,1,311][font=新宋体][size=9pt]异时处理消息队列的[/size][/font][font=宋体][size=9pt]抽象工厂[/size][/font]
[/td][/tr][tr][td=1,1,40][align=center][font=宋体][size=9pt]14[/size][/font][/align]
[/td][td=1,1,175][font=宋体][size=9pt]IMessaging[/size][/font]
[/td][td=1,1,311][font=新宋体][size=9pt]异时处理消息队列接口定义[/size][/font][font=宋体][size=9pt][/size][/font]
[/td][/tr][tr][td=1,1,40][align=center][font=宋体][size=9pt]15[/size][/font][/align]
[/td][td=1,1,175][font=宋体][size=9pt]MSMQMessaging[/size][/font]
[/td][td=1,1,311][font=新宋体][size=9pt]异时处理消息队列的实现[/size][/font][font=宋体][size=9pt][/size][/font]
[/td][/tr][tr][td=1,1,40][align=center][font=宋体][size=9pt]16[/size][/font][/align]
[/td][td=1,1,175][font=宋体][size=9pt]Profile[/size][/font]
[/td][td=1,1,311][font=新宋体][size=9pt]Profile[/size][/font][font=新宋体][size=9pt]的数据访问层[/size][/font][font=宋体][size=9pt][/size][/font]
[/td][/tr][tr][td=1,1,40][align=center][font=宋体][size=9pt]17[/size][/font][/align]
[/td][td=1,1,175][font=宋体][size=9pt]ProfileDALFactory[/size][/font]
[/td][td=1,1,311][font=新宋体][size=9pt]ProfileDAL[/size][/font][font=新宋体][size=9pt]的工厂类(反射创建ProfileDAL)[/size][/font][font=宋体][size=9pt][/size][/font]
[/td][/tr][tr][td=1,1,40][align=center][font=宋体][size=9pt]18[/size][/font][/align]
[/td][td=1,1,175][font=宋体][size=9pt]IProfileDAL[/size][/font]
[/td][td=1,1,311][font=新宋体][size=9pt]Profile[/size][/font][font=新宋体][size=9pt]的数据访问层接口定义[/size][/font][font=宋体][size=9pt][/size][/font]
[/td][/tr][tr][td=1,1,40][align=center][font=宋体][size=9pt]19[/size][/font][/align]
[/td][td=1,1,175][font=宋体][size=9pt]OracleProfileDAL[/size][/font]
[/td][td=1,1,311][font=宋体][size=9pt]Oracle[/size][/font][font=新宋体][size=9pt]的Profile Providers [/size][/font]
[font=新宋体][size=9pt]做用户状态管理[/size][/font]
[/td][/tr][tr][td=1,1,40][align=center][font=宋体][size=9pt]20[/size][/font][/align]
[/td][td=1,1,175][font=宋体][size=9pt]SQLProfileDAL[/size][/font]
[/td][td=1,1,311][font=新宋体][size=9pt]SQL Server [/size][/font][font=新宋体][size=9pt]的Profile Providers [/size][/font]
[font=新宋体][size=9pt]做用户状态管理[/size][/font][font=宋体][size=9pt][/size][/font]
[/td][/tr][tr][td=1,1,40][align=center][font=宋体][size=9pt]21[/size][/font][/align]
[/td][td=1,1,175][font=宋体][size=9pt]Membership[/size][/font]
[/td][td=1,1,311][font=宋体][size=9pt]Membership[/size][/font][font=宋体][size=9pt]认证和授权管理[/size][/font][font=新宋体][size=9pt][/size][/font]
[/td][/tr][tr][td=1,1,40][align=center][align=center][font=宋体][size=9pt]22[/size][/font][/align]
[/td][td=1,1,175][font=宋体][size=9pt]OrderProcessor[/size][/font]
[/td][td=1,1,311][font=新宋体][size=9pt]后台处理进程,处理订单队列[/size][/font][font=宋体][size=9pt][/size][/font]
[/td][/tr][/table][/align][font=宋体][size=9pt]
[/size][/font]
[b][font=宋体][size=10.5pt][img]http://images.cnblogs.com/cnblogs_com/ltp/46234/o_bdasamppet406.gif[/img][/size][/font][/b]
[font=宋体][size=9pt][/size][/font]
[font=宋体][size=9pt][/size][/font]
[b][font=宋体][size=10.5pt]3[/size][/font][/b][b][font=宋体][size=10.5pt].Petshop 4中的设计模式[/size][/font][/b][font=宋体][size=10.5pt]:[/size][/font]
[b][font=宋体][size=9pt]工厂模式[/size][/font][/b][font=宋体][size=9pt]:[/size][/font]
[font=宋体][size=9pt]首当其冲的就是工厂模式,很容易就可以看出来,也是应用最多的。[/size][/font]
[font=宋体][size=9pt]DALFactory[/size][/font][font=宋体][size=9pt]:数据访问层的抽象工厂(决定创建哪种数据库类型的数据访问层。可以选择:SQLServer,Oracle)[/size][/font]
[font=宋体][size=9pt]CacheDependencyFactory[/size][/font][font=宋体][size=9pt]:[/size][/font][font=新宋体][size=9pt]缓存依赖类的[/size][/font][font=宋体][size=9pt]工厂类。(创建具体表的缓存依赖)[/size][/font]
[font=宋体][size=9pt]MessagingFactory [/size][/font][font=宋体][size=9pt]:[/size][/font][font=新宋体][size=9pt]异时处理消息队列的[/size][/font][font=宋体][size=9pt]抽象工厂(反射创建具体的[/size][/font][font=新宋体][size=9pt]异时处理类[/size][/font][font=宋体][size=9pt])[/size][/font]
[font=宋体][size=9pt]ProfileDALFactory[/size][/font][font=宋体][size=9pt]:[/size][/font][font=新宋体][size=9pt]ProfileDAL[/size][/font][font=新宋体][size=9pt]的工厂类(反射[/size][/font][font=宋体][size=9pt]选择[/size][/font][font=新宋体][size=9pt]创建Oracle 和SQL Server的 ProfileDAL)[/size][/font][font=宋体][size=9pt][/size][/font]
[font=宋体][size=9pt][/size][/font]
[b][font=宋体][size=9pt]策略模式: [/size][/font][/b][b][font=新宋体][size=9pt]IorderStrategy[/size][/font][/b]
[font=宋体][size=9pt][/size][/font]
[align=center][font=宋体][size=9pt][img=439,148]http://images.cnblogs.com/cnblogs_com/ltp/1.JPG[/img] [/size][/font][/align]
[font=宋体][size=9pt][/size][/font]
[b][font=宋体][size=9pt]中介模式[/size][/font][/b][font=宋体][size=9pt][/size][/font]
[font=宋体][size=9pt]CategoryDataProxy ItemDataProxy
ProductDataProxy[/size][/font]
[font=宋体][size=9pt][/size][/font]
[font=宋体][size=9pt][/size][/font]
[font=宋体][size=9pt][img=429,64]http://images.cnblogs.com/cnblogs_com/ltp/2.JPG[/img][/size][/font]
[font=宋体][size=9pt][/size][/font]
[font=宋体][size=9pt]暂时只看了这么多,以后有时间继续分解,如果你有不同的见解或经验,也请写下来,好让大家来共同学习,共同探讨,共同进步。[/size][/font]
[font=宋体][size=9pt][/size][/font]
[font=宋体][size=9pt](作者:[url=http://ltp.cnblogs.com/][color=#000080]李天平[/color][/url] [/size][/font][size=9pt]
[/size][font=宋体][size=9pt]转载请注明)[/size][/font][font=宋体][size=9pt][/size][/font]
[font=宋体][size=9pt][/size][/font]
[font=宋体][size=9pt][b]具体介绍可以参看MSDN[/b]:[/size][/font]
[font=宋体][size=9pt].NET Pet Shop 4: Migrating an ASP.NET 1.1 Application to 2.0[/size][/font]
[font=宋体][size=9pt][url=http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/bdasamppet4.asp][color=#000080]http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/bdasamppet4.asp[/color][/url][/size][/font]
[font=宋体][size=9pt][/size][/font]
[font=宋体][size=9pt][b]下载[/b]:[/size][/font]
[font=宋体][size=9pt][url=http://download.microsoft.com/download/8/0/1/801ff297-aea6-46b9-8e11-810df5df1032/Microsoft%20.NET%20Pet%20Shop%204.0.msi][color=#000080]http://download.microsoft.com/download/8/0/1/801ff297-aea6-46b9-8e11-810df5df1032/Microsoft%20.NET%20Pet%20Shop%204.0.msi[/color][/url][/size][/font]