以文本方式查看主题 - 曙海教育集团论坛 (http://peixun0.cn/bbs/index.asp) -- Microsoft.NET Framework (http://peixun0.cn/bbs/list.asp?boardid=78) ---- Microsoft.NET PetShop4架构与技术分析 (http://peixun0.cn/bbs/dispbbs.asp?boardid=78&id=2645) |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-- 作者:wangxinxin -- 发布时间:2010-12-15 11:21:46 -- Microsoft.NET PetShop4架构与技术分析 1.项目概述与架构分析 日前微软推出了基于.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) |