第一部份:工厂模式

一、项目名称及描述:(实现步骤为:4-3-6-5-2-1)
1、WEB=表示层
2、BLL=业务逻辑层
3、IDAL=数据访问层接口定义
4、Model=业务实体
5、DALFactory=数据层的抽象工厂(创建反射)
6、SQLServerDAL=SQLServer数据访问层 / oracleDAL=Oracle数据访问层

DBUtility 数据库访问组件基础类

二、项目引用关系
1、Web 引用 BLL。
2、BLL 引用 IDAL,Model,使用DALFactory创建实例。
3、IDAL 引用 Model。
4、Model 无引用。
5、DALFactory 引用IDAL,通过读取web.config里设置的程序集,加载类的实例,返回给BLL使用。
6、SQLServerDAL 引用 Model和IDAL,被DALFactory加载的程序集,实现接口里的方法。

三、实现步骤
1、创建Model,实现业务实体。
2、创建IDAL,实现接口。
3、创建SQLServerDAL,实现接口里的方法。
4、增加web.config里的配置信息,为SQLServerDAL的程序集。
5、创建DALFactory,返回程序集的指定类的实例。
6、创建BLL,调用DALFactory,得到程序集指定类的实例,完成数据操作方法。
7、创建WEB,调用BLL里的数据操作方法。

注意:
1、web.config里的程序集名称必须与SQLServerDAL里的输出程序集名称一致。
2、DALFactory里只需要一个DataAccess类,可以完成创建所有的程序集实例。
3、项目创建后,注意修改各项目的默认命名空间和程序集名称。
4、注意修改解决方案里的项目依赖。
5、注意在解决方案里增加各项目引用。

第二部份:Profile的使用(也是工厂方法)
概述:PetShop的Profile通过自己的ProfileProvider来实现。

一、项目名称及描述
1、Profile=Profile的数据访问层
2、ProfileDALFactory=ProfileDAL的工厂类(反射创建ProfileDAL)
3、IProfileDAL=Profile的数据访问层接口定义
4、SQLProfileDAL=SQL Server 的Profile Providers 做用户状态管理

二、项目引用关系
1、Profile 引用 ProfileDALFactory,IProfileDAL,Model。通过ProfileDALFactory的方法创建程序集实例。
2、ProfileDALFactory 引用 IProfileDAL。实现程序集实例的方法。
3、IProfileDAL 引用 Model。实现接口。
4、SQLProfileDAL 引用 Model,IProfileDAL。被ProfileDALFactory加载的程序集,实现接口里的方法。

三、实现步骤
1、创建Model,实现业务实体。
2、创建IProfileDAL,实现接口。
3、创建SQLProfileDAL,实现接口里的方法。
4、增加web.config里的配置信息,为SQLProfileDAL的程序集。
5、创建ProfileDALFactory,返回程序集的指定类的实例。
6、创建Profile,实现Profile Provider。
7、在web.config文件中增加配置节profile,增加属性及类型,provider为Profile。
例:
<system.web>
<profileautomaticSaveEnabled="false" defaultProvider="默认的Profile Provider">
<providers>
<addname="自己命名的Provider名称" connectionStringName="配置文件里的数据库链接名称" type="自己的Provider实现类,需要自己重写" applicationName="自己定义的应用程序名称"/>
</providers>
<properties>
<addname="自己命名的Profile名称" type="自己的类,需要构建" allowAnonymous="false" provider="上面的自己命名的Provider名称"/>
</properties>
</profile>
</system.web>

注意事项:
1、Profile的type可以为自己的类,包括业务实例或方法等。
2、通过重写ProfileProvider里的部份方法,实现在自己的数据库里记录自己想要的个性化用户信息。
3、如果每个用户有大量的数据信息,则该类数据信息不要通过Profile来记录。
4、被定义为Profile的type的类,必须在类定义前增加[Serializable]以实现可序列化。
5、接口定义的类型必须为类。
6、Profile Provider类里必须增加System.Web.Profile和System.Configuration的引用到项目中。
7、如果需要支持匿名用户,增加<anonymousIdentification enabled="true" />到web.config里,在profile之间。
8、使用Profile.Save方法后,将调用ProfileDALFactory里的方法将数据保存到数据库。

因为以上内容是从HTML格式中转换得到,可能丢失了一些代码,请下载HTML源文件:

第一部份:工厂模式

一、项目名称及描述:(实现步骤为:4-3-6-5-2-1)
1、WEB=表示层
2、BLL=业务逻辑层
3、IDAL=数据访问层接口定义
4、Model=业务实体
5、DALFactory=数据层的抽象工厂(创建反射)
6、SQLServerDAL=SQLServer数据访问层 / OracleDAL=Oracle数据访问层

DBUtility 数据库访问组件基础类

二、项目引用关系
1、Web 引用 BLL。
2、BLL 引用 IDAL,Model,使用DALFactory创建实例。
3、IDAL 引用 Model。
4、Model 无引用。
5、DALFactory 引用IDAL,通过读取web.config里设置的程序集,加载类的实例,返回给BLL使用。
6、SQLServerDAL 引用 Model和IDAL,被DALFactory加载的程序集,实现接口里的方法。

三、实现步骤
1、
创建Model,实现业务实体。
2、
创建IDAL,实现接口。
3、
创建SQLServerDAL,实现接口里的方法。
4、
增加web.config里的配置信息,为SQLServerDAL的程序集。
5、
创建DALFactory,返回程序集的指定类的实例。
6、
创建BLL,调用DALFactory,得到程序集指定类的实例,完成数据操作方法。
7、
创建WEB,调用BLL里的数据操作方法。

注意:
1、web.config里的程序集名称必须与SQLServerDAL里的输出程序集名称一致。
2、DALFactory里只需要一个DataAccess类,可以完成创建所有的程序集实例。
3、项目创建后,注意修改各项目的默认命名空间和程序集名称。
4、注意修改解决方案里的项目依赖。
5、注意在解决方案里增加各项目引用。

第二部份:Profile的使用(也是工厂方法)
概述:PetShop的Profile通过自己的ProfileProvider来实现。

一、项目名称及描述
1、Profile=Profile的数据访问层
2、ProfileDALFactory=ProfileDAL的工厂类(反射创建ProfileDAL)
3、IProfileDAL=Profile的数据访问层接口定义
4、SQLProfileDAL=SQL Server 的Profile Providers 做用户状态管理

二、项目引用关系
1、Profile 引用 ProfileDALFactory,IProfileDAL,Model。通过ProfileDALFactory的方法创建程序集实例。
2、ProfileDALFactory 引用 IProfileDAL。实现程序集实例的方法。
3、IProfileDAL 引用 Model。实现接口。
4、SQLProfileDAL 引用 Model,IProfileDAL。被ProfileDALFactory加载的程序集,实现接口里的方法。

三、实现步骤
1、
创建Model,实现业务实体。
2、
创建IProfileDAL,实现接口。
3、
创建SQLProfileDAL,实现接口里的方法。
4、
增加web.config里的配置信息,为SQLProfileDAL的程序集。
5、
创建ProfileDALFactory,返回程序集的指定类的实例。
6、
创建Profile,实现Profile Provider。
7、
在web.config文件中增加配置节profile,增加属性及类型,provider为Profile。
例:
<system.web>
     <profileautomaticSaveEnabled="false" defaultProvider="默认的Profile Provider">
          <providers>
               <addname="自己命名的Provider名称" connectionStringName="配置文件里的数据库链接名称" type="自己的Provider实现类,需要自己重写" applicationName="自己定义的应用程序名称"/>
          </providers>
          <properties>
               <addname="自己命名的Profile名称" type="自己的类,需要构建" allowAnonymous="false" provider="上面的自己命名的Provider名称"/>
          </properties>
     </profile>
</system.web>

注意事项:
1、Profile的type可以为自己的类,包括业务实例或方法等。
2、通过重写ProfileProvider里的部份方法,实现在自己的数据库里记录自己想要的个性化用户信息。
3、如果每个用户有大量的数据信息,则该类数据信息不要通过Profile来记录。
4、被定义为Profile的type的类,必须在类定义前增加[Serializable]以实现可序列化。
5、接口定义的类型必须为类。
6、Profile Provider类里必须增加System.Web.Profile和System.Configuration的引用到项目中。
7、如果需要支持匿名用户,增加<anonymousIdentification enabled="true" />到web.config里,在profile之间。
8、使用Profile.Save方法后,将调用ProfileDALFactory里的方法将数据保存到数据库。

转载于:https://www.cnblogs.com/hunterzou/archive/2009/07/29/1534212.html

Microsoft.NET Pet Shop 4.0各个模块之间的联系相关推荐

  1. Microsoft .NET Pet Shop 4.0 学习之旅(三) - 项目的引用关系2

    Microsoft .NET Pet Shop 4.0 学习之旅(三) 项目的引用关系2 <?xml:namespace prefix = o ns = "urn:schemas-mi ...

  2. Microsoft .NET Pet Shop 4.0 学习之旅(二) - 项目的引用关系1

    Microsoft .NET Pet Shop 4.0 学习之旅(二) 项目的引用关系1 <?xml:namespace prefix = o ns = "urn:schemas-mi ...

  3. 一步一步安装 Microsoft .NET Pet Shop 4.0

    安装的前提条件 安装了 IIS 5.1/6/7(可选), SQL Server 2000/SQL Server 2005 /Oracle 10g,  Visual Studio 2005/2008/2 ...

  4. pet shop 4.0架构信息-转

    Petshop5.0 详解之一(系统架构设计)   前言:PetShop是一个范例,微软用它来展示.Net企业系统开发的能力.业界有许多.Net与J2EE之争,许多数据是从微软的PetShop和Sun ...

  5. .NET Pet Shop 4.0案例研究预览篇

    概述<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> 随着.NE ...

  6. Microsoft .NET Pet Shop 4 架构与技术分析(转)

    Microsoft .NET Pet Shop 4 架构与技术分析 1.项目概述与架构分析微软刚推出了基于ASP.NET 2.0下的Pet Shop 4, 该版本有了一个全新的用户界面.是研究ASP. ...

  7. Microsoft .NET Pet Shop 4 架构与技术分析

    1.项目概述与架构分析微软刚推出了基于ASP.NET 2.0下的Pet Shop 4, 该版本有了一个全新的用户界面.是研究ASP.NET 2.0的好范例啊,大家都知道,一直以来,在.NET和Java ...

  8. Microsoft .NET Pet Shop 4

    msdn http://msdn.microsoft.com/zh-cn/library/aa479070.aspx csdn http://blog.csdn.net/younther/articl ...

  9. ASP.NET---- Microsoft .NET Pet Shop 3.x(-)

    Microsoft .NET Pet Shop 3.x: .NET Pet Shop 的设计模式与体系结构 摘自微软MSDNhttp://www.microsoft.com/china/MSDN/li ...

最新文章

  1. LinearLayout增加divider分割线
  2. winform控件大小改变是防止背景重绘导致的闪烁
  3. 阿里雷卷:Reactive 基金会的成立将对开发方式带来哪些影响?
  4. Linux下的vim编辑器与gcc编译器及静动态库的制作
  5. Android Bitmap和Canvas学习笔记
  6. VB.NET 对于类型的传递按值或者按引用
  7. c++/ boost 库常见错误及解决方法总结
  8. Redis 6.0 源码阅读笔记(10) -- 主从复制 Master 节点流程分析
  9. java服务器客户端程序在联机运行时被防火墙拦截
  10. SQL注入攻击原理与防御措施
  11. 数字电路基础知识——锁存器与触发器的建立时间和保存时间(一)
  12. DOM元素节点属性outerHTML和innerHTML
  13. Android 获取wifi列表
  14. 爬取西瓜视频影视分类
  15. 简单的http抓包(微信公众网页登录模拟)
  16. React Native 音频录制例子来解惑入门
  17. 上海人工智能创新中心面经
  18. 贝壳创始人左晖去世,一周前才成地产新首富
  19. 恭喜 MOSN 社区成为可信开源社区共同体成员
  20. Unity游戏优化[第二版]学习记录6

热门文章

  1. Deep_Rank,经典ctr系列预估模型复现框架
  2. 基于依存句法分析的资金账户交易画像
  3. 深度学习TensorFlow的55个经典案例
  4. before和after怎么区分_深入理解::before/:before和::after/:after的使用
  5. 每天一个linux命令:du 与 df
  6. python实现新闻网站_Python 教你 4 行代码开发新闻网站通用爬虫
  7. GitLab5.2 创建项目故障
  8. android的CursorLoader用法小结
  9. java excel 列,使用Java读取Excel工作表的单列
  10. python语法中的网络编程_(六)python语法之网络编程