生产环境VS2008+SQL2005
模仿PETSHOP4.0架构模式,自己写了一个中小公司网站(不过没有应用membership 和Cache)把开发过程写下来(仅供参考,如果哪位老鸟能够留言指点错误,不胜感激)PETSHOP4.0产品学习的优点:面向对象编程1:方便使用不同的数据库2:扩展功能模块更容易实现
一:数据库设计图
字段解释
Admin表:管理员用户,密码
Company表:公司介绍,联系方式
Links表:友情链接名称,URL地址
ProductsClass表:产品分类名称
Products表:产品名称,描述,图片文件名,是否推荐产品,分类ID
News表:新闻标题,内容,日期,来源
Solutions表:解决方案标题,内容
Jobs表:招聘标题,内容,日期
二:类库设计
1:DBHelper 对数据访问的简单封装 有SQLHelper.cs和OracleHelper.cs
贴出自己用的SQLHelper.cs
2:Model 相关实体类,对应每一个数据表,对字段的读取和写入的载体(命名习惯 类名等于各数据表名)
3:IDAL 数据访问的接口,定义对数据表操作的所有方法(命名习惯 接口名等于I+各数据表名 如:IProducts.cs)
需添加引用Model项目
贴出Iproducts.cs代码
4:SQLServeDAL 和OracleDAL 二种数据库类型相关数据访问层,继承IDAL(命名习惯 各数据表名+SQL 如ProductsSQL.cs) 需添加引用项目IDAL,Model和DBHelper
贴出ProductsSQL.cs代码
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,IDAL和Model
贴出ProductsSys.cs代码:
}
7:WEB和Utility就不多说了.
总结:面向接口编程,BLL和DAL 层层之间通过接口调用.不同的数据库类型访问层都实现了这样的接口.即使将来更换数据库,或修改数据访问层的实现.BLL层也不需要更改.
公司网站源代码https://files.cnblogs.com/freegarden/CMS.rar