仿PETSHOP4.0分层模式

生产环境VS2008+SQL2005

模仿PETSHOP4.0架构模式,自己写了一个中小公司网站(不过没有应用membership Cache)把开发过程写下来(仅供参考,如果哪位老鸟能够留言指点错误,不胜感激)PETSHOP4.0产品学习的优点:面向对象编程1:方便使用不同的数据库2:扩展功能模块更容易实现

:数据库设计图

字段解释

Admin:管理员用户,密码

Company:公司介绍,联系方式

Links:友情链接名称,URL地址

ProductsClass:产品分类名称

Products:产品名称,描述,图片文件名,是否推荐产品,分类ID

News:新闻标题,内容,日期,来源

Solutions:解决方案标题,内容

Jobs:招聘标题,内容,日期

:类库设计

1:DBHelper 对数据访问的简单封装 SQLHelper.csOracleHelper.cs

贴出自己用的SQLHelper.cs

Code

2:Model 相关实体类,对应每一个数据表,对字段的读取和写入的载体(命名习惯 类名等于各数据表名)

3:IDAL 数据访问的接口,定义对数据表操作的所有方法(命名习惯 接口名等于I+各数据表名 :IProducts.cs)

需添加引用Model项目

贴出Iproducts.cs代码

Code

 

4:SQLServeDAL OracleDAL 二种数据库类型相关数据访问层,继承IDAL(命名习惯 各数据表名+SQL ProductsSQL.cs) 需添加引用项目IDAL,ModelDBHelper

贴出ProductsSQL.cs代码

Code

 

5:DALFactory 创建对象工程类,创建IDAL所有接口的实例,此项目下只有DataAccess.cs.需添加引用项目IDAL

代码片段:namespace DALFactory
{
  
public class DataAccess
{
//<add key="WebDAL" value="SQLServerDAL"/>用到的数据访问程序集
  
private static readonly string path = ConfigurationManager.AppSettings["WebDAL"];
//创建IProducts接口的实例
public static IDAL.IProducts CreateProducts()
   {
    
string className = path + ".ProductsSQL";
    
return (IDAL.IProducts)Assembly.Load(path).CreateInstance(className);
    //Assembly.Load("程序集名称").CreateInstance("命称空间.类名称")
}

6:BLL 业务逻辑层(命名习惯 各数据表名+Sys ProductsSys.cs)

需添加引用项目DALFactory,IDALModel

贴出ProductsSys.cs代码:

Code

 

7:WEBUtility就不多说了.

总结:面向接口编程,BLLDAL 层层之间通过接口调用.不同的数据库类型访问层都实现了这样的接口.即使将来更换数据库,或修改数据访问层的实现.BLL层也不需要更改.

公司网站源代码https://files.cnblogs.com/freegarden/CMS.rar

posted @ 2009-11-01 14:38  老Z  阅读(472)  评论(2编辑  收藏  举报