网站建设流程及相应技术,沧州市做网站价格,wordpress的ping功能设置,著名品牌营销策划公司1#xff0e;项目概述与架构分析微软刚推出了基于ASP.NET 2.0下的Pet Shop 4, 该版本有了一个全新的用户界面。是研究ASP.NET 2.0的好范例啊#xff0c;大家都知道#xff0c;一直以来#xff0c;在.NET和Java之间争论不休#xff0c;到底使用哪个平台开发的企业级应用性能…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 PagesMembership以及ProfileSqlCacheDependency但是代码量却减少了四分之一。同时在事务、数据缓存、安全方面使用了.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 IListProductInfo GetProductsByCategory(string category) { // Return new if the string is empty if (string.IsNullOrEmpty(category)) return new ListProductInfo(); // 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更全面复杂。 序号 项目名称 描述 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 后台处理进程处理订单队列 3Petshop 4中的设计模式 工厂模式: 首当其冲的就是工厂模式很容易就可以看出来也是应用最多的。 DALFactory数据访问层的抽象工厂决定创建哪种数据库类型的数据访问层。可以选择SQLServerOracle CacheDependencyFactory缓存依赖类的工厂类。创建具体表的缓存依赖 MessagingFactory 异时处理消息队列的抽象工厂反射创建具体的异时处理类 ProfileDALFactoryProfileDAL的工厂类(反射选择创建Oracle 和SQL Server的 ProfileDAL) 策略模式: IorderStrategy 中介模式 CategoryDataProxy ItemDataProxy ProductDataProxy 暂时只看了这么多以后有时间继续分解如果你有不同的见解或经验也请写下来好让大家来共同学习共同探讨共同进步。作者李天平 转载请注明