PetShop4.0--转载

        以下文章转载于http://www.cnblogs.com/dragonlhf/archive/2006/07/30/463110.html

        petshop是微软推出的企业级程序架构随着asp.net 2.0推出了petshop4.0,正好这几天没有事,研究一下,学习一下2.0的新特性,
它包括22个项目,其中有21个类库项目和一个Web站点项目,

这些项目可以分类来理解,主要包括以下几个部分,
Web         外观层
Bill                     业务逻辑层
IDAL                 数据访问层接口
DALFactory        数据层的抽象工厂
SQLServerDAL     SQL数据访问层
OracleDAL                Oracle数据访问层
Model                         业务实体层
DBUtility                    数据访问组件基础类

CacheDependencyFactory 缓存依赖的工厂类
ICacheDependency           缓存依赖类接口
TableCacheDependency   缓存依赖实现类

IBLLStrategy                      同步/异步处理策略接口
MessagingFactory               异时处理消息队列的抽象工厂
IMessaging                            异时处理消息队列接口定义
MSMQMessaging                    异时消息队列的实现

Profile                                          Profile数据访问层
ProfileDALFactory                      ProfileDAL的工厂类
IProfileDAL                                Profile数据访问层接口定义

OracleProfileDALOracleProfile Providers 做用户状态管理
SQLProfileDALSQL Server Profile Providers 做用户状态管理

MembershipMembership认证和授权管理
OrderProcessor后台处理进程,处理订单队列


SQL数据库中含有四个数据库
它们分别为:MSPetShop4 ,MSPetShop4Oreder,  MSPetShop4Profile 和MSPetShop4Servers
其中MSPetShop4有如下几个表分别为CateGory  Product Item Supplier和Inventory五个表

其中CateGory存储宠物类别有关信息Product存储宠物的商品目录Item存储宠物的详细信息
Supplier存储相关供应商的信息Inventory存储和每种宠物的具体数量

MSPetShop4Order 含有一下三个表其数据库模型如下

Order表存储了订单的详细通信信息OrderStatus记录了订单的状态LineItem记录了订单中的宠物数量等等详细信息
MSPetshopPrifile 的数据库模型如下

其中Profile表记录了客户的基本活动信息
Account 记录了客户的身份地址相关信息
Cart记录了用户的意向清单和购物列表
最后一个数据库就是MSPetShop4Servers它相当于Visual Studio内置的成员和角色管理的数据库
这里不在讨论


在这么简单的功能中建如此大的工程和复杂的数据库设计.微软肯定有自己的卖点
下面我们看看PetShop4.0中相对于3.0的新增相关技术!


System.Transactions 代替服务组件。

用强类型集合的泛型代替松散类型的 ILists。

ASP.NET 2.0 成员身份,用于用户身份验证和授权。

用于 Oracle 10G 的自定义 ASP.NET 2.0 成员身份提供程序。

ASP.NET 2.0 自定义 Oracle 和 SQL Server 配置文件提供程序,用于用户状态管理。

用母版页取代 ASP.NET Web 用户控件,从而获得一致的外观。

ASP.NET 2.0 向导控件。

使用 SqlCacheDependency(而非基于超时)的数据库级缓存失效。

启用基于消息队列构建的异步 Order 处理


在这个工程中用到了抽象工厂设计模式
我对设计模式了解的很少,明天深入学习一下抽象工厂设计模式,同时试着做一个类似多层的项目以尽快熟悉2005和了解它的新特性

本人是初学者以上内容参考了MSDN:http://www.microsoft.com/china/msdn/library/webservices/asp.net/dnbdabdasamppet4.mspx?mfr=true
http://ltp.cnblogs.com 以及asp.net2.0开发指南的相关知识,
如有错误请指出我将及时更正!
posted on 2008-03-12 16:19  prayforsmile  阅读(252)  评论(0编辑  收藏  举报