三层结构

目前,对于网站的架构,我只停留在三层结构上。


根据Petshop,划分出简单的三层,其它(缓存,异步,多数据库,用户状态,抽象工程,接口)一律不用,在没有人指导的情况下,就形成了第一个用ASP.Net开发的网站架构。


1.Web 表示层

根据网站内容添加两个文件夹:User(用户)和Company(企业网站)。其它文件夹:js:JavaScript文件,Control:ascx,Adpic:上传图片,按月分文件夹,App_Themes:css样式文件,ewebeditor:编辑控件,Images:用于网站显示的所有图片,news和stores:静态html。

Html, js, 照搬原ASP代码,必要时将html控件改为ASP.Net控件。


2.DAL 数据访问层

由于数据库中无NULL值(添加修改时对NULL值进行处理,int为0,string为空字符串),在SqlCommand.Parameters.Add(name, SqlDbType.DateTime).Value和SqlDataReader.GetInt32()语句中,不用进行Null的判断。

当然,Null表示不存在,与空字符串,0不同。

但是,在这个项目中,Null值显得不那么重要。还没有碰到过要使用它的情况。


3.BLL 业务逻辑层。捕捉异常,返回信息(如审核中,未开通,已过期,无搜索结果),对参数值的判断,在同一个BLL方法中调用多个DAL方法。

业务逻辑不复杂。业务层在这个项目中显得有点多余。


4.Model 业务实体,几乎一个数据表对应一个类

一个类有多个构造函数。目的是简化初始化语句。

这里用的是.Net 2.0,使用3.5就可以省略多个构造函数。


5.DBUtility 数据库访问组件基础类及公共类

公共类包括:验证登录,获取各级地区,行业分类,获取IP,对上传图片在数据库中的记录进行修改(一张图片对应一条记录,记录时间,路径,用户名,是否使用),删除图片,分页(第一页,上一页...)的显示,htm文件路径的获取,Htm替换(空格,\t,\n替换为html代码)


最近写的这个网站,房产管理信息系统,由于时间紧凑,依然使用这种结构。


1.Web 表示层

文件夹:JavaScript:js文件,Admin:后台管理,Style:css样式文件,Images:图片。

使用JQuery。


2.DAL 数据访问层

添加了对Null的判断。

Null的作用主要体现在:

a. 添加时房源表中非必需字段的赋值。

    根据租售方式和用途的不同,填写的字段不同。比如,楼房,需要填写户型,因此有5个字段用来存储房厅卫厨阳台。而厂房,不需要填写户型,这5个字段的值,理论上来讲,使用Null比较合适。

b. 传递查询参数。由于查询参数比添加的字段还多,所以采用业务实体进行传递。(业务层)

    查询租售方式为出租,可出售的楼房。这时,可出售字段(CanSell)为True。

    如果查询租售方式为出租的楼房,可出售字段为Null(如果可出售字段数据类型为整型,也可以使用其它值)。(为Null时,拼接查询Sql语句忽略此查询条件。)


3.BLL 业务逻辑层。捕捉异常,验证数据合法性并返回错误信息,对业务实体进行赋值,返回查询条件,返回复制信息。

业务逻辑比较复杂。BLL层在判断及赋值时显得臃肿。

原因:aspx页面通过点击租售方式和用途进行行的隐藏及显示。因为有两种租售方式,四种用途,所以有八种组合。而房源只有一个表,只有一个添加修改或查询操作。

a. 添加或修改房源:

首先,对输入的数字字段必填字段及用户名等进行服务器端的判断,并进行值的转换(字符串(从文本框中获取)转换为数字)。在判断每一数字字段之前先判断租售方式及用途。

其次,根据租售方式和用途,对业务实体进行赋值。

b. 查询:

首先,对输入的数字字段及用户名等进行服务器端的判断,并进行值的转换(字符串转换为数字,空字符串转为Null)。

其次,对业务实体进行赋值。


4.Model 业务实体,几乎一个数据表对应一个类

一个类只有一个默认构造函数。逐个属性进行赋值。


5.Helper

Common类:验证用户登录,管理用户,验证码,Htm替换(空格,\t,\n替换为html代码),保存邮件发送错误

DBUtility类:添加参数及获取sqldatareader值时,进行Null值的判断。

Validation类:检查数据类型合法性。


6.OnlineUser 在线用户

使用51aspx上的在线用户代码http://bbs.51aspx.com/showtopic-1900.html。很不错的代码。曾经偶尔出现过一个异常(忘了)。调试时要注意,因为暂停,可能导致在线用户结果错误。

posted @ 2011-03-01 00:12  幽幽雪  阅读(373)  评论(0编辑  收藏  举报