Asp.net源码交流论坛 Asp.net专题讨论区面向对象开发经典的Asp.net三层设计

1  /  3  页    1  2  3  跳转
发表新主题 回复该主题

标题: 经典的Asp.net三层设计

本主题由 总经理 51aspx 于 2007-6-11 13:02:39 执行 设置精华/取消 操作

身份:董事长

 
  • UID:2
  • 来自:北京
  • 精华:27
  • 积分:1696
  • 帖子:1507
  • 注册: 2007-05-17
  • 状态: 离线
  • 威望:54.00
  • 金钱:268.95 元
 
源码发布专家

经典的Asp.net三层设计

三层的划分:
        目的:高内聚,低耦合,为更好的实现分布式开发和维护。
        用户界面层: 页面,用户控件,图片,样式表
        业务逻辑层:业务接口( BusinessInterface ), 业务实体( BusinessEntity),业务逻辑(BusinessLogic)
        数据访问层: 数据实现(DataAccessSQLServer), 数据工具(DataAccessTool),数据工厂( DataAccessFactory)
    数据访问
        数据访问项目执行从数据库(或其他数据服务)获取数据或向数据库发送数据的功能。在分布式应用程序结构中,相应功能使用 ADO.NET 数据适配器和 SQL 服务器存储过程来完成。
    "数据访问"层: 
    (1)从"业务规则"层接收请求,从"数据服务"获取数据或向其发送数据。 
    (2)使用存储过程获取数据,并可选用 ADO.NET 向数据库发送数据。 
    (3)将数据库查询结果返回到"业务规则"层,作为ADO.NET 数据集。 
    业务规则
        业务规则项目包含业务对象本身以及应用于它们的规则。这也是主要业务对象所在的位置。它们实现业务实体或系统对象。系统的业务规则将在这些对象中编码,尽管部分业务规则可能实际上已在数据库的存储过程和触发器中进行了编码。
  "业务规则"层: 
    (1) 从“用户界面”层接受请求。 
    (2) 根据编码的业务规则处理请求。 
    (3) 从“数据访问”层获取数据或将数据发送到“数据访问”层。 
    (4)将处理结果传递回“用户界面”层。
用户界面
        用户界面项目是指在应用程序中实现的客户端。在分布式应用程序结构中,用户服务可以是 Web 客户端或 Windows 客户端,这具体取决于特定的应用程序。例如,在开发Web 应用程序时,可能需要提供具有标准 Windows 用户界面或 Web 用户界面。通常,这种一般类型的应用程序包含以下功能:
  "用户界面"层: 
    (1)管理 Web 页或 Windows 界面的呈现和行为 
    (2)显示数据 
    (3)捕获数据 
    (4)数据验证检查 
    (5)为用户提供任务指南 
    (6)向“业务规则”发送用户输入 
    (7)从“业务规则”接收结果 
    (8)向用户显示错误 
    下面是我用三层做的一个例子: 实现简单的用户注册:
    首先在WebConfig里面添加以下代码:

<appSettings>
<add key="SqlServer" value="server=.;database=51aspx;uid=sa;pwd=51aspx"></add>
</appSettings>


搭建三层的文件结构,如下图所示:




  1.业务实体层(BusinessEntity)


  using System;
namespace BusinessEntity
{
/**//**//**////
<summary>
/// Cuser 的摘要说明。
///
</summary>

public
class CUser
{
private
string username;//用户帐号
private
string userpwd;//用户密码

public
string UserName
{
get{return username;}
set{username=value;}
}
public
string UserPwd
{
get{return userpwd;}
set{userpwd=value;}
}
}
}


    2.接口层(BusinessInterface), 添加业务实体层的引用
       




using System;

namespace BusinessInterface
{
/**//**//**////
<summary>
/// ICuser 的摘要说明。
///
</summary>

public
interface ICUser
{
/**//**//**////
<summary>
/// 向用户表中插入用户信息
///
</summary>
///
<param name="be">用户信息</param>
///
<returns>执行的行数</returns>

int InsertUser(BusinessEntity.CUser be);
}
}




    3.数据实现层(DataAccessSQLServer), 添加业务逻辑层,接口层,数据工具层的引用
       
51aspx 最后编辑于 2007-06-10 18:21:53
 
技术问题请直接发布到论坛,合作及咨询请加技术支持QQ:793095132
问题搜索请点击
引用 回复
 

身份:学员

 
  • UID:93
  • 来自:
  • 精华:0
  • 积分:8
  • 帖子:8
  • 注册: 2007-06-08
  • 状态: 离线
  • 威望:0.00
  • 金钱:1.05 元

回复:经典的Asp.net三层设计

先赞一个
引用 回复
 

身份:学员

 
  • UID:301
  • 来自:
  • 精华:0
  • 积分:3
  • 帖子:3
  • 注册: 2007-06-25
  • 状态: 离线
  • 威望:0.00
  • 金钱:0.30 元

回复: 经典的Asp.net三层设计

  学习
引用 回复
 

身份:学员

 
  • UID:326
  • 来自:
  • 精华:0
  • 积分:5
  • 帖子:5
  • 注册: 2007-06-28
  • 状态: 离线
  • 威望:0.00
  • 金钱:0.50 元

回复: 经典的Asp.net三层设计

建议将 Model 和 业务层 放在一个dll中。
model不仅仅是一个model,他是一个类,很多情况下还需要自己行为,而这里行为的组织就要依靠业务层逻辑,但是业务逻辑肯定需要model,所以如果把model和业务分开就实现不了了。
----------------------------------------------------
免费内容管理系统
引用 回复
 

身份:学员

 
  • UID:364
  • 来自:
  • 精华:0
  • 积分:3
  • 帖子:3
  • 注册: 2007-07-03
  • 状态: 离线
  • 威望:0.00
  • 金钱:0.30 元

回复:经典的Asp.net三层设计

写得的不错!
引用 回复
 

身份:学员

 
  • UID:1861
  • 来自:
  • 精华:0
  • 积分:3
  • 帖子:3
  • 注册: 2007-12-06
  • 状态: 离线
  • 威望:0.00
  • 金钱:0.30 元

回复:经典的Asp.net三层设计

学习.//
引用 回复
 

身份:学员

 
  • UID:41
  • 来自:福建
  • 精华:0
  • 积分:17
  • 帖子:17
  • 注册: 2007-06-06
  • 状态: 离线
  • 威望:0.00
  • 金钱:1.85 元

回复:经典的Asp.net三层设计

真是好东西~
辛苦楼主了,
认真学习中~
 
在一天天消磨时光的日子里,不如抓紧时间多学一些知识来充实自己。人的大学时光一生中也许就这么一次,若是不把握好,将来自己一定会追悔莫及!
引用 回复
 

身份:学员

 
  • UID:2474
  • 来自:
  • 精华:0
  • 积分:18
  • 帖子:18
  • 注册: 2007-12-12
  • 状态: 离线
  • 威望:0.00
  • 金钱:1.95 元

回复:经典的Asp.net三层设计

学习
真是好东西~
 
引用 回复
 
2007-12-21 20:56
|

身份:学员

 
  • UID:3234
  • 来自:
  • 精华:0
  • 积分:1
  • 帖子:1
  • 注册: 2007-12-21
  • 状态: 离线
  • 威望:0.00
  • 金钱:0.10 元

回复:经典的Asp.net三层设计

高手,学习可以让人改变很多```````````````````````````````````````
引用 回复
 

身份:学员

 
  • UID:1392
  • 来自:
  • 精华:0
  • 积分:19
  • 帖子:19
  • 注册: 2007-12-01
  • 状态: 离线
  • 威望:0.00
  • 金钱:2.20 元

回复:经典的Asp.net三层设计

写的确实不错,就是简单了些..
建议给一个完整的演示代码吧.
引用 回复
 
1  /  3  页    1  2  3  跳转
发表新主题 回复该主题

现在时间是:2009-01-08 04:59:03 京ICP备06046876号