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Oracle的Profile 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开发指南的相关知识,
如有错误请指出我将及时更正!

转载于:https://www.cnblogs.com/prayforsmile/archive/2008/03/12/1102345.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/423883.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mybatis学习(7):Windows下安装MySQL详细教程

1、安装包下载。 下载地址:https://dev.mysql.com/downloads/mysql/ 点击下载之后,可以选择注册Oracle账号,也可以跳过直接下载。 下载完成后,选择一个磁盘内放置并解压。 2 安装教程 (1)配置环境变量 变量…

[NLP] 相对位置编码(二) Relative Positional Encodings - Transformer-XL

1. Motivation 在Transformer-XL中,由于设计了segments,如果仍采用transformer模型中的绝对位置编码的话,将不能区分处不同segments内同样相对位置的词的先后顺序。 比如对于$segment_i$的第k个token,和$segment_j$的第k个token的…

配置文件 web.config 的讨论

可以直接修改&#xff0c;修改后立即生效&#xff0c;无需重新编译&#xff0c;可以把数据连接对象直接加到web.config 中&#xff0c;从而方便修改&#xff0c;如果写在类中的话&#xff0c;修改后需要重新编译1、所有的配置都必须放在<configuration></configuratio…

mybatis学习(8):The server time zone value '???ú±ê×??±??' is unrecognized or represents more

【报错信息】 【百度翻译】 服务器时区值???????无法识别或表示多个时区。如果要利用时区支持&#xff0c;必须配置服务器或JDBC驱动程序&#xff08;通过ServerTimeZone配置属性&#xff09;&#xff0c;以使用更具体的时区值 【解决方法】 数据库连接配置conf.xml(在原…

mybatis学习(9):mybatis连接mysql数据库

首先本地安装一个mysql数据库 修改账号密码 我的是root 123 并用navicate测试连接 数据库为mybatis 表名为users 我们看一下目录结构 直接上代码 user类 package com.edu.hpu.domain;/*** author Administrator*user表所对应的实体类*/ public class User {//实体类的属…

C#创建xml文件

View Code 1 XmlDocument doc new XmlDocument();2 XmlDeclaration dec doc.CreateXmlDeclaration("1.0", "GB2312", null);3 doc.AppendChild(dec);4 //创建一个根节点&#xff08;一级&#xff09;5 …

推荐几个.NET开源图表组件 [转]

转自&#xff1a;http://blog.csdn.net/liujien/archive/2005/10/03/494509.aspx推荐几个.NET开源图表组件&#xff0c;希望大家发行有其它的可以添加一下&#xff0c;说明&#xff1a;因为没有记录在哪里下载&#xff0c;所以大部分只能让大家亲自搜索一下&#xff1a; &#…

MapReduce原理与设计思想

简单解释 MapReduce 算法 一个有趣的例子 你想数出一摞牌中有多少张黑桃。直观方式是一张一张检查并且数出有多少张是黑桃&#xff1f; MapReduce方法则是&#xff1a; 给在座的所有玩家中分配这摞牌让每个玩家数自己手中的牌有几张是黑桃&#xff0c;然后把这个数目汇报给你你…

mybatis学习(11): sql server配置管理器请求失败或服务未及时响应

遇到这种情况&#xff0c;打开sql server配置管理器&#xff0c;双击【sql server网络配置】将其展开&#xff0c;双击子项【MSSQLSERVER的协议】&#xff0c;在右面的内容窗口中找到【VIA】选项将其设置为禁用就可以了。

宰相的智慧

春节的时候回北京的火车上&#xff0c;看到火车的杂志介绍央视即将播出《神探狄仁杰3》&#xff0c;一直对这部电视剧充满期待。上周我在网上看完了《神探狄仁杰3》的“黑衣社”部分&#xff0c;拍的真好看。 看《神探狄仁杰1》(《武朝迷案》)幽州案时&#xff0c;有一个镜头给…

mybatis学习(12)com.microsoft.sqlserver.jdbc.SQLServerException: 通过端口 1433 连接到主机 127.0.0.1 的 TCP/IP

检查SQL Server Configuration Manager 确定实例名为“SKYSQLEXPRESS”下的TCP/IP已经开启了&#xff1a; sql2014配置(系统为Windows8.1) 一般地可以在下图路径中找到: 进入配置管理器界面如图: 右击“TCP/IP”选择“属性”(或双击“TCP/IP”)&#xff0c;选择“IP地址”选项…

windows下eclipse调试hadoop详解

1)下载Eclipse http://www.eclipse.org/downloads/ Eclipse Standard 4.3.2 64位 2) 下载Hadoop版本对应的eclipse插件 我的hadoop是1.0.4&#xff0c;因此下载hadoop-eclipse-plugin-1.0.4.jar 下载地址&#xff1a;http://download.csdn.NET/detail/m_star_jy_sy/7376169 3&a…

WPF中得到一个控件相对其他控件的坐标

加入想得到按钮btnTest左上角相对于主窗体winTest的坐标&#xff0c;可以用如下方法&#xff1a;btnTest.TranslatePoint(new Point(0, 0), winTest) 这个方法返回一个Point类型的值。 转载于:https://www.cnblogs.com/pdfw/archive/2008/04/08/1141836.html

用python + hadoop streaming 编写分布式程序(一) -- 原理介绍,样例程序与本地调试

原文地址&#xff1a;http://www.cnblogs.com/joyeecheung/p/3757915.html 相关随笔&#xff1a; 点击打开链接 Hadoop-1.0.4集群搭建笔记用python hadoop streaming 编写分布式程序&#xff08;二&#xff09; -- 在集群上运行与监控用python hadoop streaming 编写分布式程…

mybatis学习(13): 连接数据库之前的准备(测试连接)

工具eclipse 先导入我们的jar包 链接&#xff1a;https://pan.baidu.com/s/1-dgB_x91YY4C9KnCbqIazg 提取码&#xff1a;ptp2 test 类 package test;import java.beans.Statement; import java.sql.*;public class Test {private final static String URL "jdbc:sqls…

第一百五十二期:白话Entity Framework Core数据验证

数据验证是每个项目必须存在的&#xff0c;可以防止不符合系统规范的数据进入系统进而导致系统不稳定甚至崩溃。我们可以自己编写代码进行验证&#xff0c;但是这样一方面代码量较大&#xff0c;另一方面有可能验证代码覆盖不完全。但是在 Entity Framework Core &#xff08;以…

小程序云开发实战 - 口袋工具之“历史上的今天”

前言 本项目是一个基于云开发的小程序。 本文选取项目中的一个页面 -- 历史上的今天 来做一个云开发的分享&#xff0c;会涉及云函数和云数据库。 由于是实战项目&#xff0c;关于小程序的基础知识请移步官方文档&#xff0c;本文不再赘述。 项目预览 微信搜索&#xff1a; 口袋…

第一百五十三期: 云迁移可能失败的5种方式以及成功的5种方式

通过将应用程序迁移到云平台中&#xff0c;企业可以提高安全性、数据访问、可扩展性和IT灵活性。将业务迁移到云平台还可以为企业节省成本。以下是导致企业云迁移失败的五个主要原因以及其解决方法。 作者&#xff1a;Andy Patrizio 对于大多数企业而言&#xff0c;将业务迁移…

每天一个linux命令(30): chown命令

原文地址&#xff1a;http://www.cnblogs.com/peida/archive/2012/12/04/2800684.html chown将指定文件的拥有者改为指定的用户或组&#xff0c;用户可以是用户名或者用户ID&#xff1b;组可以是组名或者组ID&#xff1b;文件是以空格分开的要改变权限的文件列表&#xff0c;支…

mybatis学习(14):log4j:ERROR Category option 1 not a decimal integer.

log4j:ERROR Category option " 1 " not a decimal integer. java.lang.NumberFormatException: For input string: " 1 " 修改log4j.xml配置文件 ### \u914D\u7F6E\u6839 ### log4j.rootLogger debug,console ,fileAppender,dailyRollingFile,ROLLING_…