三层结构问题~~~~100分 不够在加~~~~一定要搞懂它~

southidc 2005-04-16 11:14:49


我现在对三层结构还是不太明白
原理我是想明白了
就是不知道他有什么用呢?
说了可以移植到别的程序里用
如果我有一个新闻和一个人才的
那他们的中间层会一样吗?
那还是不一样要改
以下是我不太明白的
希望大家帮我看看
这以下的代码都是哪个是

数据访问,业务层,表现层
呢?

////////////////////////////////////
using System;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;

namespace Win.New.DbBase
{
/// <summary>
/// base.
/// </summary>
public abstract class Base
{
}
}
/////////////////////////////

using System;
using System.Data;
using System.Data.SqlClient;
using Win.New.DbBase;
using System.Collections ;
namespace Win
{
/// <summary>
/// Book description for book。
/// </summary>
public class Book:Base//书类
{
public Book()
{

}
}
}


/////////////////////////////////////////////////////////


using System;
using System.Data;
using System.Data.SqlClient;
using System.Collections;
using System.Configuration;
using System.Security.Cryptography;
using System.Text;

namespace Win.New
{
/// <summary>
/// User Class
/// Manage users
/// </summary>
public class User:DbBase.Base
{
}
}
//////////////////////////////////////////////////////////
以下这个我想应该是表现层了吧

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using Win;
namespace New
{
/// <summary>
/// Left 的摘要说明。
/// </summary>
public class Left : System.Web.UI.Page
{

}
}
////////////////////////////////////////////////////////////////////
...全文
567 32 打赏 收藏 转发到动态 举报
写回复
用AI写文章
32 条回复
切换为时间正序
请发表友善的回复…
发表回复
sskset 2005-07-22
  • 打赏
  • 举报
回复
学习学习
ljq0316 2005-07-22
  • 打赏
  • 举报
回复
帮ding
kuzhuxuan 2005-04-22
  • 打赏
  • 举报
回复
我的分层设计思想:

基本上由于本人做的项目属于中小项目,也独立进行了一两个系统设计,最近我考虑了一种分层上的思路,现提供给大家,希望多多指教
UI层:
这层主要负责界面的输出和输入,可以是WEBFORM 也可是WINFORM,字面验证都在这一层,包括一些输出逻辑。如业务外观层不同的返回结果而向客户端输出不同的结果。
业务外观层:
业务外观主要是征对所有业务处理的外观聚合类,相当于UI与业务逻辑层的一个代理,如添加定单,处理定单、取消定单,用户登录等。在分布式系统中通常将这层做外部接口。
业务逻辑层:
在我的系统中,我将这一层所有事物都转换为对象,比如在支付卡系统中,可分为帐户对象、定单对象、支付卡对象,帐户对象拥有帐户余额、登录、支付等成员,而这些对象只在外观层实例化。
数据访问层:
数据访问层则提供最忠实的数据操作,不作任何业务逻辑,比如扣费,则不去判断帐户余额是否充足,数据访问对象我是采用访问SQLSERVER 和ORCLE共享接口的特性,访问接口,但目前参数的问题处理起来比较麻烦,还没有找到比较好的办法,所以所有数据操作都是通过存储过程来完成。

以上是我的一些不成熟看法,希望大家多多指正。


wh8254 2005-04-21
  • 打赏
  • 举报
回复
三层一定有用,也有必要!
搂主记住这句话,以后你经历了大一点的项目,就会深有体会!
所以,从现在开始养成好的习惯,最好了!
阿_浩 2005-04-21
  • 打赏
  • 举报
回复
广告都来了
zr1982930 2005-04-21
  • 打赏
  • 举报
回复
我顶!
happyjun2000 2005-04-21
  • 打赏
  • 举报
回复
楼上的那个soho的广告:<
syeerzy 2005-04-21
  • 打赏
  • 举报
回复
3层的开发模型我觉得被太多太多的人所误解了。

应用程序的3层是 数据库-服务-界面

微软所说的.Net开发的3层其实不包括数据库,如果连上数据库应该是4层
数据库-数据访问层-业务规则层-用户界面层

此3层不同那3层!一个是“代码”就3层了,一个是“全部”合起来3层。
syeerzy 2005-04-21
  • 打赏
  • 举报
回复
happyjun2000(蓝色游侠∮是非成败转头空)
的说法是完全正确的,

楼上其他一些(不是全部)人其实自己对3层式都不了解。。。




我的愚见,请参考,不对也请指正:(对3层式的实现和原理的讨论blog,7000字左右)
http://blog.csdn.net/syeerzy/archive/2005/04/20/354892.aspx
GO_DATABASE 2005-04-17
  • 打赏
  • 举报
回复
我也正在为三层结构烦!我做了一个例子,在WEB SERVER中,已经跟数据库连接好了,用客户端访问中间层WEB SERVER,在WEB SERVER 通过访问数据库返回DATASET,但就是在客户端显示不出相关数据来!为什么啊??????(急)
diaoerlangdang 2005-04-17
  • 打赏
  • 举报
回复
up
suyun9329 2005-04-17
  • 打赏
  • 举报
回复
up
epimetheus 2005-04-17
  • 打赏
  • 举报
回复
up
kv4000 2005-04-17
  • 打赏
  • 举报
回复
to:GO_DATABASE(豆豆)
单元测试 每个层之间进行调试
kv4000 2005-04-17
  • 打赏
  • 举报
回复
for example DAL层参数问题: 有效性验证放在DLL

public DataTable SelectByPKs(string buildingno,string roomno)
{
try
{
string sqlText="select * from domitory where buildingno=@Buildingno and roomno=@Roomno";
OleDbParameter[] arParams=new OleDbParameter [2];
arParams[0]=new OleDbParameter ("@Buildingno",OleDbType.Char,50 );
arParams[0].Value =buildingno;
arParams[1]=new OleDbParameter ("@Roomno",OleDbType.Char,50 );
arParams[1].Value =roomno;

DataSet ds=OleDbHelper.ExecuteDataset (DALConfig.ConnectionString ,CommandType.Text ,sqlText,arParams);
ds.Tables [0].TableName ="domitory";
return ds.Tables [0];
}
catch(Exception err)
{
throw err;
}

自然框架 2005-04-17
  • 打赏
  • 举报
回复
to::happyjun2000(蓝色游侠∮是非成败转头空)

添加记录是要传入一些参数的吧,这些参数怎么传递呢?又如何判断他们的有效性。

参数多的时候怎么作呀?

这就是大学问了。



===================

我们写的就是代码,如果没法确定代码属于哪一层的,那又怎么应用三层结构呢?

我的意见是写控件,不断的整理、归纳、完善,

这样才能真正的从代码的泥潭中出来


terry7969 2005-04-17
  • 打赏
  • 举报
回复
不论你是上班族,还是求职一族,都可以尝试这个成功之路:
1.不怕没经验 —— 在网上和老师学习,边干边积累经验
2.只需要很小的投资 —— 125元获取网站,创收就从这里开始
3.不用人际关系、看别人脸色 —— 业余时间在网上开展工作
4.不用东奔西跑、租赁铺面 ——— 只要有电脑的地方就可开展工作
5.不承担任何风险 —— 只要努力就有收获
6.公平竞争 ———— 会员人人是老板
7.加入方便 —— 凡18岁以上公民皆可参加
8.能够提高自己的能力 —— 有经验的老师会传授网络知识、赚钱的方法,一举两得
9.想做多大就做多大 ———— 看你的努力程度
10.帮助别人成就自己事业 —— 帮助别人就是帮助自己

只要你努力,三天收回投资,三个月以后月收入3000元左右,半年以后月收入过万,最重要的一点,如果你想交了125元以后就天天在家等着钱掉下来的话那就别来加入SOHO,因为天上不会掉馅饼下来的,努力才有收获,才能成功,我现在是乐在其中,你想吗?

详情请登陆我的代理网站:http://www.sohomen.cn/?id=givemelove
如果您也在武汉,可以到我工作的地点当面咨询!
QQ: 1565480
邮箱: terry8969@163.com
注:加入临时会员的一定要加QQ:1565480;此信息为真实,由于站长时间比较忙,非诚者勿扰,谢谢合作!!!
gudengyeren 2005-04-16
  • 打赏
  • 举报
回复
一般的三层,就是你把数据库的操作,放到中间层去处理。

你在客户端,调用中间层,中间层,再去调用数据层。
happyjun2000 2005-04-16
  • 打赏
  • 举报
回复
好处是逻辑分离

表示层
public class Left_web : System.Web.UI.Page
{
//添加用户
Left_businessRule.adduser();
}
业务规则层
public class Left_businessRule
{
//
bool adduser(){
if(){ //.. ;return false ;}
else{ dataaccess.adduser() ; return true ;}
}
}
数据访问层
public class Left_dataaccess
{
adduser(){//添加操作}
}
southidc 2005-04-16
  • 打赏
  • 举报
回复
上面代码的第2和第3个文件
是不是业务层呢?
业务层是不是可以有好几个呢?
第个都是继承数据层的呢?
在页面层在调用业务层的类
是这样理解的吗?
加载更多回复(12)

110,566

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧