首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BAL在三层架构中的用途

BAL在三层架构中的用途
EN

Stack Overflow用户
提问于 2012-08-02 22:27:25
回答 3查看 3.6K关注 0票数 0

我是一个三层架构的新手,因为它由UI,BAL和DAL layers.So组成。我正在用DAL编写所有的数据库代码,我已经在BAL中声明了变量,我已经调用了UI中的方法,但是这是正确的编码方式吗??我的BAL在做什么?业务层的主要用途是什么?有人能解释我吗,谢谢。

代码语言:javascript
复制
 //In my BAL



public class ProfileMasterBLL
{
    public int UserId { get; set; }
    public string FormFiledBy { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }

}

//在我的UI中

代码语言:javascript
复制
 ProfileMasterBLL pmBLL = new ProfileMasterBLL();
        pmBLL.FirstName = TextBox1.Text;
        pmBLL.LastName = TextBox2.Text;



//In my DAL 

用于insert()的方法

那么我如何调用ProfileMasterBLL.insert()呢??正如我在DAL中所写的。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-08-02 22:30:45

业务层用作UI和DAL之间的中间人。它用于您的应用程序将包含的任何或所有业务逻辑。例如,在会计应用程序中,您可能希望在将数据发送到数据库层之前对数据执行一些计算和检查,您将在业务层执行此操作。

你的UI可以这样做:

代码语言:javascript
复制
//establish person object
//pass in some salary with it to BL
BL.CalcPay(somePerson, someSalary);

然后在你的BL中:

代码语言:javascript
复制
//inside of BL
//if its a CEO they are lucky, they get paid twice as much
 decimal toGive = someSalary;
if(somePerson.IsCEO)
 toGive = toGive * 2; //CEO gets paid more :(

//now call DAL
DAL.CalcPay(somePerson, toGive)

然后在您的DAL中:

代码语言:javascript
复制
//inside of DAL
//perform some update by calling for instance a sproc
using(SQL....)
{
}

这不是最好的例子,但它应该让人明白这一点,很多时候,你的BL除了传递一个方法调用给DAL之外,什么都不做。仅仅因为它是BL并不意味着它必须有某种与之相关的检查。所以你最终可能会做这样的事情:

代码语言:javascript
复制
//inside UI
string s = BL.GetSomeString();

//inside BL
return DAL.GetSomeSomeString();

//inside DAL
return someString;
票数 1
EN

Stack Overflow用户

发布于 2012-08-02 22:31:54

业务层的作用是执行业务规则,例如验证实体、执行实体上的业务规则、执行实体上的业务功能。

通常你有两个选择。

在存储过程中实现业务逻辑

在业务层中实现业务逻辑

票数 0
EN

Stack Overflow用户

发布于 2012-08-02 22:35:11

业务层的存在是为了提供放置业务逻辑的位置。数据访问逻辑应该只对数据库执行创建、检索、更新和删除(CRUD)操作。表示层应该只有决定用户如何与系统交互的逻辑。

例如,如果在UI中单击"add user“,则可以在业务层调用BAL.AddUser()方法,然后调用多个数据层方法(如DAL.AddUser() )插入用户,然后调用DAL.AddUserToGroup()将新用户放入默认组。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11779574

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档