源代码: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表中。