asp.net 三层 的bll和dal层
asp.net三层架构中的bll层和层是怎么互利用dal的,感觉bll层只是起到了一个调用dal传递数据的作用。特别是asp.net代码生成器生成的三层,更是不能使我深刻...
asp.net 三层架构 中的bll层和层是怎么互利用dal的,感觉bll层只是起到了一个调用dal传递数据的作用。
特别是asp.net代码生成器生成的三层,更是不能使我深刻理解dll,和dal的意义,望前辈们指教
对于多表查询和应用逻辑强的网站怎么写bll和dal
----------最好给个实例,谢谢!!!!!
xietiane 三层 的意义,能否打个比方说一下!!!好的马上给分
除了 代码重用,和层次清晰好处外。 展开
特别是asp.net代码生成器生成的三层,更是不能使我深刻理解dll,和dal的意义,望前辈们指教
对于多表查询和应用逻辑强的网站怎么写bll和dal
----------最好给个实例,谢谢!!!!!
xietiane 三层 的意义,能否打个比方说一下!!!好的马上给分
除了 代码重用,和层次清晰好处外。 展开
10个回答
展开全部
bll是业务逻辑层。并不只是调用dal传递数据的作用。你可以这样理解。dal它只是取数据。然后你前台要的数据并不是你从dal层取到数据。还需要一些处理才是表现层所需要的数据。这个处理的过程就是由bll来处理的。你可能会可以放在表现层处理。是的,是可以的。但是那就不能体现三层架构的意义了。
dal:
/// <summary>
/// 获取下级栏目列表
/// </summary>
/// <param name="id">栏目ID</param>
/// <returns>Column对象</returns>
public static DataTable GetChildList(int id)
{
return DBHelper.GetData(string.Format("select * from [column] where parentid = {0} order by sort" , id));
}
BLL:
/// <summary>
/// 递归遍历父节点所有子节点
/// </summary>
public static IList<Column> GetList(IList<Column> list, int pid, int n)
{
DataTable dt = ColumnAgent.GetChildList(pid);
if (dt == null) return null;
if (dt.Rows.Count == 0)
{
return null;
}
else
{
foreach (DataRow dr in dt.Rows)
{
Column column = new Column();
column.ID = int.Parse(dr["ID"].ToString());
if (pid == 0)
{
column.ChName = dr["ChName"].ToString() + "(" + dr["EnName"].ToString() + ")"; ;
}
else
{
column.ChName = "├".PadLeft(n, ' ') + dr["ChName"].ToString() + "(" + dr["EnName"].ToString() + ")";
}
column.ChPic = dr["ChPic"].ToString();
column.EnName = dr["EnName"].ToString();
column.ChLink = dr["ChLink"].ToString();
column.EnLink = dr["EnLink"].ToString();
column.ParentID = int.Parse(dr["ParentID"].ToString());
column.Navigate = int.Parse(dr["Navigate"].ToString());
list.Add(column);
n = n + 1;
GetList(list, column.ID, n);
n = n - 1;
}
return list;
}
}
在dal中我们只是获取数据,不用处理它
到bll中我们要把它处理成我们表现层所需要的
dal:
/// <summary>
/// 获取下级栏目列表
/// </summary>
/// <param name="id">栏目ID</param>
/// <returns>Column对象</returns>
public static DataTable GetChildList(int id)
{
return DBHelper.GetData(string.Format("select * from [column] where parentid = {0} order by sort" , id));
}
BLL:
/// <summary>
/// 递归遍历父节点所有子节点
/// </summary>
public static IList<Column> GetList(IList<Column> list, int pid, int n)
{
DataTable dt = ColumnAgent.GetChildList(pid);
if (dt == null) return null;
if (dt.Rows.Count == 0)
{
return null;
}
else
{
foreach (DataRow dr in dt.Rows)
{
Column column = new Column();
column.ID = int.Parse(dr["ID"].ToString());
if (pid == 0)
{
column.ChName = dr["ChName"].ToString() + "(" + dr["EnName"].ToString() + ")"; ;
}
else
{
column.ChName = "├".PadLeft(n, ' ') + dr["ChName"].ToString() + "(" + dr["EnName"].ToString() + ")";
}
column.ChPic = dr["ChPic"].ToString();
column.EnName = dr["EnName"].ToString();
column.ChLink = dr["ChLink"].ToString();
column.EnLink = dr["EnLink"].ToString();
column.ParentID = int.Parse(dr["ParentID"].ToString());
column.Navigate = int.Parse(dr["Navigate"].ToString());
list.Add(column);
n = n + 1;
GetList(list, column.ID, n);
n = n - 1;
}
return list;
}
}
在dal中我们只是获取数据,不用处理它
到bll中我们要把它处理成我们表现层所需要的
Storm代理
2023-08-29 广告
2023-08-29 广告
"StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,I...
点击进入详情页
本回答由Storm代理提供
展开全部
三层其实是一个理念,好比说一个方法这样,用户(UI)层调用业务(BLL)层,Bll再去调用数据访问层(Dal)实现了对数据对待操作。model层是一些公用的方法,方便给全局调用。你下载一个三层架构的程序,然后打断点调试就可以很清楚看到是怎么回事了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
bll顾名思义是逻辑处理层,当前台中的数据需要复杂计算的时候,不宜在ui层直接写,在这里就需要在bll层实现这些算法,当然bll也常常是调用dll传数据
但是当从数据库中提取的基础数据不能够满足前台显示的需求,那么就得在bll层对dal传出的数据进行相应的处理。
dal是数据连接。理论上他不应当包含数据处理,他只负责对数据库中的数据增删改查。
多表查询只是sql语句查询语句问题。
但是当从数据库中提取的基础数据不能够满足前台显示的需求,那么就得在bll层对dal传出的数据进行相应的处理。
dal是数据连接。理论上他不应当包含数据处理,他只负责对数据库中的数据增删改查。
多表查询只是sql语句查询语句问题。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
dal只管存数据,逻辑要放在bll中
举个例子,你有个类叫人,dll可以把这个人存到数据库,从数据库中取出。但是这个人必须年龄超过20岁才能结婚就是个逻辑,在bll里定义。
举个例子,你有个类叫人,dll可以把这个人存到数据库,从数据库中取出。但是这个人必须年龄超过20岁才能结婚就是个逻辑,在bll里定义。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
主要是BLL中对数据的处理,业务的处理
简单的说 假如你网站访问量大了,现在要采用数据缓存, 那么在BLL层开始对需要的数据进行缓存; 还比如: 上午显示1段数据;下午就现实其它的了,这些都是引用的业务, 还比如打折,多少积分是什么.... 等等
DAL只管数据
BLL 对于DAL来说 只要数据,至于数据证明产生的 就不管了
简单的说 假如你网站访问量大了,现在要采用数据缓存, 那么在BLL层开始对需要的数据进行缓存; 还比如: 上午显示1段数据;下午就现实其它的了,这些都是引用的业务, 还比如打折,多少积分是什么.... 等等
DAL只管数据
BLL 对于DAL来说 只要数据,至于数据证明产生的 就不管了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询