C#三层结构开发的问题

我刚接触到一个三层结构的系统,已知UI层是用户界面,DBUtility是对数据库操作。中间还有BLL,BLLCommom,DALfactory,Model,SQLServ... 我刚接触到一个三层结构的系统,已知UI层是用户界面,DBUtility是对数据库操作。中间还有BLL,BLLCommom,DALfactory,Model,SQLServerDAL,IDAL等层,想问下各个层之间是如何调用,又是怎样传输数据的?
其中每层大概的作用是这样的:
BLL实现对判断是否已经登录、验证登陆是否成功,并添加用户Ip信息等功能 private static readonly IAdmin dal_admin = DataAccess.CreateInterFaceAdmin();
#region 判断是否已经登录
/// <summary>
/// 判断是否已经登录
/// </summary>
public static void IsLogin()
{
if (HttpContext.Current.Session["AdminId"] == null || HttpContext.Current.Session["AdminName"]==null)
{
BaseCom.ShowMsgBox_Url("登录超时,请重新登陆", "/SystemManager/Login.aspx","top");
}
}
#endregion
BLLCommon都是获取值并返回值,还有一些验证功能
#region 获取当前管理员的真实姓名
/// <summary>
/// 获取当前管理员的真实姓名
/// </summary>
/// <returns></returns>
public static string GetAdminRealName()
{
if (BaseCom.Session_Get("AdminRealName") != null)
{
return BaseCom.Session_Get("AdminRealName").ToString();
}
else
{
return "";
}
}
#endregion
DALFactory全部都是实现接口,按我部门的主管的说法,是实现IDAL和SQLServerDAL的关联
#region 创建AF_AdminNotice数据层接口
/// <summary>
/// 创建AF_AdminNotice数据层接口
/// </summary>
public static IAdminNotice CreateInterFaceAdminNotice()
{
string CacheKey = path + ".Dal_AdminNotice";
object objType = CreateObject(path, CacheKey);
return (IAdminNotice)objType;
}
#endregion
Idal我就看不明了。。好似是建立接口。。举个例子
public interface IAdmin
{
/// <summary>
/// 验证登陆是否成功,并添加用户Ip信息
/// </summary>
/// <returns></returns>
int CheckAdminLogin(string adminName, string pwd, string ip, string ErrorPass);}
Model呢个层中看不明,还不知道有什么用
public class Mod_Admin
{
public Mod_Admin()
{}
#region Model
private int _admin_id;
public int Admin_Id
{
set{ _admin_id=value;}
get{return _admin_id;}
}
SQLServerDAL层是控制DBUtility的操作的。。
我最想知道的是当一个数据从UI层输入之后,究竟怎样传输一直到最底层的DBUtility,中间的接口有什么作用,Model层在传输中达到什么作用?最好能举个简单的例子说明数据从UI层到DBUtility层中,每个层都做了些什么。答得好的我有加分~~
展开
 我来答
aino77
推荐于2016-10-05 · TA获得超过920个赞
知道小有建树答主
回答量:378
采纳率:0%
帮助的人:280万
展开全部
三层 - 数据层,业务层,界面层.
1.数据层
①数据接口(IData) - 定义数据层接口 - 定义数据加工处理方法(调用数据工厂)
②数据服务(clsDataServer) - 数据最终处理的地方 - 直接与数据库交互 - 常用的SqlHelper.cs
③数据工厂(clsDataFactory) - 处理数据加工方式 - 实现数据加工处理方法 - 加工后交给数据服务层提交数据库
2.业务层
④业务接口(IBusiness) - 定义业务接口 - 定义业务逻辑处理方法(调用业务逻辑) - 直接与界面层交互
⑤业务逻辑(clsBusinessLogic) - 处理业务逻辑 - 实现业务逻辑处理方法 - 处理逻辑后交给数据层(调用数据接口)处理数据
⑥业务实体(clsBusinessModel) - 将数据实例化 - 便于程序取值/赋值 - 直接与界面层交互
3.⑦界面层 - 将界面控件的数据交给业务实体实例化,再将实例化的对象交给业务接口

这里是7个层,比较一下名称,很容易找到和lz对应的层.

实际上,一般程序里,用不了那么多层,太多了,开发不容易维护,可以不要接口(少了数据接口,业务接口),数据工厂和业务逻辑可以写在一起.也就是:
1.数据层
①数据服务
2.业务层
②业务逻辑+数据工厂
③业务实体
3.④界面层
总共4个层就够了.

ps:每个字都是我敲上去的,希望对你有所帮助.
pppop3
2010-04-15 · TA获得超过316个赞
知道小有建树答主
回答量:488
采纳率:0%
帮助的人:348万
展开全部
bll调用dal

bll 往上 均用model 传递信息

ui 应该有自己的control层 用来控制 ui 和model的交互 此model不是bll的model但是 包含bll的model
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Nothing207
2010-04-15 · TA获得超过177个赞
知道小有建树答主
回答量:184
采纳率:0%
帮助的人:185万
展开全部
视图层调用业务层,业务层再调用接口,然后是数据层
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ukdengyong
2010-04-15 · 超过11用户采纳过TA的回答
知道答主
回答量:69
采纳率:0%
帮助的人:33.9万
展开全部
接口就是留出位置来接入其他。。

便于扩展,

比如两个系统对接。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式