山塞一个PetShop ——源代码下载、安装、配置及体验

源代码:13033480群共享

PetShop是一个范例,微软用它来展示.Net企业系统开发的能力。业界有许多.Net与J2EE之争,许多数据是从微软的PetShop和Sun的PetStore而来。这种争论不可避免带有浓厚的商业色彩,对于我们开发人员而言,没有必要过多关注。然而PetShop随着版本的不断更新,至现在基于.Net 2.0的PetShop4.0为止,整个设计逐渐变得成熟而优雅,而且有很多可以借鉴之处。PetShop是一个小型的项目,系统架构与代码都比较简单,却也凸现了许多颇有价值的设计与开发理念。

 

一、源代码下载

高速下载地址:http://download.csdn.net/detail/yousuosi/3732384

原始地址:http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/bdasamppet4.asp

 

 二、源代码安装

傻瓜式安装,安装时注意这么两点就行了:

1、选择完全安装,这样,安装时会把数据库直接安装上。

2、运行前,要“重新生成解决方案”。

 

三、配置及体验

1、注册与登录

数据库里已经有12个注册用户,分别是:

demo, AdamBarr, KimAbercrombie, RobYoung, TomYoutsey, GaryWYukish, RobCaron, KarinZimprich, RandallBoseman, KevinKennedy, DianeTibbott, or GarrettYoung. 密码都是:pass@word1.

结帐离开时(Check Out),会要求登录,你也可以自己注册一个用户名,注册时注意密码要足够复杂,类似pass@word1,或者干脆就用个邮箱当密码吧。

使用自己注册的用户名结帐时,输入信息比较烦,格式有要求,不如直接使用系统提供的12个用户名,结帐信息就可以不用再输入了。

2、启动MSDTC服务

提交定单时(Submit Order),服务器 'J7-T2\SQLEXPRESS' 上的 MSDTC 不可用。

只要在windows控制面版-->管理工具-->服务-->Distributed   Transaction   Coordinator-->属性-->启动即可。

这时,查看数据库MSPetShop4Orders中的表Orders,可看到,有一条定单(Order)记录。

 

3、异步定单模式

以上是PetShop4.0默认的同步定单模式(OrderSynchronous),如果要工作在异步定单模式(OrderAsynchronous),还需进行如下设置:

(1)、添加一人私有队列“PSOrders”,这个私有队伍是“事务性”的。

(2)、修改web.config中的"OrderStrategyClass"字段为异步模式OrderAsynchronous
<add key="OrderStrategyClass" value="PetShop.BLL.OrderAsynchronous"/>

(3)、把Web.config文件中"OrderQueuePath"的值中,MachineName换成你的机器名:

<add key="OrderQueuePath" value="FormatName:DIRECT=OS:MachineName\Private$\PSOrders"/>

(4)、把OrderProcessor 项目app.config中的"OrderQueuePath"值中,MachineName换成你的机器名:

<add key="OrderQueuePath" value="FormatName:DIRECT=OS:MachineName\Private$\PSOrders"/>

异步模式,定单没写入消息队列,没有出错提示,这一点有点讨厌…

貌似PetShop要重新启动…,

 (5)、使用SQLEXPRESS的,需要修改app.config中的连接字符串:

server=(local)\SQLEXPRESS

(6)为数据库添加登录名mspetshop,密码为pass@word1,并设置服务器角色为sysadmin。当然你也可以修改app.config中的连接字符串中的用户名和密码。

 

运行调试异步消息处理功能时,提交定单后,定单信息在消息队列里,运行OrderProcessor(也可以先运行),会定时查看这个消息队列,

一旦有定单,马上取出,并把定单写到Orders表中。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
关键是系统架构和代码学习两方面,对初学和提高有很大帮助 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、付费专栏及课程。

余额充值