PetShop体系结构学习

PetShop体系结构学习  

PetShop4.0采用了多层应用程序体系结构,并且应用了“反射注入”技术,简间抽象工厂模式,策略模式和外观模式,从而构建了一个高内聚,低耦合的,易于扩展和维护的,适合于团队开发的小型企业分布式应用系统。并且其中使用了很多ASP.NET2.0的新特性,可以说是一个典型的学习案例项目。下面请看体系结构图:

 

    接下来分别介绍一下种个应用层的内容:
1.       表示层:
PetShop4.0的表示层由以下几个部分组成:一是实现常见的用户界面部分。例如:宠物类别的信息、单个宠物详细信息列表、搜索等。二是实现成员管理和用户配置的部分,例如:用户登陆/退出,注册新用户、维护用户信息、购物车、意向清单等。三是实现SQL数据缓存依赖的部分。这主要是一些针对Category、Item和Product表的缓存依赖内容。四是实现处理来自消息队列异步订单,这部分实现包含在OrderProcessor控制台应用程序中。以上内容主要利用了ASP.NET窗体、用户控件、母版页、Wizard、登陆系列控件,各种类等。
2.       业务逻辑层
业务逻辑层包含宠物商店与核心业务相关的逻辑。例如,Category,Product、Inventory、Items和Cart类。以Cart类为例,该类实现购物车功能,其中包括获取购物车商品的数量、设置单个宠物的购卖数量,计算总价、添加/删除宠物等多个方法。另外,业务逻辑层中还包括实现订单的Order.实现订单处理有两种方式,一种是同步订单处理,另一种是异步处理。

<script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"> </script> name="google_ads_frame" marginwidth="0" marginheight="0" src="http://pagead2.googlesyndication.com/pagead/ads?client=ca-pub-6628499292856412&dt=1200876577905&lmt=1200876584&format=468x60_as&output=html&correlator=1200876577889&channel=8929656665&url=http%3A%2F%2Fwww.cnblogs.com%2Fxuanfeng%2Farchive%2F2006%2F12%2F01%2F579499.aspx&color_bg=FFFFFF&color_text=000000&color_link=333333&color_url=666666&color_border=191919&ad_type=text_image&ref=http%3A%2F%2Fwww.baidu.com%2Fs%3Fwd%3Dpetshop%2B%25D1%25A7%25CF%25B0%26cl%3D3&cc=2093&ga_vid=162552907.1200640573&ga_sid=1200876578&ga_hid=558190760&ga_fc=true&flash=9&u_h=1024&u_w=1280&u_ah=994&u_aw=1280&u_cd=32&u_tz=-480&u_java=true" frameborder="0" width="468" scrolling="no" height="60" allowtransparency="allowtransparency">
3.       数据访问层
数据访问层包括与数据存储进行交互的多种组件。这些组件在功能上和业务逻辑层相互独立。PetShop4.0的数据访问层包括以下几个部分:一是实现针对Oracle数据库的成员资格提供程序(针对SQL Server 数据库成员资格提供程序为ASP.NET2.0内置)。二是实现自定义用户配置提供程序,包括针对Oracle和SQL Server两种类型。三是实现部分业务逻辑所需要的数据访问访问功能,例如,Item、Category、Order、Inventory、Product类等。四是实现消息队列访问功能。
4.       数据存储
PetShop4.0支持多种数据存储方式,例如,SQL Server2000/2005、Oracle 10g .如果需要将数据存储在其它类型数据源中,则必须自定义数据访问层。另外,为了实现异步订单处理,PetShop4.0中使用了消息队列MSMQ.
5.       对象模型
对象模型也称为业务实体。主要用于表示数据存储中的持久对象。简单地说,业务实体可以模拟为一个或多个逻辑表,内容可能来自于一个或者多个数据库中的表中的字段。
结束。

关键是系统架构和代码学习两方面,对初学和提高有很大帮助 petshop5.0比较大,代码已经解压出来 4.0和3.0没有解压出来,自行安装解压(需要SqlServer数据做连接或者在安装到数据库连接时直接拷贝出来) petshop5.0 基于.NET Framework 3.5 ------------ 使用LINQ to SQL改进数据访问层 PetShop.Model.DataContext.MSPetShop4DataContext 继承System.Data.Linq.DataContext PetShop.Model.ProductInfo与PetShop.Model.CategoryInfo实体类分别映射数据库PetShop.Model.ProductInfo其中的Category属性存在一对一的关系 PetShop.Model.CategoryInfo中的Products属性存在一对多的关系 使用WCF来提供RSS, web/FeedService.svc目录下 PetShop.SyndicationFeeds 并在UI层上做一些改进,如使用ASP.NET AJAX,ListView控件等。 在PetShop 5.0中引入了异步处理机制。 插入订单的策略可以分为同步和异步,两者的插入策略明显不同,但对于调用者而言,插入订单的接口是完全一样的,所以PetShop 5.0中设计了IBLLStrategy模块。 虽然在IBLLStrategy模块中,仅仅是简单的IOrderStategy,但同时也给出了一个范例和信息,那就是在业务逻辑的处理中,如果存在业务操作的多样化,或者是今后可能的变化,均应利用抽象的原理。或者使用接口,或者使用抽象类,从而脱离对具体业务的依赖。 不过在PetShop中,由于业务逻辑相对简单,这种思想体现得不够明显。 也正因为此,PetShop将核心的业务逻辑都放到了一个模块BLL中,并没有将具体的实现和抽象严格的按照模块分开。所以表示层和业务逻辑层之间的调用关系,其耦合度相对较高: PetShop4.0源代码 .NET Pet Shop4 应用程序的设计说明了构建企业 n 层 .NET 2.0 应用程序的最佳做法,这种应用程序可能需要支持各种数据库平台和部署方案。 .NET Pet Shop 4 项目的目标是: 工作效率:减少了 .NET Pet Shop 3 的代码数量 - 我们减少了近 25% 的代码。 利用 ASP.NET 2.0 的新功能 - 我们利用母版页、成员身份和配置文件,并设计出一个新的、吸引人的用户界面。 企业体系结构:构建一个灵活的最佳做法应用程序 - 我们实现了设计模式,以及表示层、业务层和数据层的分离。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值